Subversion Repositories SmartDukaan

Rev

Rev 3554 | Rev 3563 | 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
'''
2981 rajveer 6
from shop2020.utils.Utils import log_entry
1491 vikas 7
from shop2020.model.v1.user.impl.UserDataAccessors import create_user, update_user, get_user_by_id, get_user_by_email, update_password,\
557 chandransh 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,\
1894 vikas 10
    create_anonymous_user, forgot_password, get_all_addresses_for_user, get_address, get_default_address_id, get_default_pincode,\
1845 vikas 11
    create_user_communication, get_user_communication_by_id, get_user_communication_by_user, get_all_user_communications,\
1996 vikas 12
    create_affiliate, get_affiliate_by_id, get_affiliate_by_name, get_tracker_by_id, add_track_log, get_track_log_by_id, get_track_logs_by_affiliate,\
13
    get_track_logs_by_user, get_track_logs, create_master_affiliate,\
2641 varun.gupt 14
    get_master_affiliate_by_id, get_master_affiliate_by_name, get_affiliates_by_master_affiliate, get_all_master_affiliates,\
2981 rajveer 15
    get_user_notes, put_user_note, get_my_research_items,\
16
    get_browse_history_items, update_my_research, delete_item_from_my_research,\
3499 mandeep.dh 17
    update_browse_history, get_user_by_mobile_number, is_alive, increase_trust_level
3032 mandeep.dh 18
 
557 chandransh 19
from shop2020.model.v1.user.impl.CartDataAccessors import create_cart, get_cart,\
20
    get_cart_by_id, get_cart_by_user_id_and_status, get_carts_by_status,\
21
    get_carts_between, change_cart_status, add_item_to_cart,\
643 chandransh 22
    change_item_status, add_address_to_cart, commit_cart,\
1976 varun.gupt 23
    validate_cart, merge_cart, delete_item_from_cart, check_out, reset_cart,\
3554 varun.gupt 24
    apply_coupon_to_cart, remove_coupon, get_carts_with_coupon_count,\
25
    delete_discounts_from_cart, save_discounts
1845 vikas 26
from shop2020.model.v1.user.impl.Converters import to_t_user, to_t_user_state, to_t_cart, to_t_address, to_t_user_communication,\
2641 varun.gupt 27
     to_t_master_affiliate, to_t_affiliate, to_t_tracker, to_t_track_log,\
28
    to_t_user_note
576 chandransh 29
 
557 chandransh 30
from shop2020.thriftpy.model.v1.user.ttypes import ShoppingCartException
130 ashish 31
 
2981 rajveer 32
from shop2020.model.v1.user.impl import UserDataAccessors, CartDataAccessors
557 chandransh 33
 
130 ashish 34
class UserContextServiceHandler:
35
 
404 rajveer 36
 
3187 rajveer 37
    def __init__(self, dbname='user', db_hostname='localhost'):
38
        initialize(dbname, db_hostname)
557 chandransh 39
 
130 ashish 40
    """
557 chandransh 41
    service
130 ashish 42
    """
557 chandransh 43
    def createAnonymousUser(self, jsessionId):
766 rajveer 44
        try:
45
            cart = create_cart(-1)
46
            return to_t_user(create_anonymous_user(jsessionId, cart))
47
        finally:
48
            UserDataAccessors.close_session()
557 chandransh 49
    def getUserById(self, userId):
130 ashish 50
        """
51
        Parameters:
557 chandransh 52
        - userId
130 ashish 53
        """
766 rajveer 54
        try:
55
            return to_t_user(get_user_by_id(userId))
56
        finally:
57
            UserDataAccessors.close_session()
1491 vikas 58
 
3032 mandeep.dh 59
    def getUserByMobileNumber(self, mobileNumber):
60
        """
61
        Parameters:
62
        - mobileNumber
63
        """
64
        try:
65
            return to_t_user(get_user_by_mobile_number(mobileNumber))
66
        finally:
67
            UserDataAccessors.close_session()
68
 
1491 vikas 69
    def getUserByEmail(self, email):
70
        """
71
        Parameters:
72
         - email
73
        """
74
        try:
75
            return to_t_user(get_user_by_email(email))
76
        finally:
77
            UserDataAccessors.close_session()
78
 
79
 
557 chandransh 80
    def createUser(self, user):
130 ashish 81
        """
82
        Parameters:
557 chandransh 83
        - user
130 ashish 84
        """
766 rajveer 85
        try:
86
            cart = create_cart(-1)
87
            return to_t_user(create_user(user, cart))
88
        finally:
89
            UserDataAccessors.close_session()
90
 
557 chandransh 91
    def updateUser(self, user):
130 ashish 92
        """
93
        Parameters:
557 chandransh 94
        - user
130 ashish 95
        """
766 rajveer 96
        try:
97
            return to_t_user(update_user(user))
98
        finally:
99
            UserDataAccessors.close_session()
100
 
557 chandransh 101
    def deleteUser(self, userId):
130 ashish 102
        """
103
        Parameters:
557 chandransh 104
        - userId
130 ashish 105
        """
766 rajveer 106
        try:
107
            return delete_user(userId)
108
        finally:
109
            UserDataAccessors.close_session()
110
 
557 chandransh 111
    def getUserState(self, userId):
112
        """
113
        Parameters:
114
        - userId
115
        """
130 ashish 116
        log_entry(self, "get State")
766 rajveer 117
        try:
118
            return to_t_user_state(get_user_state(userId))
119
        finally:
120
            UserDataAccessors.close_session()
121
 
557 chandransh 122
    def authenticateUser(self, email, password):
130 ashish 123
        """
124
        Parameters:
557 chandransh 125
        - email
126
        - password
127
        """
128
        log_entry(self, "authenticate user")
766 rajveer 129
        try:
130
            return to_t_user(authenticate_user(email, password))
131
        finally:
132
            UserDataAccessors.close_session()
133
 
557 chandransh 134
    def userExists(self, email):
135
        """
136
        Parameters:
137
        - email
138
        """
139
        log_entry(self, "user exists")
766 rajveer 140
        try:
141
            return user_exists(email)
142
        finally:
143
            UserDataAccessors.close_session()
144
 
567 rajveer 145
    def addAddressForUser(self, userId, address, setDefault):
557 chandransh 146
        """
147
        Parameters:
148
        - userId
149
        - address
150
        - setDefault
151
        """
152
        log_entry(self, "add address for user")
766 rajveer 153
        try:
154
            return add_address_for_user(address, userId, setDefault)
155
        finally:
156
            UserDataAccessors.close_session()
157
 
557 chandransh 158
    def removeAddressForUser(self, userid, addressId):
159
        """
160
        Parameters:
161
        - userid
162
        - addressId
163
        """
164
        log_entry(self, "removing address")
766 rajveer 165
        try:
166
            return remove_address_for_user(userid, addressId)
167
        finally:
168
            UserDataAccessors.close_session()
169
 
557 chandransh 170
    def setUserAsLoggedIn(self, userId, timestamp):
171
        """
172
        Parameters:
173
        - userId
174
        - timestamp
175
        """
176
        log_entry(self, "set_user_as_logged_in")
766 rajveer 177
        try:
178
            return set_user_as_logged_in(userId, timestamp)
179
        finally:
180
            UserDataAccessors.close_session()
181
 
557 chandransh 182
    def setUserAsLoggedOut(self, userId, timestamp):
183
        """
184
        Parameters:
185
        - userId
186
        - timestamp
187
        """
188
        log_entry(self, "set user as logged out")
766 rajveer 189
        try:
190
            return set_user_as_logged_out(userId, timestamp)
191
        finally:
192
            UserDataAccessors.close_session()
193
 
557 chandransh 194
    def setDefaultAddress(self, userId, addressId):
195
        """
196
        Parameters:
197
        - userId
198
        - addressId
199
        """
766 rajveer 200
        try:
201
            return set_default_address(userId, addressId)
202
        finally:
203
            UserDataAccessors.close_session()
204
 
594 rajveer 205
    def updatePassword(self, userid, oldPassword, newPassword):
557 chandransh 206
        """
207
        Parameters:
594 rajveer 208
         - userid
209
         - oldPassword
210
         - newPassword
557 chandransh 211
        """
212
        log_entry(self, "updating password")
766 rajveer 213
        try:
214
            return update_password(userid, oldPassword, newPassword)
215
        finally:
216
            UserDataAccessors.close_session()
217
 
884 rajveer 218
    def forgotPassword(self, email, password):
581 rajveer 219
        """
220
        Parameters:
221
         - email
222
        """
223
        log_entry(self, "forgot password")
766 rajveer 224
        try:
884 rajveer 225
            return forgot_password(email, password)
766 rajveer 226
        finally:
227
            UserDataAccessors.close_session()
228
 
594 rajveer 229
    def getAllAddressesForUser(self, userId):
230
        """
231
        Parameters:
232
         - userId
233
        """
766 rajveer 234
        try:
235
            addresses = get_all_addresses_for_user(userId)
236
 
237
            t_addresses = list()
238
            for address in addresses:
239
                t_addresses.append(to_t_address(address))
240
            return t_addresses
241
        finally:
242
            UserDataAccessors.close_session()
594 rajveer 243
 
1894 vikas 244
    def getAddressById(self, addressId):
245
        """
246
        Parameters:
247
         - addressId
248
        """
249
        try:
250
            return to_t_address(get_address(addressId))
251
        finally:
252
            UserDataAccessors.close_session()
253
 
594 rajveer 254
    def getDefaultAddressId(self, userId):
255
        """
256
        Parameters:
257
         - userId
258
        """
766 rajveer 259
        try:
785 rajveer 260
            return get_default_address_id(userId)
766 rajveer 261
        finally:
262
            UserDataAccessors.close_session()
785 rajveer 263
 
264
    def getDefaultPincode(self, userId):
265
        """
266
        Parameters:
267
         - userId
268
        """
269
        try:
270
            return get_default_pincode(userId)
271
        finally:
272
            UserDataAccessors.close_session()
273
 
557 chandransh 274
    def createCart(self, userId):
275
        """
276
        Parameters:
277
        - userId
278
        """
766 rajveer 279
        try:
280
            return create_cart(userId).id
281
        finally:
282
            UserDataAccessors.close_session()
283
 
557 chandransh 284
    def getCurrentCart(self, userId):
285
        """
286
        Parameters:
130 ashish 287
         - userId
288
        """
766 rajveer 289
        try:
290
            cart = get_cart(userId)
291
            if cart:
292
                return to_t_cart(cart)
293
            else:
294
                raise ShoppingCartException(101, "not cart attached to this user")
295
        finally:
296
            CartDataAccessors.close_session()
297
 
557 chandransh 298
    def getCart(self, cartId):
299
        """
300
        Parameters:
301
         - cartId
302
        """
766 rajveer 303
        try:
304
            cart = get_cart_by_id(cartId)
305
            if cart:
306
                return to_t_cart(cart)
307
            else:
308
                raise ShoppingCartException(101, "not cart attached to this id")
309
        finally:
310
            CartDataAccessors.close_session()
311
 
557 chandransh 312
    def getCartsForUser(self, userId, status):
130 ashish 313
        """
314
        Parameters:
315
         - userId
557 chandransh 316
         - status
130 ashish 317
        """
766 rajveer 318
        try:
319
            if not userId:
320
                raise ShoppingCartException(101, "user_id is not provided")
321
 
322
            carts = get_cart_by_user_id_and_status(userId, status)
323
            t_carts = []
324
            if carts:
325
                for cart in carts:
326
                    t_carts.append(to_t_cart(cart))
327
            return t_carts
328
        finally:
329
            CartDataAccessors.close_session()
330
 
557 chandransh 331
    def getCartsByStatus(self, status):
130 ashish 332
        """
333
        Parameters:
557 chandransh 334
         - status
130 ashish 335
        """
766 rajveer 336
        try:
337
            carts = get_carts_by_status(status)
338
            t_carts = []
339
            if carts:
340
                for cart in carts:
341
                    t_carts.append(to_t_cart(cart))
342
            return t_carts
343
        finally:
344
            CartDataAccessors.close_session()
345
 
557 chandransh 346
    def getCartsByTime(self, from_time, to_time, status):
130 ashish 347
        """
348
        Parameters:
557 chandransh 349
         - from_time
350
         - to_time
351
         - status
130 ashish 352
        """
766 rajveer 353
        try:
354
            carts = get_carts_between(from_time, to_time, status)
355
            t_carts = []
356
            if carts:
357
                for cart in carts:
358
                    t_carts.append(to_t_cart(cart))
359
            return t_carts
360
        finally:
361
            CartDataAccessors.close_session()
362
 
557 chandransh 363
    def changeCartStatus(self, cartId, status):
130 ashish 364
        """
365
        Parameters:
557 chandransh 366
         - cartId
367
         - status
130 ashish 368
        """
766 rajveer 369
        try:
370
            change_cart_status(cartId, status)
371
        finally:
372
            CartDataAccessors.close_session()
373
 
3557 rajveer 374
    def addItemToCart(self, cartId, itemId, quantity, sourceId):
130 ashish 375
        """
376
        Parameters:
557 chandransh 377
         - cartId
378
         - itemId
379
         - quantity
130 ashish 380
        """
766 rajveer 381
        try:
3557 rajveer 382
            return add_item_to_cart(cartId, itemId, quantity, sourceId)
766 rajveer 383
        finally:
384
            CartDataAccessors.close_session()
385
 
557 chandransh 386
    def deleteItemFromCart(self, cartId, itemId):
130 ashish 387
        """
388
        Parameters:
557 chandransh 389
         - cartId
390
         - itemId
130 ashish 391
        """
766 rajveer 392
        try:
393
            delete_item_from_cart(cartId, itemId)
394
        finally:
395
            CartDataAccessors.close_session()
396
 
557 chandransh 397
    def changeQuantity(self, cartId, itemId, quantity):
398
        """
399
        Parameters:
400
         - cartId
401
         - itemId
402
         - quantity
403
        """
766 rajveer 404
        try:
405
            add_item_to_cart(cartId, itemId, quantity)
406
        finally:
407
            CartDataAccessors.close_session()
408
 
557 chandransh 409
    def changeItemStatus(self, cartId, itemId, status):
130 ashish 410
        """
411
        Parameters:
557 chandransh 412
         - cartId
413
         - itemId
414
        """
766 rajveer 415
        try:
416
            return change_item_status(cartId, itemId, status)
417
        finally:
418
            CartDataAccessors.close_session()
419
 
557 chandransh 420
    def addAddressToCart(self, cartId, addressId):
421
        """
422
        Parameters:
423
         - cartId
130 ashish 424
         - addressId
425
        """
766 rajveer 426
        try:
427
            return add_address_to_cart(cartId, addressId)
428
        finally:
429
            CartDataAccessors.close_session()
1976 varun.gupt 430
 
431
    def applyCouponToCart(self, cartId, couponCode, totalPrice, discountedPrice):
432
        '''
433
        Parameters:
434
        - cartId
435
        - couponCode
436
        - totalPrice
437
        - discountedPrice
438
        '''
439
        try:
440
            apply_coupon_to_cart(cartId, couponCode, totalPrice, discountedPrice)
441
        finally:
442
            CartDataAccessors.close_session()
443
 
444
    def removeCoupon(self, cartId):
445
        '''
446
        Parameters:
447
        - cartId
448
        '''
449
        try:
450
            remove_coupon(cartId)
451
        finally:
452
            CartDataAccessors.close_session()
453
 
2815 vikas 454
    def createOrders(self, cartId, sessionSource, sessionTime):
130 ashish 455
        """
456
        Parameters:
557 chandransh 457
         - cartId
2815 vikas 458
         - sessionSource
130 ashish 459
        """
766 rajveer 460
        try:
2815 vikas 461
            return commit_cart(cartId, sessionSource, sessionTime)
766 rajveer 462
        finally:
463
            CartDataAccessors.close_session()
1466 ankur.sing 464
 
3557 rajveer 465
    def validateCart(self, cartId, sourceId):
130 ashish 466
        """
1466 ankur.sing 467
        Validates that:
468
        1. The checkout timestamp is greater than the updatedOn timestamp.
469
        2. All of the lines in the cart are active items.
470
        3. The estimate for any of the lines in cart doesn't change.
1976 varun.gupt 471
        4. If a Coupon Code is attached, it gets applied and discounted price is computed
472
        If first three are true, returns empty string; else returns appropriate message.
1466 ankur.sing 473
 
130 ashish 474
        Parameters:
557 chandransh 475
         - cartId
130 ashish 476
        """
766 rajveer 477
        try:
3557 rajveer 478
            return validate_cart(cartId, sourceId)
766 rajveer 479
        finally:
480
            CartDataAccessors.close_session()
481
 
557 chandransh 482
    def mergeCart(self, fromCartId, toCartId):
513 rajveer 483
        """
484
        Parameters:
557 chandransh 485
         - fromCartId
486
         - toCartId
513 rajveer 487
        """
766 rajveer 488
        try:
489
            merge_cart(fromCartId, toCartId)
490
        finally:
491
            CartDataAccessors.close_session()
492
 
691 chandransh 493
    def checkOut(self, cartId):
494
        """
495
        Sets the checkedOutOn timestamp of the cart. Raises an exception if the specified cart can't be found.
496
 
497
        Parameters:
498
         - cartId
499
        """
766 rajveer 500
        try:
501
            return check_out(cartId)
502
        finally:
503
            CartDataAccessors.close_session()
504
 
691 chandransh 505
    def resetCart(self, cartId, items):
506
        """
507
        The second parameter is a map of item ids and their quantities which have been successfully processed.
508
        This methods removes the specified quantiry of the specified item from the cart.
509
 
510
        Parameters:
511
         - cartId
512
         - items
513
        """
766 rajveer 514
        try:
515
            return reset_cart(cartId, items)
516
        finally:
517
            CartDataAccessors.close_session()
772 rajveer 518
 
519
    #Widget related methods
520
    def updateMyResearch(self, userId, itemId):
521
        """
522
        Parameters:
523
         - user_id
524
         - item_id
525
        """
526
        try:
527
            return update_my_research(userId, itemId)
528
        finally:
2981 rajveer 529
            UserDataAccessors.close_session()
772 rajveer 530
 
531
    def deleteItemFromMyResearch(self, userId, itemId):
532
        """
533
        Parameters:
534
         - user_id
535
         - item_id
536
        """
537
        try:
538
            return delete_item_from_my_research(userId, itemId)
539
        finally:
2981 rajveer 540
            UserDataAccessors.close_session()
766 rajveer 541
 
772 rajveer 542
    def updateBrowseHistory(self, userId, itemId):
543
        """
544
        Parameters: 
545
        - user_id
546
        - item_id
547
        """
548
        try:
549
            update_browse_history(userId, itemId)
550
        finally:
2981 rajveer 551
            UserDataAccessors.close_session()
772 rajveer 552
 
553
    def mergeBrowseHistory(self, fromUserId, toUserId):
554
        """
555
        Parameters:
556
         - user_id
557
        """
2981 rajveer 558
        pass
772 rajveer 559
 
1273 varun.gupt 560
    def saveUserCommunication(self, userId, email, communicationType, orderId, awb, product, subject, message):
561
        """
562
        Parameters:
563
         - userId
564
         - email
565
         - communicationType
566
         - orderId
567
         - awb
568
         - product
569
         - subject
570
         - message
571
        """
572
        try:
573
            return create_user_communication(userId, email, communicationType, orderId, awb, product, subject, message)
574
        finally:
1605 varun.gupt 575
            UserDataAccessors.close_session()
1273 varun.gupt 576
 
1583 varun.gupt 577
    def getUserCommunicationById(self, id):
578
        """
579
        Parameters:
580
         - id
581
        """
582
        try:
583
            return to_t_user_communication(get_user_communication_by_id(id))
584
        finally:
1605 varun.gupt 585
            UserDataAccessors.close_session()
1583 varun.gupt 586
 
587
    def getUserCommunicationByUser(self, userId):
588
        """
589
        Parameters:
590
         - userId
591
        """
592
        try:
593
            return [to_t_user_communication(user_communication) for user_communication in get_user_communication_by_user(userId)]
594
        finally:
1605 varun.gupt 595
            UserDataAccessors.close_session()
1583 varun.gupt 596
 
597
    def getAllUserCommunications(self):
598
        try:
599
            return [to_t_user_communication(user_communication) for user_communication in get_all_user_communications()]
600
        finally:
1605 varun.gupt 601
            UserDataAccessors.close_session()
1596 ankur.sing 602
 
1859 vikas 603
    def createMasterAffiliate(self, name, addedOn):
1845 vikas 604
        """
605
        Parameters
606
         - name
1859 vikas 607
         - addedOn
1845 vikas 608
        """
609
        try:
1859 vikas 610
            return to_t_master_affiliate(create_master_affiliate(name, addedOn))
1845 vikas 611
        finally:
612
            UserDataAccessors.close_session()
613
 
1899 vikas 614
    def getAllMasterAffiliates(self):
615
        try:
616
            return [to_t_master_affiliate(masterAffiliate) for masterAffiliate in get_all_master_affiliates()]
617
        finally:
618
            UserDataAccessors.close_session()
619
 
1845 vikas 620
    def getMasterAffiliateById(self, id):
621
        """
622
        Parameters
623
         - id
624
        """
625
        try:
626
            return to_t_master_affiliate(get_master_affiliate_by_id(id))
627
        finally:
628
            UserDataAccessors.close_session()
629
 
630
    def getMasterAffiliateByName(self, name):
631
        """
632
        Parameters
633
         - id
634
        """
635
        try:
636
            return to_t_master_affiliate(get_master_affiliate_by_name(name))
637
        finally:
638
            UserDataAccessors.close_session()
639
 
1859 vikas 640
    def createAffiliate(self, name, url, masterAffiliateId, addedOn):
1845 vikas 641
        """
642
        Parameters
643
         - name
644
         - url
1859 vikas 645
         - masterAffiliateId
646
         - addedOn
1845 vikas 647
        """
648
        try:
1859 vikas 649
            return to_t_affiliate(create_affiliate(name, url, masterAffiliateId, addedOn))
1845 vikas 650
        finally:
651
            UserDataAccessors.close_session()
652
 
653
    def getAffiliateById(self, id):
654
        """
655
        Parameters
656
         - id
657
        """
658
        try:
659
            return to_t_affiliate(get_affiliate_by_id(id))
660
        finally:
661
            UserDataAccessors.close_session()
662
 
663
    def getAffiliateByName(self, name):
664
        """
665
        Parameters
666
         - name
667
        """
668
        try:
669
            return to_t_affiliate(get_affiliate_by_name(name))
670
        finally:
671
            UserDataAccessors.close_session()
672
 
1996 vikas 673
    def getAffiliatesByMasterAffiliate(self, masterAffiliateId):
1845 vikas 674
        """
675
        Parameters
676
         - master_id
677
        """
678
        try:
1996 vikas 679
            return [to_t_affiliate(affiliate) for affiliate in get_affiliates_by_master_affiliate(masterAffiliateId)]
1845 vikas 680
        finally:
681
            UserDataAccessors.close_session()
682
 
1996 vikas 683
    def getTrackerById(self, trackerId):
1845 vikas 684
        """
685
        Parameters
1996 vikas 686
         - trackerId
1845 vikas 687
        """
688
        try:
1996 vikas 689
            return to_t_tracker(get_tracker_by_id(trackerId))
1845 vikas 690
        finally:
691
            UserDataAccessors.close_session()
1996 vikas 692
 
693
    def addTrackLog(self, affiliateId, userId, event, url, data, addedOn):
1845 vikas 694
        """
1996 vikas 695
        Parameter
1845 vikas 696
         - affiliateId
697
         - userId
698
         - event
699
         - url
700
         - data
1859 vikas 701
         - addedOn
1845 vikas 702
        """
703
        try:
1996 vikas 704
            return add_track_log(affiliateId, userId, event, url, data, addedOn)
1845 vikas 705
        finally:
706
            UserDataAccessors.close_session()
707
 
708
    def getTrackLogById(self, id):
709
        """
710
        Parameter
711
         - id
712
        """
713
        try:
714
            return to_t_track_log(get_track_log_by_id(id))
715
        finally:
716
            UserDataAccessors.close_session()
717
 
3293 vikas 718
    def getTrackLogsByAffiliate(self, affiliateId, startDate, endDate):
1845 vikas 719
        """
720
        Parameter
1996 vikas 721
         - affiliate_id
1845 vikas 722
        """
723
        try:
3293 vikas 724
            return [to_t_track_log(track_log) for track_log in get_track_logs_by_affiliate(affiliateId, startDate, endDate)]
1845 vikas 725
        finally:
726
            UserDataAccessors.close_session()
727
 
728
    def getTrackLogsByUser(self, user_id):
729
        """
730
        Parameter
731
         - user_id
732
        """
733
        try:
734
            return [to_t_track_log(track_log) for track_log in get_track_logs_by_user(user_id)]
735
        finally:
736
            UserDataAccessors.close_session()
737
 
1996 vikas 738
    def getTrackLogs(self, affiliateId, userId, event, url):
1845 vikas 739
        """
740
        Parameter
1996 vikas 741
         - affiliateId
742
         - userId
743
         - event
744
         - url
1845 vikas 745
        """
746
        try:
1996 vikas 747
            return [to_t_track_log(track_log) for track_log in get_track_logs(affiliateId, userId, event, url)]
1845 vikas 748
        finally:
749
            UserDataAccessors.close_session()
750
 
1596 ankur.sing 751
    def getUserCount(self, userType):
752
        """
753
        Returns number of registered users.
1612 ankur.sing 754
        If userType = null, then it returns count of all users, including anonymous
755
        If userType = UserType.ANONYMOUS, then it returns count of anonymous users only
756
        If userType = UserType.USER, then it returns count of non-anonymous users only
1596 ankur.sing 757
 
758
        Parameters:
1612 ankur.sing 759
         - userType
1596 ankur.sing 760
        """
1673 ankur.sing 761
        try:
762
            return UserDataAccessors.get_user_count(userType)
763
        finally:
764
            UserDataAccessors.close_session()
765
 
1891 ankur.sing 766
    def getAllUsers(self, userType, startDate, endDate):
1673 ankur.sing 767
        """
768
        Returns list of users of type userType. If userType is null, then returns all the users.
769
 
770
        Parameters:
771
         - userType
772
        """
773
        try:
1891 ankur.sing 774
            users = UserDataAccessors.get_users(userType, startDate, endDate)
1673 ankur.sing 775
            t_users = list()
776
            for user in users:
777
                t_users.append(to_t_user(user))
778
            return t_users
779
        finally:
780
            UserDataAccessors.close_session()
1583 varun.gupt 781
 
2717 varun.gupt 782
    def putUserNote(self, userId, entityId, slide, note):
2641 varun.gupt 783
        """
784
        Saves user's note for a particular slide of an entity
785
 
786
        Parameters:
787
        - userId
788
        - entityId
2717 varun.gupt 789
        - slide
2641 varun.gupt 790
        - note
791
        """
792
        try:
2717 varun.gupt 793
            put_user_note(userId, entityId, slide, note)
2641 varun.gupt 794
        finally:
795
            UserDataAccessors.close_session()
796
 
797
    def getUserNotes(self, userId, entityId):
798
        """
799
        Retrieves user's notes associated with an entity
800
 
801
        Parameters:
802
        - userId
803
        - entityId
804
        """
805
        try:
806
            return [to_t_user_note(user_note) for user_note in get_user_notes(userId, entityId)]
807
        finally:
808
            UserDataAccessors.close_session()
809
 
1596 ankur.sing 810
 
2981 rajveer 811
    def getMyResearchItems(self, userId):
130 ashish 812
        """
813
        Parameters:
2981 rajveer 814
         - userId
130 ashish 815
        """
766 rajveer 816
        try:
2981 rajveer 817
            return get_my_research_items(userId)
766 rajveer 818
        finally:
2981 rajveer 819
            UserDataAccessors.close_session()
820
 
821
    def getBrowseHistoryItems(self, userId):
130 ashish 822
        """
823
        Parameters:
557 chandransh 824
         - userId
130 ashish 825
        """
766 rajveer 826
        try:
2981 rajveer 827
            return get_browse_history_items(userId)
766 rajveer 828
        finally:
2981 rajveer 829
            UserDataAccessors.close_session()
830
 
3386 varun.gupt 831
    def getCartsWithCouponCount(self, couponCode):
832
        '''
833
        Parameters:
834
         - couponCode
835
        '''
836
        try:
837
            return get_carts_with_coupon_count(couponCode)
838
        finally:
839
            CartDataAccessors.close_session()
3499 mandeep.dh 840
 
841
    def increaseTrustLevel(self, userId, trustLevelDelta):
842
        """
843
        Parameters:
844
         - userId
845
         - trustLevelDelta
846
        """
847
        try:
848
            return increase_trust_level(userId, trustLevelDelta)
849
        finally:
850
            UserDataAccessors.close_session()
3554 varun.gupt 851
 
852
    def deleteDiscountsFromCart(self, cartId):
853
        '''
854
        Parameters:
855
         - cartId
856
        '''
857
        try:
858
            return delete_discounts_from_cart(cart_id = cartId)
859
        finally:
860
            CartDataAccessors.close_session()
861
 
862
    def saveDiscounts(self, discounts):
863
        '''
864
        Parameters:
865
         - discounts
866
        '''
867
        try:
868
            return save_discounts(discounts)
869
        finally:
870
            CartDataAccessors.close_session()
3499 mandeep.dh 871
 
2981 rajveer 872
    def closeSession(self, ):
873
        CartDataAccessors.close_session()
874
        UserDataAccessors.close_session()
3376 rajveer 875
 
876
    def isAlive(self, ):
877
        """
878
        For checking weather service is active alive or not. It also checks connectivity with database
879
        """
880
        try:
881
            return is_alive()
882
        finally:
883
            UserDataAccessors.close_session()
772 rajveer 884