Subversion Repositories SmartDukaan

Rev

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