Subversion Repositories SmartDukaan

Rev

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