Subversion Repositories SmartDukaan

Rev

Rev 304 | Rev 483 | 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()
410 rajveer 28
        self.host = config_client.get_property("transaction_service_server_host")
29
        self.port = config_client.get_property("transaction_service_server_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)
304 ashish 46
 
47
    def createAlert(self, transaction_id, type, comment):
48
        self.client.setAlert(transaction_id, False, type, comment)
132 ashish 49
 
304 ashish 50
    def get_client(self):
51
        return self.client
52
 
132 ashish 53
if __name__ == '__main__':
54
    transaction_client = TransactionClient()
55
 
56
    transaction = Transaction()
57
    transaction.shoppingCartid = 2
58
    transaction.customer_id = 4
59
    transaction.createdOn = to_java_date(datetime.datetime.now())
60
    transaction.expectedDeliveryTime = to_java_date(datetime.datetime.now())
61
    payment_info = PaymentInfo()
62
    payment_info.payments
63
    payment_info.payments = {}
64
    payment = Payment()
65
    payment.merchant_tx_id = "123"
66
    payment.bank_tx_id = "ICIC0001"
67
    payment.mode = "CARD"
68
    payment.amount = 23.5
69
    payment.status = PaymentStatus.SUCCESS
70
    payment.submissionTimestamp = to_java_date(datetime.datetime.now())
71
    payment.completionTimestamp = to_java_date(datetime.datetime.now())
72
    payment.description = "Sample payment"
73
    payment_info.payments[to_java_date(datetime.datetime.now())] = payment
74
    transaction.paymentInfo = payment_info
75
    order_info = OrderInfo()
76
    order_info.lineitems = []
77
    line_item = LineItem()
78
    line_item.addedOn = to_java_date(datetime.datetime.now())
79
    line_item.item = Item()
80
    line_item.item.id = 23
81
    line_item.item.price = 2.40
82
    line_item.item.weight = 2.42
83
    order_info.lineitems.append(line_item)
84
    transaction.orderInfo = order_info
85
    transaction.statusDescription = "INIT phase"
86
    transaction.transactionStatus = TransactionStatus.INIT
194 ashish 87
    shipping_info = ShipmentInfo()
88
    shipping_info.shipments = []
89
    shipment = Shipment()
90
    shipment.weight = 2.42
91
    shipment.lineitems = order_info.lineitems;
92
    shipment.insurance = 2;
93
    shipment.value = 2.40
94
    shipment.status = ShipmentStatus.YET_TO_SHIP
304 ashish 95
    shipment.address = "Ashish\nD-15-15,Ardee City,\nSector-52\nGurgaon\nHaryana\n122003"
194 ashish 96
    shipping_info.shipments.append(shipment)
97
    transaction.shipmentInfo = shipping_info
98
 
132 ashish 99
    transaction_client.createTransaction(transaction)
100
 
304 ashish 101
    transaction_client.createAlert(2, 1, "Not yet shipped")
102
 
103
    transaction_client.get_client().setExtraInfo(2, 3, "E 71", "Black", "Nokia")
132 ashish 104