Subversion Repositories SmartDukaan

Rev

Rev 410 | Rev 1124 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
132 ashish 1
'''
2
Created on 25-Mar-2010
3
 
4
@author: ashish
5
'''
6
import urlparse
7
from shop2020.thriftpy.config.ttypes import ConfigException
8
from thrift.transport import TSocket
9
from thrift.transport.TTransport import TFramedTransport
10
from thrift.protocol.TBinaryProtocol import TBinaryProtocol
11
from shop2020.thriftpy.config import Configuration
12
from shop2020.thriftpy.model.v1.catalog import InventoryService
13
from shop2020.thriftpy.model.v1.catalog.ttypes import Item, status, Warehouse
14
from shop2020.config.client.ConfigClient import ConfigClient
15
import datetime
16
from shop2020.utils.Utils import to_java_date
17
from shop2020.thriftpy.model.v1.order import TransactionService
18
from shop2020.thriftpy.model.v1.order.ttypes import Transaction, PaymentInfo,\
483 rajveer 19
    Payment, PaymentStatus, LineItem,  TransactionStatus, Order
132 ashish 20
 
194 ashish 21
 
132 ashish 22
class TransactionClient:
23
    file_path = '/tmp/config.properties'
24
 
25
    def __init__(self):
26
        config_client = ConfigClient()
410 rajveer 27
        self.host = config_client.get_property("transaction_service_server_host")
28
        self.port = config_client.get_property("transaction_service_server_port")
132 ashish 29
 
30
        self.start_client()
31
 
32
 
33
    def start_client(self):
34
        try:
35
            self.transport = TSocket.TSocket(self.host, self.port)
36
            self.transport = TFramedTransport(self.transport)
37
            self.protocol = TBinaryProtocol(self.transport)
38
            self.client = TransactionService.Client(self.protocol)
39
            self.transport.open()
40
        except:
41
            raise ConfigException(101, 'unable to load the client')
42
 
43
    def createTransaction(self, transaction):
44
        self.client.createTransaction(transaction)
483 rajveer 45
 
46
    def getTransaction(self, transaction_id):
47
        return self.client.getTransaction(transaction_id)
304 ashish 48
 
49
    def createAlert(self, transaction_id, type, comment):
50
        self.client.setAlert(transaction_id, False, type, comment)
132 ashish 51
 
304 ashish 52
    def get_client(self):
53
        return self.client
54
 
132 ashish 55
if __name__ == '__main__':
56
    transaction_client = TransactionClient()
57
 
58
    transaction = Transaction()
59
    transaction.shoppingCartid = 2
60
    transaction.customer_id = 4
61
    transaction.createdOn = to_java_date(datetime.datetime.now())
483 rajveer 62
    transaction.statusDescription = "INIT phase"
63
    transaction.transactionStatus = TransactionStatus.INIT
64
 
65
    #transaction.expectedDeliveryTime = to_java_date(datetime.datetime.now())
66
 
132 ashish 67
    payment_info = PaymentInfo()
68
    payment_info.payments
69
    payment_info.payments = {}
70
    payment = Payment()
71
    payment.merchant_tx_id = "123"
72
    payment.bank_tx_id = "ICIC0001"
73
    payment.mode = "CARD"
74
    payment.amount = 23.5
75
    payment.status = PaymentStatus.SUCCESS
76
    payment.submissionTimestamp = to_java_date(datetime.datetime.now())
77
    payment.completionTimestamp = to_java_date(datetime.datetime.now())
78
    payment.description = "Sample payment"
79
    payment_info.payments[to_java_date(datetime.datetime.now())] = payment
80
    transaction.paymentInfo = payment_info
483 rajveer 81
 
82
    order = Order()
83
 
84
    order.status = 5
85
    order.warehouse_id = 1
86
    order.total_weight = 10
87
    order.total_amount = 8
88
    order.statusDescription = "new order"
89
 
90
    transaction.orders =[]
91
    transaction.orders.append(order)
92
 
93
    order.lineitems = []
132 ashish 94
    line_item = LineItem()
95
    line_item.addedOn = to_java_date(datetime.datetime.now())
483 rajveer 96
    line_item.unit_weight = 10
97
    line_item.total_weight = 10
98
    line_item.unit_price = 8
99
    line_item.total_price = 8
100
    order.lineitems.append(line_item)
194 ashish 101
 
483 rajveer 102
    #transaction_client.createTransaction(transaction)
132 ashish 103
 
483 rajveer 104
    tran = transaction_client.getTransaction(1);
105
    print tran.id
106
    print tran.shoppingCartid
107
    print tran
108
    #transaction_client.createAlert(2, 1, "Not yet shipped")
132 ashish 109