Subversion Repositories SmartDukaan

Rev

Rev 194 | Go to most recent revision | Details | 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,\
19
    Payment, PaymentStatus, OrderInfo, LineItem, Item, TransactionStatus
20
 
21
class TransactionClient:
22
    file_path = '/tmp/config.properties'
23
 
24
    def __init__(self):
25
        config_client = ConfigClient()
26
        self.host = config_client.get_property("transaction_service_server_host")
27
        self.port = config_client.get_property("transaction_service_server_port")
28
 
29
        self.start_client()
30
 
31
 
32
    def start_client(self):
33
        try:
34
            self.transport = TSocket.TSocket(self.host, self.port)
35
            self.transport = TFramedTransport(self.transport)
36
            self.protocol = TBinaryProtocol(self.transport)
37
            self.client = TransactionService.Client(self.protocol)
38
            self.transport.open()
39
        except:
40
            raise ConfigException(101, 'unable to load the client')
41
 
42
    def createTransaction(self, transaction):
43
        self.client.createTransaction(transaction)
44
 
45
if __name__ == '__main__':
46
    transaction_client = TransactionClient()
47
 
48
    transaction = Transaction()
49
    transaction.shoppingCartid = 2
50
    transaction.customer_id = 4
51
    transaction.createdOn = to_java_date(datetime.datetime.now())
52
    transaction.expectedDeliveryTime = to_java_date(datetime.datetime.now())
53
    payment_info = PaymentInfo()
54
    payment_info.payments
55
    payment_info.payments = {}
56
    payment = Payment()
57
    payment.merchant_tx_id = "123"
58
    payment.bank_tx_id = "ICIC0001"
59
    payment.mode = "CARD"
60
    payment.amount = 23.5
61
    payment.status = PaymentStatus.SUCCESS
62
    payment.submissionTimestamp = to_java_date(datetime.datetime.now())
63
    payment.completionTimestamp = to_java_date(datetime.datetime.now())
64
    payment.description = "Sample payment"
65
    payment_info.payments[to_java_date(datetime.datetime.now())] = payment
66
    transaction.paymentInfo = payment_info
67
    order_info = OrderInfo()
68
    order_info.lineitems = []
69
    line_item = LineItem()
70
    line_item.addedOn = to_java_date(datetime.datetime.now())
71
    line_item.item = Item()
72
    line_item.item.id = 23
73
    line_item.item.price = 2.40
74
    line_item.item.weight = 2.42
75
    order_info.lineitems.append(line_item)
76
    transaction.orderInfo = order_info
77
    transaction.statusDescription = "INIT phase"
78
    transaction.transactionStatus = TransactionStatus.INIT
79
    transaction_client.createTransaction(transaction)
80
 
81