Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
130 ashish 1
'''
2
Created on 28-Apr-2010
3
 
4
@author: ashish
5
'''
6
from shop2020.utils.Utils import log_entry
557 chandransh 7
from shop2020.model.v1.user.impl.UserDataAccessors import create_user, update_user, get_user_by_id, update_password,\
8
    set_user_as_logged_out, set_user_as_logged_in, remove_address_for_user,\
9
    add_address_for_user, delete_user, authenticate_user, user_exists, get_user_state, initialize, set_default_address,\
1273 varun.gupt 10
    create_anonymous_user, forgot_password, get_all_addresses_for_user, get_default_address_id, get_default_pincode,\
11
    create_user_communication
557 chandransh 12
from shop2020.model.v1.user.impl.CartDataAccessors import create_cart, get_cart,\
13
    get_cart_by_id, get_cart_by_user_id_and_status, get_carts_by_status,\
14
    get_carts_between, change_cart_status, add_item_to_cart,\
643 chandransh 15
    change_item_status, add_address_to_cart, commit_cart,\
691 chandransh 16
    validate_cart, merge_cart, delete_item_from_cart, check_out, reset_cart
594 rajveer 17
from shop2020.model.v1.user.impl.Converters import to_t_user, to_t_user_state, to_t_cart, to_t_address
576 chandransh 18
 
557 chandransh 19
from shop2020.thriftpy.model.v1.user.ttypes import ShoppingCartException
130 ashish 20
 
772 rajveer 21
from shop2020.model.v1.user.impl.WidgetDataAccessor import update_my_research, get_browse_history,\
22
    update_browse_history, delete_item_from_my_research, merge_browse_history, get_my_research
23
from shop2020.model.v1.user.impl.WidgetConverters import to_t_widget
766 rajveer 24
from shop2020.model.v1.user.impl import UserDataAccessors, CartDataAccessors,\
25
    WidgetDataAccessor
557 chandransh 26
 
130 ashish 27
class UserContextServiceHandler:
28
 
404 rajveer 29
 
1249 chandransh 30
    def __init__(self, dbname='user'):
31
        initialize(dbname)
557 chandransh 32
 
130 ashish 33
    """
557 chandransh 34
    service
130 ashish 35
    """
557 chandransh 36
    def createAnonymousUser(self, jsessionId):
766 rajveer 37
        try:
38
            cart = create_cart(-1)
39
            return to_t_user(create_anonymous_user(jsessionId, cart))
40
        finally:
41
            UserDataAccessors.close_session()
557 chandransh 42
    def getUserById(self, userId):
130 ashish 43
        """
44
        Parameters:
557 chandransh 45
        - userId
130 ashish 46
        """
766 rajveer 47
        try:
48
            return to_t_user(get_user_by_id(userId))
49
        finally:
50
            UserDataAccessors.close_session()
51
 
557 chandransh 52
    def createUser(self, user):
130 ashish 53
        """
54
        Parameters:
557 chandransh 55
        - user
130 ashish 56
        """
766 rajveer 57
        try:
58
            cart = create_cart(-1)
59
            return to_t_user(create_user(user, cart))
60
        finally:
61
            UserDataAccessors.close_session()
62
 
557 chandransh 63
    def updateUser(self, user):
130 ashish 64
        """
65
        Parameters:
557 chandransh 66
        - user
130 ashish 67
        """
766 rajveer 68
        try:
69
            return to_t_user(update_user(user))
70
        finally:
71
            UserDataAccessors.close_session()
72
 
557 chandransh 73
    def deleteUser(self, userId):
130 ashish 74
        """
75
        Parameters:
557 chandransh 76
        - userId
130 ashish 77
        """
766 rajveer 78
        try:
79
            return delete_user(userId)
80
        finally:
81
            UserDataAccessors.close_session()
82
 
557 chandransh 83
    def getUserState(self, userId):
84
        """
85
        Parameters:
86
        - userId
87
        """
130 ashish 88
        log_entry(self, "get State")
766 rajveer 89
        try:
90
            return to_t_user_state(get_user_state(userId))
91
        finally:
92
            UserDataAccessors.close_session()
93
 
557 chandransh 94
    def authenticateUser(self, email, password):
130 ashish 95
        """
96
        Parameters:
557 chandransh 97
        - email
98
        - password
99
        """
100
        log_entry(self, "authenticate user")
766 rajveer 101
        try:
102
            return to_t_user(authenticate_user(email, password))
103
        finally:
104
            UserDataAccessors.close_session()
105
 
557 chandransh 106
    def userExists(self, email):
107
        """
108
        Parameters:
109
        - email
110
        """
111
        log_entry(self, "user exists")
766 rajveer 112
        try:
113
            return user_exists(email)
114
        finally:
115
            UserDataAccessors.close_session()
116
 
567 rajveer 117
    def addAddressForUser(self, userId, address, setDefault):
557 chandransh 118
        """
119
        Parameters:
120
        - userId
121
        - address
122
        - setDefault
123
        """
124
        log_entry(self, "add address for user")
766 rajveer 125
        try:
126
            return add_address_for_user(address, userId, setDefault)
127
        finally:
128
            UserDataAccessors.close_session()
129
 
557 chandransh 130
    def removeAddressForUser(self, userid, addressId):
131
        """
132
        Parameters:
133
        - userid
134
        - addressId
135
        """
136
        log_entry(self, "removing address")
766 rajveer 137
        try:
138
            return remove_address_for_user(userid, addressId)
139
        finally:
140
            UserDataAccessors.close_session()
141
 
557 chandransh 142
    def setUserAsLoggedIn(self, userId, timestamp):
143
        """
144
        Parameters:
145
        - userId
146
        - timestamp
147
        """
148
        log_entry(self, "set_user_as_logged_in")
766 rajveer 149
        try:
150
            return set_user_as_logged_in(userId, timestamp)
151
        finally:
152
            UserDataAccessors.close_session()
153
 
557 chandransh 154
    def setUserAsLoggedOut(self, userId, timestamp):
155
        """
156
        Parameters:
157
        - userId
158
        - timestamp
159
        """
160
        log_entry(self, "set user as logged out")
766 rajveer 161
        try:
162
            return set_user_as_logged_out(userId, timestamp)
163
        finally:
164
            UserDataAccessors.close_session()
165
 
557 chandransh 166
    def setDefaultAddress(self, userId, addressId):
167
        """
168
        Parameters:
169
        - userId
170
        - addressId
171
        """
766 rajveer 172
        try:
173
            return set_default_address(userId, addressId)
174
        finally:
175
            UserDataAccessors.close_session()
176
 
594 rajveer 177
    def updatePassword(self, userid, oldPassword, newPassword):
557 chandransh 178
        """
179
        Parameters:
594 rajveer 180
         - userid
181
         - oldPassword
182
         - newPassword
557 chandransh 183
        """
184
        log_entry(self, "updating password")
766 rajveer 185
        try:
186
            return update_password(userid, oldPassword, newPassword)
187
        finally:
188
            UserDataAccessors.close_session()
189
 
884 rajveer 190
    def forgotPassword(self, email, password):
581 rajveer 191
        """
192
        Parameters:
193
         - email
194
        """
195
        log_entry(self, "forgot password")
766 rajveer 196
        try:
884 rajveer 197
            return forgot_password(email, password)
766 rajveer 198
        finally:
199
            UserDataAccessors.close_session()
200
 
594 rajveer 201
    def getAllAddressesForUser(self, userId):
202
        """
203
        Parameters:
204
         - userId
205
        """
766 rajveer 206
        try:
207
            addresses = get_all_addresses_for_user(userId)
208
 
209
            t_addresses = list()
210
            for address in addresses:
211
                t_addresses.append(to_t_address(address))
212
            return t_addresses
213
        finally:
214
            UserDataAccessors.close_session()
594 rajveer 215
 
216
    def getDefaultAddressId(self, userId):
217
        """
218
        Parameters:
219
         - userId
220
        """
766 rajveer 221
        try:
785 rajveer 222
            return get_default_address_id(userId)
766 rajveer 223
        finally:
224
            UserDataAccessors.close_session()
785 rajveer 225
 
226
    def getDefaultPincode(self, userId):
227
        """
228
        Parameters:
229
         - userId
230
        """
231
        try:
232
            return get_default_pincode(userId)
233
        finally:
234
            UserDataAccessors.close_session()
235
 
557 chandransh 236
    def createCart(self, userId):
237
        """
238
        Parameters:
239
        - userId
240
        """
766 rajveer 241
        try:
242
            return create_cart(userId).id
243
        finally:
244
            UserDataAccessors.close_session()
245
 
557 chandransh 246
    def getCurrentCart(self, userId):
247
        """
248
        Parameters:
130 ashish 249
         - userId
250
        """
766 rajveer 251
        try:
252
            cart = get_cart(userId)
253
            if cart:
254
                return to_t_cart(cart)
255
            else:
256
                raise ShoppingCartException(101, "not cart attached to this user")
257
        finally:
258
            CartDataAccessors.close_session()
259
 
557 chandransh 260
    def getCart(self, cartId):
261
        """
262
        Parameters:
263
         - cartId
264
        """
766 rajveer 265
        try:
266
            cart = get_cart_by_id(cartId)
267
            if cart:
268
                return to_t_cart(cart)
269
            else:
270
                raise ShoppingCartException(101, "not cart attached to this id")
271
        finally:
272
            CartDataAccessors.close_session()
273
 
557 chandransh 274
    def getCartsForUser(self, userId, status):
130 ashish 275
        """
276
        Parameters:
277
         - userId
557 chandransh 278
         - status
130 ashish 279
        """
766 rajveer 280
        try:
281
            if not userId:
282
                raise ShoppingCartException(101, "user_id is not provided")
283
 
284
            carts = get_cart_by_user_id_and_status(userId, status)
285
            t_carts = []
286
            if carts:
287
                for cart in carts:
288
                    t_carts.append(to_t_cart(cart))
289
            return t_carts
290
        finally:
291
            CartDataAccessors.close_session()
292
 
557 chandransh 293
    def getCartsByStatus(self, status):
130 ashish 294
        """
295
        Parameters:
557 chandransh 296
         - status
130 ashish 297
        """
766 rajveer 298
        try:
299
            carts = get_carts_by_status(status)
300
            t_carts = []
301
            if carts:
302
                for cart in carts:
303
                    t_carts.append(to_t_cart(cart))
304
            return t_carts
305
        finally:
306
            CartDataAccessors.close_session()
307
 
557 chandransh 308
    def getCartsByTime(self, from_time, to_time, status):
130 ashish 309
        """
310
        Parameters:
557 chandransh 311
         - from_time
312
         - to_time
313
         - status
130 ashish 314
        """
766 rajveer 315
        try:
316
            carts = get_carts_between(from_time, to_time, status)
317
            t_carts = []
318
            if carts:
319
                for cart in carts:
320
                    t_carts.append(to_t_cart(cart))
321
            return t_carts
322
        finally:
323
            CartDataAccessors.close_session()
324
 
557 chandransh 325
    def changeCartStatus(self, cartId, status):
130 ashish 326
        """
327
        Parameters:
557 chandransh 328
         - cartId
329
         - status
130 ashish 330
        """
766 rajveer 331
        try:
332
            change_cart_status(cartId, status)
333
        finally:
334
            CartDataAccessors.close_session()
335
 
557 chandransh 336
    def addItemToCart(self, cartId, itemId, quantity):
130 ashish 337
        """
338
        Parameters:
557 chandransh 339
         - cartId
340
         - itemId
341
         - quantity
130 ashish 342
        """
766 rajveer 343
        try:
344
            add_item_to_cart(cartId, itemId, quantity)
345
        finally:
346
            CartDataAccessors.close_session()
347
 
557 chandransh 348
    def deleteItemFromCart(self, cartId, itemId):
130 ashish 349
        """
350
        Parameters:
557 chandransh 351
         - cartId
352
         - itemId
130 ashish 353
        """
766 rajveer 354
        try:
355
            delete_item_from_cart(cartId, itemId)
356
        finally:
357
            CartDataAccessors.close_session()
358
 
557 chandransh 359
    def changeQuantity(self, cartId, itemId, quantity):
360
        """
361
        Parameters:
362
         - cartId
363
         - itemId
364
         - quantity
365
        """
766 rajveer 366
        try:
367
            add_item_to_cart(cartId, itemId, quantity)
368
        finally:
369
            CartDataAccessors.close_session()
370
 
557 chandransh 371
    def changeItemStatus(self, cartId, itemId, status):
130 ashish 372
        """
373
        Parameters:
557 chandransh 374
         - cartId
375
         - itemId
376
        """
766 rajveer 377
        try:
378
            return change_item_status(cartId, itemId, status)
379
        finally:
380
            CartDataAccessors.close_session()
381
 
557 chandransh 382
    def addAddressToCart(self, cartId, addressId):
383
        """
384
        Parameters:
385
         - cartId
130 ashish 386
         - addressId
387
        """
766 rajveer 388
        try:
389
            return add_address_to_cart(cartId, addressId)
390
        finally:
391
            CartDataAccessors.close_session()
392
 
690 chandransh 393
    def createOrders(self, cartId):
130 ashish 394
        """
395
        Parameters:
557 chandransh 396
         - cartId
130 ashish 397
        """
766 rajveer 398
        try:
399
            return commit_cart(cartId)
400
        finally:
401
            CartDataAccessors.close_session()
402
 
557 chandransh 403
    def validateCart(self, cartId):
130 ashish 404
        """
405
        Parameters:
557 chandransh 406
         - cartId
130 ashish 407
        """
766 rajveer 408
        try:
409
            return validate_cart(cartId)
410
        finally:
411
            CartDataAccessors.close_session()
412
 
557 chandransh 413
    def mergeCart(self, fromCartId, toCartId):
513 rajveer 414
        """
415
        Parameters:
557 chandransh 416
         - fromCartId
417
         - toCartId
513 rajveer 418
        """
766 rajveer 419
        try:
420
            merge_cart(fromCartId, toCartId)
421
        finally:
422
            CartDataAccessors.close_session()
423
 
691 chandransh 424
    def checkOut(self, cartId):
425
        """
426
        Sets the checkedOutOn timestamp of the cart. Raises an exception if the specified cart can't be found.
427
 
428
        Parameters:
429
         - cartId
430
        """
766 rajveer 431
        try:
432
            return check_out(cartId)
433
        finally:
434
            CartDataAccessors.close_session()
435
 
691 chandransh 436
    def resetCart(self, cartId, items):
437
        """
438
        The second parameter is a map of item ids and their quantities which have been successfully processed.
439
        This methods removes the specified quantiry of the specified item from the cart.
440
 
441
        Parameters:
442
         - cartId
443
         - items
444
        """
766 rajveer 445
        try:
446
            return reset_cart(cartId, items)
447
        finally:
448
            CartDataAccessors.close_session()
772 rajveer 449
 
450
    #Widget related methods
451
    def getMyResearch(self, userId):
452
        """
453
        Parameters:
454
         - user_id
455
        """
456
        try:
457
            return to_t_widget(get_my_research(userId))
458
        finally:
459
            WidgetDataAccessor.close_session()
460
 
461
    def updateMyResearch(self, userId, itemId):
462
        """
463
        Parameters:
464
         - user_id
465
         - item_id
466
        """
467
        try:
468
            return update_my_research(userId, itemId)
469
        finally:
470
            WidgetDataAccessor.close_session()
471
 
472
    def deleteItemFromMyResearch(self, userId, itemId):
473
        """
474
        Parameters:
475
         - user_id
476
         - item_id
477
        """
478
        try:
479
            return delete_item_from_my_research(userId, itemId)
480
        finally:
481
            WidgetDataAccessor.close_session()
766 rajveer 482
 
772 rajveer 483
    def updateBrowseHistory(self, userId, itemId):
484
        """
485
        Parameters: 
486
        - user_id
487
        - item_id
488
        """
489
        try:
490
            update_browse_history(userId, itemId)
491
        finally:
492
            WidgetDataAccessor.close_session()
493
 
494
    def getBrowseHistory(self, userId):
495
        """
496
        Parameters:
497
         - user_id
498
        """
499
        try:
500
            return to_t_widget(get_browse_history(userId))
501
        finally:
502
            WidgetDataAccessor.close_session()
503
 
504
    def mergeBrowseHistory(self, fromUserId, toUserId):
505
        """
506
        Parameters:
507
         - user_id
508
        """
509
        try:
510
            return merge_browse_history(fromUserId, toUserId)
511
        finally:
512
            WidgetDataAccessor.close_session()
513
 
1273 varun.gupt 514
    def saveUserCommunication(self, userId, email, communicationType, orderId, awb, product, subject, message):
515
        """
516
        Parameters:
517
         - userId
518
         - email
519
         - communicationType
520
         - orderId
521
         - awb
522
         - product
523
         - subject
524
         - message
525
        """
526
        try:
527
            return create_user_communication(userId, email, communicationType, orderId, awb, product, subject, message)
528
        finally:
529
            WidgetDataAccessor.close_session()
530
 
772 rajveer 531
    def closeSession(self, ):
532
        CartDataAccessors.close_session()
533
        UserDataAccessors.close_session()
534
        WidgetDataAccessor.close_session()
535
 
536
    '''        
557 chandransh 537
    def addWidget(self, widget):
130 ashish 538
        """
539
        Parameters:
557 chandransh 540
         - widget
130 ashish 541
        """
766 rajveer 542
        try:
543
            add_widget(widget)
544
        finally:
545
            WidgetDataAccessor.close_session()
130 ashish 546
 
557 chandransh 547
    def addItemToWidget(self, widget_id, items):
130 ashish 548
        """
549
        Parameters:
557 chandransh 550
         - widget_id
551
         - items
130 ashish 552
        """
766 rajveer 553
        try:
554
            add_items_to_widget(widget_id, items)
555
        finally:
556
            WidgetDataAccessor.close_session()
557
 
557 chandransh 558
    def updateWidget(self, widgetId, enable):
130 ashish 559
        """
560
        Parameters:
557 chandransh 561
         - widgetId
562
         - enable
130 ashish 563
        """
766 rajveer 564
        try:
565
            update_widget(widgetId, enable)
566
        finally:
567
            WidgetDataAccessor.close_session()
568
 
557 chandransh 569
    def updateWidgetItem(self, widgetId, enable):
130 ashish 570
        """
571
        Parameters:
557 chandransh 572
         - widgetId
573
         - enable
130 ashish 574
        """
766 rajveer 575
        try:
576
            update_widget(widgetId, enable)
577
        finally:
578
            WidgetDataAccessor.close_session()
579
 
557 chandransh 580
    def deleteItemFromWidget(self, widget_id, item_id):
581
        """
582
        Parameters:
583
         - widget_id
584
         - item_id
585
        """
766 rajveer 586
        try:
587
            return delete_item_from_widget(widget_id, item_id)
588
        finally:
589
            WidgetDataAccessor.close_session()
590
 
557 chandransh 591
    def getWidget(self, type, userId, onlyEnabled):
130 ashish 592
        """
593
        Parameters:
557 chandransh 594
         - type
595
         - userId
596
         - onlyEnabled
130 ashish 597
        """
766 rajveer 598
        try:
599
            widget = get_widget_by_type(type, userId, onlyEnabled)
600
            return to_t_widget(widget)
601
        finally:
602
            WidgetDataAccessor.close_session()
603
 
557 chandransh 604
    def updateRatings(self, item_id, type, rating, user_id):
130 ashish 605
        """
606
        Parameters:
557 chandransh 607
        - item_id
608
        - type
609
        - rating
610
        - user_id
130 ashish 611
        """
766 rajveer 612
        try:
613
            update_ratings(user_id, item_id, rating, type)
614
        finally:
615
            WidgetDataAccessor.close_session()
557 chandransh 616
 
617
    def getRatings(self, item_id, user_id):
618
        """
619
        Parameters:
620
        - item_id
621
        - user_id
622
        """
766 rajveer 623
        try:
624
            all_ratings, user_ratings = get_ratings(user_id, item_id)
625
            return to_t_ratings(user_ratings, all_ratings, item_id, user_id)
626
        finally:
627
            WidgetDataAccessor.close_session()
628
 
772 rajveer 629
    '''
630