Subversion Repositories SmartDukaan

Rev

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