Subversion Repositories SmartDukaan

Rev

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