Subversion Repositories SmartDukaan

Rev

Rev 4211 | Rev 4323 | 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()
4321 mandeep.dh 455
            UserDataAccessors.close_session()
1466 ankur.sing 456
 
3557 rajveer 457
    def validateCart(self, cartId, sourceId):
130 ashish 458
        """
1466 ankur.sing 459
        Validates that:
460
        1. The checkout timestamp is greater than the updatedOn timestamp.
461
        2. All of the lines in the cart are active items.
462
        3. The estimate for any of the lines in cart doesn't change.
1976 varun.gupt 463
        4. If a Coupon Code is attached, it gets applied and discounted price is computed
464
        If first three are true, returns empty string; else returns appropriate message.
1466 ankur.sing 465
 
130 ashish 466
        Parameters:
557 chandransh 467
         - cartId
130 ashish 468
        """
766 rajveer 469
        try:
3557 rajveer 470
            return validate_cart(cartId, sourceId)
766 rajveer 471
        finally:
472
            CartDataAccessors.close_session()
473
 
557 chandransh 474
    def mergeCart(self, fromCartId, toCartId):
513 rajveer 475
        """
476
        Parameters:
557 chandransh 477
         - fromCartId
478
         - toCartId
513 rajveer 479
        """
766 rajveer 480
        try:
481
            merge_cart(fromCartId, toCartId)
482
        finally:
483
            CartDataAccessors.close_session()
484
 
691 chandransh 485
    def checkOut(self, cartId):
486
        """
487
        Sets the checkedOutOn timestamp of the cart. Raises an exception if the specified cart can't be found.
488
 
489
        Parameters:
490
         - cartId
491
        """
766 rajveer 492
        try:
493
            return check_out(cartId)
494
        finally:
495
            CartDataAccessors.close_session()
496
 
691 chandransh 497
    def resetCart(self, cartId, items):
498
        """
499
        The second parameter is a map of item ids and their quantities which have been successfully processed.
500
        This methods removes the specified quantiry of the specified item from the cart.
501
 
502
        Parameters:
503
         - cartId
504
         - items
505
        """
766 rajveer 506
        try:
507
            return reset_cart(cartId, items)
508
        finally:
509
            CartDataAccessors.close_session()
772 rajveer 510
 
511
    #Widget related methods
512
    def updateMyResearch(self, userId, itemId):
513
        """
514
        Parameters:
515
         - user_id
516
         - item_id
517
        """
518
        try:
519
            return update_my_research(userId, itemId)
520
        finally:
2981 rajveer 521
            UserDataAccessors.close_session()
772 rajveer 522
 
523
    def deleteItemFromMyResearch(self, userId, itemId):
524
        """
525
        Parameters:
526
         - user_id
527
         - item_id
528
        """
529
        try:
530
            return delete_item_from_my_research(userId, itemId)
531
        finally:
2981 rajveer 532
            UserDataAccessors.close_session()
766 rajveer 533
 
772 rajveer 534
    def updateBrowseHistory(self, userId, itemId):
535
        """
536
        Parameters: 
537
        - user_id
538
        - item_id
539
        """
540
        try:
541
            update_browse_history(userId, itemId)
542
        finally:
2981 rajveer 543
            UserDataAccessors.close_session()
772 rajveer 544
 
545
    def mergeBrowseHistory(self, fromUserId, toUserId):
546
        """
547
        Parameters:
548
         - user_id
549
        """
2981 rajveer 550
        pass
772 rajveer 551
 
1273 varun.gupt 552
    def saveUserCommunication(self, userId, email, communicationType, orderId, awb, product, subject, message):
553
        """
554
        Parameters:
555
         - userId
556
         - email
557
         - communicationType
558
         - orderId
559
         - awb
560
         - product
561
         - subject
562
         - message
563
        """
564
        try:
565
            return create_user_communication(userId, email, communicationType, orderId, awb, product, subject, message)
566
        finally:
1605 varun.gupt 567
            UserDataAccessors.close_session()
1273 varun.gupt 568
 
1583 varun.gupt 569
    def getUserCommunicationById(self, id):
570
        """
571
        Parameters:
572
         - id
573
        """
574
        try:
575
            return to_t_user_communication(get_user_communication_by_id(id))
576
        finally:
1605 varun.gupt 577
            UserDataAccessors.close_session()
1583 varun.gupt 578
 
579
    def getUserCommunicationByUser(self, userId):
580
        """
581
        Parameters:
582
         - userId
583
        """
584
        try:
585
            return [to_t_user_communication(user_communication) for user_communication in get_user_communication_by_user(userId)]
586
        finally:
1605 varun.gupt 587
            UserDataAccessors.close_session()
1583 varun.gupt 588
 
589
    def getAllUserCommunications(self):
590
        try:
591
            return [to_t_user_communication(user_communication) for user_communication in get_all_user_communications()]
592
        finally:
1605 varun.gupt 593
            UserDataAccessors.close_session()
1596 ankur.sing 594
 
1859 vikas 595
    def createMasterAffiliate(self, name, addedOn):
1845 vikas 596
        """
597
        Parameters
598
         - name
1859 vikas 599
         - addedOn
1845 vikas 600
        """
601
        try:
1859 vikas 602
            return to_t_master_affiliate(create_master_affiliate(name, addedOn))
1845 vikas 603
        finally:
604
            UserDataAccessors.close_session()
605
 
1899 vikas 606
    def getAllMasterAffiliates(self):
607
        try:
608
            return [to_t_master_affiliate(masterAffiliate) for masterAffiliate in get_all_master_affiliates()]
609
        finally:
610
            UserDataAccessors.close_session()
611
 
1845 vikas 612
    def getMasterAffiliateById(self, id):
613
        """
614
        Parameters
615
         - id
616
        """
617
        try:
618
            return to_t_master_affiliate(get_master_affiliate_by_id(id))
619
        finally:
620
            UserDataAccessors.close_session()
621
 
622
    def getMasterAffiliateByName(self, name):
623
        """
624
        Parameters
625
         - id
626
        """
627
        try:
628
            return to_t_master_affiliate(get_master_affiliate_by_name(name))
629
        finally:
630
            UserDataAccessors.close_session()
631
 
1859 vikas 632
    def createAffiliate(self, name, url, masterAffiliateId, addedOn):
1845 vikas 633
        """
634
        Parameters
635
         - name
636
         - url
1859 vikas 637
         - masterAffiliateId
638
         - addedOn
1845 vikas 639
        """
640
        try:
1859 vikas 641
            return to_t_affiliate(create_affiliate(name, url, masterAffiliateId, addedOn))
1845 vikas 642
        finally:
643
            UserDataAccessors.close_session()
644
 
645
    def getAffiliateById(self, id):
646
        """
647
        Parameters
648
         - id
649
        """
650
        try:
651
            return to_t_affiliate(get_affiliate_by_id(id))
652
        finally:
653
            UserDataAccessors.close_session()
654
 
655
    def getAffiliateByName(self, name):
656
        """
657
        Parameters
658
         - name
659
        """
660
        try:
661
            return to_t_affiliate(get_affiliate_by_name(name))
662
        finally:
663
            UserDataAccessors.close_session()
664
 
1996 vikas 665
    def getAffiliatesByMasterAffiliate(self, masterAffiliateId):
1845 vikas 666
        """
667
        Parameters
668
         - master_id
669
        """
670
        try:
1996 vikas 671
            return [to_t_affiliate(affiliate) for affiliate in get_affiliates_by_master_affiliate(masterAffiliateId)]
1845 vikas 672
        finally:
673
            UserDataAccessors.close_session()
674
 
1996 vikas 675
    def getTrackerById(self, trackerId):
1845 vikas 676
        """
677
        Parameters
1996 vikas 678
         - trackerId
1845 vikas 679
        """
680
        try:
1996 vikas 681
            return to_t_tracker(get_tracker_by_id(trackerId))
1845 vikas 682
        finally:
683
            UserDataAccessors.close_session()
1996 vikas 684
 
685
    def addTrackLog(self, affiliateId, userId, event, url, data, addedOn):
1845 vikas 686
        """
1996 vikas 687
        Parameter
1845 vikas 688
         - affiliateId
689
         - userId
690
         - event
691
         - url
692
         - data
1859 vikas 693
         - addedOn
1845 vikas 694
        """
695
        try:
1996 vikas 696
            return add_track_log(affiliateId, userId, event, url, data, addedOn)
1845 vikas 697
        finally:
698
            UserDataAccessors.close_session()
699
 
700
    def getTrackLogById(self, id):
701
        """
702
        Parameter
703
         - id
704
        """
705
        try:
706
            return to_t_track_log(get_track_log_by_id(id))
707
        finally:
708
            UserDataAccessors.close_session()
709
 
3293 vikas 710
    def getTrackLogsByAffiliate(self, affiliateId, startDate, endDate):
1845 vikas 711
        """
712
        Parameter
1996 vikas 713
         - affiliate_id
1845 vikas 714
        """
715
        try:
3293 vikas 716
            return [to_t_track_log(track_log) for track_log in get_track_logs_by_affiliate(affiliateId, startDate, endDate)]
1845 vikas 717
        finally:
718
            UserDataAccessors.close_session()
719
 
720
    def getTrackLogsByUser(self, user_id):
721
        """
722
        Parameter
723
         - user_id
724
        """
725
        try:
726
            return [to_t_track_log(track_log) for track_log in get_track_logs_by_user(user_id)]
727
        finally:
728
            UserDataAccessors.close_session()
729
 
1996 vikas 730
    def getTrackLogs(self, affiliateId, userId, event, url):
1845 vikas 731
        """
732
        Parameter
1996 vikas 733
         - affiliateId
734
         - userId
735
         - event
736
         - url
1845 vikas 737
        """
738
        try:
1996 vikas 739
            return [to_t_track_log(track_log) for track_log in get_track_logs(affiliateId, userId, event, url)]
1845 vikas 740
        finally:
741
            UserDataAccessors.close_session()
742
 
1596 ankur.sing 743
    def getUserCount(self, userType):
744
        """
745
        Returns number of registered users.
1612 ankur.sing 746
        If userType = null, then it returns count of all users, including anonymous
747
        If userType = UserType.ANONYMOUS, then it returns count of anonymous users only
748
        If userType = UserType.USER, then it returns count of non-anonymous users only
1596 ankur.sing 749
 
750
        Parameters:
1612 ankur.sing 751
         - userType
1596 ankur.sing 752
        """
1673 ankur.sing 753
        try:
754
            return UserDataAccessors.get_user_count(userType)
755
        finally:
756
            UserDataAccessors.close_session()
757
 
1891 ankur.sing 758
    def getAllUsers(self, userType, startDate, endDate):
1673 ankur.sing 759
        """
760
        Returns list of users of type userType. If userType is null, then returns all the users.
761
 
762
        Parameters:
763
         - userType
764
        """
765
        try:
1891 ankur.sing 766
            users = UserDataAccessors.get_users(userType, startDate, endDate)
1673 ankur.sing 767
            t_users = list()
768
            for user in users:
769
                t_users.append(to_t_user(user))
770
            return t_users
771
        finally:
772
            UserDataAccessors.close_session()
1583 varun.gupt 773
 
2717 varun.gupt 774
    def putUserNote(self, userId, entityId, slide, note):
2641 varun.gupt 775
        """
776
        Saves user's note for a particular slide of an entity
777
 
778
        Parameters:
779
        - userId
780
        - entityId
2717 varun.gupt 781
        - slide
2641 varun.gupt 782
        - note
783
        """
784
        try:
2717 varun.gupt 785
            put_user_note(userId, entityId, slide, note)
2641 varun.gupt 786
        finally:
787
            UserDataAccessors.close_session()
788
 
789
    def getUserNotes(self, userId, entityId):
790
        """
791
        Retrieves user's notes associated with an entity
792
 
793
        Parameters:
794
        - userId
795
        - entityId
796
        """
797
        try:
798
            return [to_t_user_note(user_note) for user_note in get_user_notes(userId, entityId)]
799
        finally:
800
            UserDataAccessors.close_session()
801
 
1596 ankur.sing 802
 
2981 rajveer 803
    def getMyResearchItems(self, userId):
130 ashish 804
        """
805
        Parameters:
2981 rajveer 806
         - userId
130 ashish 807
        """
766 rajveer 808
        try:
2981 rajveer 809
            return get_my_research_items(userId)
766 rajveer 810
        finally:
2981 rajveer 811
            UserDataAccessors.close_session()
812
 
813
    def getBrowseHistoryItems(self, userId):
130 ashish 814
        """
815
        Parameters:
557 chandransh 816
         - userId
130 ashish 817
        """
766 rajveer 818
        try:
2981 rajveer 819
            return get_browse_history_items(userId)
766 rajveer 820
        finally:
2981 rajveer 821
            UserDataAccessors.close_session()
822
 
3386 varun.gupt 823
    def getCartsWithCouponCount(self, couponCode):
824
        '''
825
        Parameters:
826
         - couponCode
827
        '''
828
        try:
829
            return get_carts_with_coupon_count(couponCode)
830
        finally:
831
            CartDataAccessors.close_session()
3499 mandeep.dh 832
 
833
    def increaseTrustLevel(self, userId, trustLevelDelta):
834
        """
835
        Parameters:
836
         - userId
837
         - trustLevelDelta
838
        """
839
        try:
840
            return increase_trust_level(userId, trustLevelDelta)
841
        finally:
842
            UserDataAccessors.close_session()
3554 varun.gupt 843
 
844
    def deleteDiscountsFromCart(self, cartId):
845
        '''
846
        Parameters:
847
         - cartId
848
        '''
849
        try:
850
            return delete_discounts_from_cart(cart_id = cartId)
851
        finally:
852
            CartDataAccessors.close_session()
853
 
854
    def saveDiscounts(self, discounts):
855
        '''
856
        Parameters:
857
         - discounts
858
        '''
859
        try:
860
            return save_discounts(discounts)
861
        finally:
862
            CartDataAccessors.close_session()
3499 mandeep.dh 863
 
2981 rajveer 864
    def closeSession(self, ):
865
        CartDataAccessors.close_session()
866
        UserDataAccessors.close_session()
3376 rajveer 867
 
868
    def isAlive(self, ):
869
        """
870
        For checking weather service is active alive or not. It also checks connectivity with database
871
        """
872
        try:
873
            return is_alive()
874
        finally:
875
            UserDataAccessors.close_session()
772 rajveer 876