Subversion Repositories SmartDukaan

Rev

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

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