Subversion Repositories SmartDukaan

Rev

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