Subversion Repositories SmartDukaan

Rev

Rev 766 | Rev 785 | 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,\
594 rajveer 10
    create_anonymous_user, forgot_password, get_all_addresses_for_user, get_default_addredd_id
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:
221
            return get_default_addredd_id(userId)
222
        finally:
223
            UserDataAccessors.close_session()
224
 
557 chandransh 225
    def createCart(self, userId):
226
        """
227
        Parameters:
228
        - userId
229
        """
766 rajveer 230
        try:
231
            return create_cart(userId).id
232
        finally:
233
            UserDataAccessors.close_session()
234
 
557 chandransh 235
    def getCurrentCart(self, userId):
236
        """
237
        Parameters:
130 ashish 238
         - userId
239
        """
766 rajveer 240
        try:
241
            cart = get_cart(userId)
242
            if cart:
243
                return to_t_cart(cart)
244
            else:
245
                raise ShoppingCartException(101, "not cart attached to this user")
246
        finally:
247
            CartDataAccessors.close_session()
248
 
557 chandransh 249
    def getCart(self, cartId):
250
        """
251
        Parameters:
252
         - cartId
253
        """
766 rajveer 254
        try:
255
            cart = get_cart_by_id(cartId)
256
            if cart:
257
                return to_t_cart(cart)
258
            else:
259
                raise ShoppingCartException(101, "not cart attached to this id")
260
        finally:
261
            CartDataAccessors.close_session()
262
 
557 chandransh 263
    def getCartsForUser(self, userId, status):
130 ashish 264
        """
265
        Parameters:
266
         - userId
557 chandransh 267
         - status
130 ashish 268
        """
766 rajveer 269
        try:
270
            if not userId:
271
                raise ShoppingCartException(101, "user_id is not provided")
272
 
273
            carts = get_cart_by_user_id_and_status(userId, status)
274
            t_carts = []
275
            if carts:
276
                for cart in carts:
277
                    t_carts.append(to_t_cart(cart))
278
            return t_carts
279
        finally:
280
            CartDataAccessors.close_session()
281
 
557 chandransh 282
    def getCartsByStatus(self, status):
130 ashish 283
        """
284
        Parameters:
557 chandransh 285
         - status
130 ashish 286
        """
766 rajveer 287
        try:
288
            carts = get_carts_by_status(status)
289
            t_carts = []
290
            if carts:
291
                for cart in carts:
292
                    t_carts.append(to_t_cart(cart))
293
            return t_carts
294
        finally:
295
            CartDataAccessors.close_session()
296
 
557 chandransh 297
    def getCartsByTime(self, from_time, to_time, status):
130 ashish 298
        """
299
        Parameters:
557 chandransh 300
         - from_time
301
         - to_time
302
         - status
130 ashish 303
        """
766 rajveer 304
        try:
305
            carts = get_carts_between(from_time, to_time, status)
306
            t_carts = []
307
            if carts:
308
                for cart in carts:
309
                    t_carts.append(to_t_cart(cart))
310
            return t_carts
311
        finally:
312
            CartDataAccessors.close_session()
313
 
557 chandransh 314
    def changeCartStatus(self, cartId, status):
130 ashish 315
        """
316
        Parameters:
557 chandransh 317
         - cartId
318
         - status
130 ashish 319
        """
766 rajveer 320
        try:
321
            change_cart_status(cartId, status)
322
        finally:
323
            CartDataAccessors.close_session()
324
 
557 chandransh 325
    def addItemToCart(self, cartId, itemId, quantity):
130 ashish 326
        """
327
        Parameters:
557 chandransh 328
         - cartId
329
         - itemId
330
         - quantity
130 ashish 331
        """
766 rajveer 332
        try:
333
            add_item_to_cart(cartId, itemId, quantity)
334
        finally:
335
            CartDataAccessors.close_session()
336
 
557 chandransh 337
    def deleteItemFromCart(self, cartId, itemId):
130 ashish 338
        """
339
        Parameters:
557 chandransh 340
         - cartId
341
         - itemId
130 ashish 342
        """
766 rajveer 343
        try:
344
            delete_item_from_cart(cartId, itemId)
345
        finally:
346
            CartDataAccessors.close_session()
347
 
557 chandransh 348
    def changeQuantity(self, cartId, itemId, quantity):
349
        """
350
        Parameters:
351
         - cartId
352
         - itemId
353
         - quantity
354
        """
766 rajveer 355
        try:
356
            add_item_to_cart(cartId, itemId, quantity)
357
        finally:
358
            CartDataAccessors.close_session()
359
 
557 chandransh 360
    def changeItemStatus(self, cartId, itemId, status):
130 ashish 361
        """
362
        Parameters:
557 chandransh 363
         - cartId
364
         - itemId
365
        """
766 rajveer 366
        try:
367
            return change_item_status(cartId, itemId, status)
368
        finally:
369
            CartDataAccessors.close_session()
370
 
557 chandransh 371
    def addAddressToCart(self, cartId, addressId):
372
        """
373
        Parameters:
374
         - cartId
130 ashish 375
         - addressId
376
        """
766 rajveer 377
        try:
378
            return add_address_to_cart(cartId, addressId)
379
        finally:
380
            CartDataAccessors.close_session()
381
 
690 chandransh 382
    def createOrders(self, cartId):
130 ashish 383
        """
384
        Parameters:
557 chandransh 385
         - cartId
130 ashish 386
        """
766 rajveer 387
        try:
388
            return commit_cart(cartId)
389
        finally:
390
            CartDataAccessors.close_session()
391
 
557 chandransh 392
    def validateCart(self, cartId):
130 ashish 393
        """
394
        Parameters:
557 chandransh 395
         - cartId
130 ashish 396
        """
766 rajveer 397
        try:
398
            return validate_cart(cartId)
399
        finally:
400
            CartDataAccessors.close_session()
401
 
557 chandransh 402
    def mergeCart(self, fromCartId, toCartId):
513 rajveer 403
        """
404
        Parameters:
557 chandransh 405
         - fromCartId
406
         - toCartId
513 rajveer 407
        """
766 rajveer 408
        try:
409
            merge_cart(fromCartId, toCartId)
410
        finally:
411
            CartDataAccessors.close_session()
412
 
691 chandransh 413
    def checkOut(self, cartId):
414
        """
415
        Sets the checkedOutOn timestamp of the cart. Raises an exception if the specified cart can't be found.
416
 
417
        Parameters:
418
         - cartId
419
        """
766 rajveer 420
        try:
421
            return check_out(cartId)
422
        finally:
423
            CartDataAccessors.close_session()
424
 
691 chandransh 425
    def resetCart(self, cartId, items):
426
        """
427
        The second parameter is a map of item ids and their quantities which have been successfully processed.
428
        This methods removes the specified quantiry of the specified item from the cart.
429
 
430
        Parameters:
431
         - cartId
432
         - items
433
        """
766 rajveer 434
        try:
435
            return reset_cart(cartId, items)
436
        finally:
437
            CartDataAccessors.close_session()
772 rajveer 438
 
439
    #Widget related methods
440
    def getMyResearch(self, userId):
441
        """
442
        Parameters:
443
         - user_id
444
        """
445
        try:
446
            return to_t_widget(get_my_research(userId))
447
        finally:
448
            WidgetDataAccessor.close_session()
449
 
450
    def updateMyResearch(self, userId, itemId):
451
        """
452
        Parameters:
453
         - user_id
454
         - item_id
455
        """
456
        try:
457
            return update_my_research(userId, itemId)
458
        finally:
459
            WidgetDataAccessor.close_session()
460
 
461
    def deleteItemFromMyResearch(self, userId, itemId):
462
        """
463
        Parameters:
464
         - user_id
465
         - item_id
466
        """
467
        try:
468
            return delete_item_from_my_research(userId, itemId)
469
        finally:
470
            WidgetDataAccessor.close_session()
766 rajveer 471
 
772 rajveer 472
    def updateBrowseHistory(self, userId, itemId):
473
        """
474
        Parameters: 
475
        - user_id
476
        - item_id
477
        """
478
        try:
479
            update_browse_history(userId, itemId)
480
        finally:
481
            WidgetDataAccessor.close_session()
482
 
483
    def getBrowseHistory(self, userId):
484
        """
485
        Parameters:
486
         - user_id
487
        """
488
        try:
489
            return to_t_widget(get_browse_history(userId))
490
        finally:
491
            WidgetDataAccessor.close_session()
492
 
493
    def mergeBrowseHistory(self, fromUserId, toUserId):
494
        """
495
        Parameters:
496
         - user_id
497
        """
498
        try:
499
            return merge_browse_history(fromUserId, toUserId)
500
        finally:
501
            WidgetDataAccessor.close_session()
502
 
503
    def closeSession(self, ):
504
        CartDataAccessors.close_session()
505
        UserDataAccessors.close_session()
506
        WidgetDataAccessor.close_session()
507
 
508
    '''        
557 chandransh 509
    def addWidget(self, widget):
130 ashish 510
        """
511
        Parameters:
557 chandransh 512
         - widget
130 ashish 513
        """
766 rajveer 514
        try:
515
            add_widget(widget)
516
        finally:
517
            WidgetDataAccessor.close_session()
130 ashish 518
 
557 chandransh 519
    def addItemToWidget(self, widget_id, items):
130 ashish 520
        """
521
        Parameters:
557 chandransh 522
         - widget_id
523
         - items
130 ashish 524
        """
766 rajveer 525
        try:
526
            add_items_to_widget(widget_id, items)
527
        finally:
528
            WidgetDataAccessor.close_session()
529
 
557 chandransh 530
    def updateWidget(self, widgetId, enable):
130 ashish 531
        """
532
        Parameters:
557 chandransh 533
         - widgetId
534
         - enable
130 ashish 535
        """
766 rajveer 536
        try:
537
            update_widget(widgetId, enable)
538
        finally:
539
            WidgetDataAccessor.close_session()
540
 
557 chandransh 541
    def updateWidgetItem(self, widgetId, enable):
130 ashish 542
        """
543
        Parameters:
557 chandransh 544
         - widgetId
545
         - enable
130 ashish 546
        """
766 rajveer 547
        try:
548
            update_widget(widgetId, enable)
549
        finally:
550
            WidgetDataAccessor.close_session()
551
 
557 chandransh 552
    def deleteItemFromWidget(self, widget_id, item_id):
553
        """
554
        Parameters:
555
         - widget_id
556
         - item_id
557
        """
766 rajveer 558
        try:
559
            return delete_item_from_widget(widget_id, item_id)
560
        finally:
561
            WidgetDataAccessor.close_session()
562
 
557 chandransh 563
    def getWidget(self, type, userId, onlyEnabled):
130 ashish 564
        """
565
        Parameters:
557 chandransh 566
         - type
567
         - userId
568
         - onlyEnabled
130 ashish 569
        """
766 rajveer 570
        try:
571
            widget = get_widget_by_type(type, userId, onlyEnabled)
572
            return to_t_widget(widget)
573
        finally:
574
            WidgetDataAccessor.close_session()
575
 
557 chandransh 576
    def updateRatings(self, item_id, type, rating, user_id):
130 ashish 577
        """
578
        Parameters:
557 chandransh 579
        - item_id
580
        - type
581
        - rating
582
        - user_id
130 ashish 583
        """
766 rajveer 584
        try:
585
            update_ratings(user_id, item_id, rating, type)
586
        finally:
587
            WidgetDataAccessor.close_session()
557 chandransh 588
 
589
    def getRatings(self, item_id, user_id):
590
        """
591
        Parameters:
592
        - item_id
593
        - user_id
594
        """
766 rajveer 595
        try:
596
            all_ratings, user_ratings = get_ratings(user_id, item_id)
597
            return to_t_ratings(user_ratings, all_ratings, item_id, user_id)
598
        finally:
599
            WidgetDataAccessor.close_session()
600
 
772 rajveer 601
    '''
602