Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
122 ashish 1
'''
2
Created on 27-Apr-2010
3
 
4
@author: ashish
5
'''
5110 mandeep.dh 6
from shop2020.config.client.ConfigClient import ConfigClient
6511 kshitij.so 7
from shop2020.model.v1.catalog.impl.Convertors import to_t_item, to_t_category, \
8
    to_t_source_item_pricing, to_t_product_notification_request, \
6848 kshitij.so 9
    to_t_product_notification_request_count, to_t_voucher_item_mapping, to_t_insurer, \
7438 amit.gupta 10
    to_t_banner, to_t_banner_map, to_t_product_notification_request_count, \
11
    to_t_voucher_item_mapping, to_t_insurer, to_t_Amazonlisted
6511 kshitij.so 12
from shop2020.model.v1.catalog.impl.DataAcessors import add_item, retire_item, \
13
    change_item_status, get_item, get_all_items, get_all_items_by_status, \
5944 mandeep.dh 14
    update_item, start_item_on, close_session, retire_item_on, \
5110 mandeep.dh 15
    get_items_by_catalog_id, get_best_deals, get_best_deals_catalog_ids, \
16
    get_best_deals_count, get_best_sellers, get_latest_arrivals, \
17
    get_latest_arrivals_catalog_ids, get_latest_arrivals_count, is_active, \
18
    get_best_sellers_catalog_ids, get_best_sellers_count, put_category_object, \
5944 mandeep.dh 19
    get_category_object, mark_item_as_content_complete, generate_new_entity_id, \
20
    get_category, get_all_categories, add_category, get_item_status_description, \
6511 kshitij.so 21
    check_similar_item, change_risky_flag, get_items_for_mastersheet, \
22
    get_risky_items, get_similar_items_catalog_ids, add_product_notification, \
23
    send_product_notifications, get_all_brands_by_category, is_alive, \
24
    get_item_pricing_by_source, add_source_item_pricing, get_all_sources, \
25
    get_item_for_source, get_all_source_pricing, get_item_count_by_status, \
26
    search_items, get_search_result_count, get_product_notifications, \
27
    get_product_notification_request_count, get_all_similar_items_catalog_ids, \
28
    add_similar_item_catalog_id, delete_similar_item_catalog_id, \
29
    add_authorization_log_for_item, get_thrift_item_list, get_all_brands, \
30
    get_coming_soon, get_coming_soon_catalog_ids, get_coming_soon_count, initialize, \
7438 amit.gupta 31
    add_update_voucher_for_item, delete_voucher_for_item, get_voucher_amount, \
32
    get_all_vouchers_for_item, is_valid_catalog_id, check_risky_item, \
33
    get_vat_percentage_for_item, get_vat_amount_for_item, add_tag, get_all_tags, \
34
    get_all_entities_by_tag_name, delete_tag, delete_entity_tag, \
35
    get_all_ignored_inventoryupdate_items_list, add_banner, get_all_banners, \
36
    delete_banner, get_banner_details, get_active_banners, add_banner_map, \
37
    delete_banner_map, get_banner_map_details, get_insurance_amount, get_insurer, \
38
    get_all_alive_items, get_all_insurers, get_all_entity_tags, \
39
    update_insurance_declared_amount, get_freebie_for_item, \
40
    add_or_update_freebie_for_item, get_all_amazon_listed_items, get_store_pricing, \
41
    update_store_pricing, get_amazon_item_details, update_amazon_item_details, \
42
    add_amazon_item, get_asin_items, get_all_fba_listed_items, \
43
    get_all_nonfba_listed_items, add_or_update_brand_info, get_brand_info, \
7897 amar.kumar 44
    get_items_status, update_item_inventory, update_timestamp_for_amazon_feeds, \
8168 kshitij.so 45
    get_all_parent_categories,add_page_view_event,add_cart_event ,update_amazon_attributes_in_bulk
5944 mandeep.dh 46
from shop2020.thriftpy.model.v1.catalog.ttypes import status
47
from shop2020.utils.Utils import log_entry, to_py_date
5110 mandeep.dh 48
import datetime
122 ashish 49
 
5944 mandeep.dh 50
class CatalogServiceHandler:
122 ashish 51
    '''
52
    classdocs
53
    '''
599 chandransh 54
 
3187 rajveer 55
    def __init__(self, dbname='catalog', db_hostname='localhost'):
122 ashish 56
        '''
57
        Constructor
58
        '''
5295 rajveer 59
        initialize(dbname, db_hostname)
599 chandransh 60
        try:
621 chandransh 61
            config_client = ConfigClient()
62
            self.latest_arrivals_limit = int(config_client.get_property("LATEST_ARRIVALS_LIMIT"));
63
            self.best_sellers_limit = int(config_client.get_property("BEST_SELLERS_LIMIT"))
599 chandransh 64
        except:
621 chandransh 65
            self.latest_arrivals_limit = 50
66
            self.best_sellers_limit = 50
122 ashish 67
 
68
    #DONE
69
    def addItem(self, item):
70
        """
71
        Availability and inventory attributes
72
 
73
        Parameters:
74
         - item
75
        """
76
        log_entry(self, "addItem called")
785 rajveer 77
        try:
78
            return add_item(item)
79
        finally:
80
            close_session()
6511 kshitij.so 81
 
82
 
83
    def addTag(self, displayName, catalogId):
84
        result = False
85
        try:
86
            return add_tag(displayName, catalogId)
87
        except:
88
            result = True
89
        finally:
90
            close_session()
91
            return result
6848 kshitij.so 92
 
93
    def addBanner(self, bannerName, imageName,link, priority, isActive, hasMap):
94
        result = False
95
        try:
96
            return add_banner(bannerName, imageName, link, priority, isActive, hasMap)
97
        except:
98
            result = True
99
        finally:
100
            close_session()
101
            return result
102
 
103
    def getAllBanners(self):
104
        result = []
105
        try:
106
            result = get_all_banners()
107
        except:
108
            result = False
109
        finally:
110
            close_session()
111
            return result
112
 
113
    def deleteBanner(self,name):
114
        result = True
115
        try:
116
            return delete_banner(name)
117
        except:
118
            result = False
119
        finally:
120
            close_session()
121
            return result
122
 
123
    def getBannerDetails(self, name):
124
        print "I am called"
125
        result = None
126
        try:
127
            result = get_banner_details(name)
128
            print 'result is',
129
            print result
130
            if result is not None:
131
                result = to_t_banner(result)
132
        except:
133
            print "Some error"
134
            return None
135
        finally:
136
            print "Finally here"
137
            print result
138
            close_session()
139
            return result
140
 
141
    def getActiveBanners(self):
142
        result =None
143
        banners=[]
144
        try:
145
            print "Handler"
146
            results = get_active_banners()
147
            for result in results:
148
                if result is not None:
149
                    result = to_t_banner(result)
150
                    print "After conversion",
151
                    banners.append(result)
152
 
153
        except:
154
            return None
155
        finally:
156
            print "Banners list",
157
            print banners
158
            close_session()
159
            return banners
160
 
161
    def addBannerMap(self, bannerName, mapLink, coordinates):
162
        result = True
163
        try:
164
            return add_banner_map(bannerName, mapLink, coordinates)
165
        except:
166
            result = False
167
        finally:
168
            close_session()
169
            return result
170
 
171
    def deleteBannerMap(self, name):
172
        result = True
173
        try:
174
            return delete_banner_map(name)
175
        except:
176
            result = False
177
        finally:
178
            close_session()
179
            return result
180
 
181
    def getBannerMapDetails(self,name):
182
        result =None
183
        banners=[]
184
        try:
185
            results = get_banner_map_details(name)
186
            for result in results:
187
                if result is not None:
188
                    result = to_t_banner_map(result)
189
                    banners.append(result)
190
        except:
191
            return None
192
        finally:
193
            close_session()
194
            return banners
195
 
196
 
6511 kshitij.so 197
 
198
    def getAllTags(self):
199
        result = []
200
        try:
201
            result = get_all_tags()
202
        except:
203
            result = True
204
        finally:
205
            close_session()
206
            return result
207
 
208
    def getAllEntitiesByTagName(self,displayName):
209
        result = []
210
        try:
211
            result = get_all_entities_by_tag_name(displayName)
212
        except:
213
            result = True
214
        finally:
215
            close_session()
216
            return result
217
 
218
    def deleteTag(self,displayName):
219
        result = False
220
        try:
221
            return delete_tag(displayName)
222
        except:
223
            result = True
224
        finally:
225
            close_session()
226
            return result
227
 
6518 kshitij.so 228
    def deleteEntityTag(self,displayName,catalogId):
229
        result = False
230
        try:
231
            return delete_entity_tag(displayName,catalogId)
232
        except:
233
            result = True
234
        finally:
235
            close_session()
236
            return result
237
 
635 rajveer 238
    def isActive(self, item_id):
563 chandransh 239
        """
240
        Parameters:
635 rajveer 241
         - item_id
563 chandransh 242
        """
785 rajveer 243
        try:
244
            return is_active(item_id)
245
        finally:
246
            close_session()
7438 amit.gupta 247
 
248
    def getItemsStatus(self, item_ids):
249
        """
250
        Parameters:
251
         - item_id
252
        """
253
        try:
254
            return get_items_status(item_ids)
255
        finally:
256
            close_session()
122 ashish 257
 
2035 rajveer 258
    def getItemStatusDescription(self, itemId):
259
        """
260
        Parameters:
261
         - itemId
262
        """
263
        try:
264
            return get_item_status_description(itemId)
265
        finally:
266
            close_session()
122 ashish 267
 
268
    def retireItem(self, item_id):
269
        """
270
        Parameters:
271
        - item_id
272
        """
273
        log_entry(self, "retire item called")
785 rajveer 274
        try:
275
            return retire_item(item_id)
276
        finally:
277
            close_session()
122 ashish 278
 
279
    def startItemOn(self, item_id, timestamp):
280
        """
281
        Parameters:
282
         - item_id
283
         - timestamp
284
        """
785 rajveer 285
        try:
286
            start_item_on(item_id, timestamp)
287
        finally:
288
            close_session()
122 ashish 289
 
290
    def retireItemOn(self, item_id, timestamp):
291
        """
292
        Parameters:
293
         - item_id
294
         - timestamp
295
        """
785 rajveer 296
        try:
297
            retire_item_on(item_id, timestamp)
298
        finally:
299
            close_session()
122 ashish 300
 
301
    def changeItemStatus(self, item_id, timestamp, newstatus):
302
        """
303
        Parameters:
304
         - item_id
305
         - timestamp
306
         - newstatus
307
        """
308
        log_entry(self, "change item status called")
785 rajveer 309
        try:
310
            return change_item_status(item_id, newstatus)
311
        finally:
312
            close_session()
122 ashish 313
 
785 rajveer 314
 
122 ashish 315
    def getItem(self, item_id):
316
        """
317
        Parameters:
318
         - item_id
319
        """
320
        log_entry(self, "item requested")
785 rajveer 321
        try:
2065 ankur.sing 322
            item = to_t_item( get_item(item_id))
323
            return item
785 rajveer 324
        finally:
325
            close_session()
379 ashish 326
 
635 rajveer 327
    def getItemsByCatalogId(self, catalog_item_id):
379 ashish 328
        """
329
        Parameters:
330
        - catalog_item_id
331
        """
386 ashish 332
        log_entry(self, "item requested")
766 rajveer 333
        try:
4934 amit.gupta 334
            return get_thrift_item_list(get_items_by_catalog_id(catalog_item_id))
766 rajveer 335
        finally:
336
            close_session()
122 ashish 337
 
4934 amit.gupta 338
    def getValidItemsByCatalogId(self, catalog_item_id):
339
        """
340
        Parameters:
341
         - catalog_item_id
342
        """
343
        log_entry(self, "items requested for CatalogItem")
344
        try:
345
            return get_thrift_item_list(filter(is_valid, get_items_by_catalog_id(catalog_item_id)))
346
        finally:
347
            close_session()
348
 
5586 phani.kuma 349
    def isValidCatalogItemId(self, catalog_item_id):
350
        """
351
        Parameters:
352
         - catalog_item_id
353
        """
354
        try:
355
            return is_valid_catalog_id(catalog_item_id)
356
        finally:
357
            close_session()
358
 
122 ashish 359
    def getAllItems(self, isActive):
360
        """
361
        Parameters:
362
         - isActive
363
        """
364
        log_entry(self, "all items requested")
766 rajveer 365
        try:
366
            items = get_all_items(isActive)
367
            ret_items = []
368
            for item in items:
369
                if item:
370
                    ret_items.append(to_t_item(item))
371
            return ret_items
372
        finally:
373
            close_session()
374
 
122 ashish 375
    def getAllItemsByStatus(self, itemStatus):
376
        """
377
        Parameters:
378
         - itemStatus
379
        """
380
        log_entry(self, "all items requested")
766 rajveer 381
        try:
382
            items = get_all_items_by_status(itemStatus)
383
            ret_items = []
384
            for item in items:
385
                if item:
386
                    ret_items.append(to_t_item(item))
387
            return ret_items
388
        finally:
389
            close_session()
6821 amar.kumar 390
 
391
    def getAllAliveItems(self):
392
        """
393
        Parameters:
394
         - itemStatus
395
        """
396
        log_entry(self, "all non phased non deleted items requested")
397
        try:
398
            items = get_all_alive_items()
399
            ret_items = []
400
            for item in items:
401
                if item:
402
                    ret_items.append(to_t_item(item))
403
            return ret_items
404
        finally:
405
            close_session()
406
 
122 ashish 407
 
3348 varun.gupt 408
    def getAllBrandsByCategory(self, categoryId):
409
        """
410
        Parameters:
411
         - categoryId
412
        """
413
        try:
414
            return get_all_brands_by_category(categoryId)
415
        finally:
416
            close_session()
417
 
4957 phani.kuma 418
    def getAllBrands(self):
419
        try:
420
            return get_all_brands()
421
        finally:
422
            close_session()
5944 mandeep.dh 423
 
3849 chandransh 424
    def getAllItemsInRange(self, offset, limit):
425
        """
426
        Gets at most 'limit' items starting at the given offset. Returns an empty list if there are no more items at the given offset.
427
 
428
        Parameters:
429
         - offset
430
         - limit
431
        """
432
        try:
433
            items = get_all_items(False, offset, limit)
434
            return [to_t_item(item) for item in items]
435
        finally:
436
            close_session()
379 ashish 437
 
3849 chandransh 438
    def getAllItemsByStatusInRange(self, itemStatus, offset, limit):
439
        """
440
        Gets at most 'limit' items starting at the given offset in the given status. Returns an empty list if there are no more items at the given offset.
441
 
442
        Parameters:
443
         - itemStatus
444
         - offset
445
         - limit
446
        """
447
        log_entry(self, "all items requested")
448
        try:
449
            items = get_all_items_by_status(itemStatus, offset, limit)
450
            return [to_t_item(item) for item in items]
451
        finally:
452
            close_session()
453
 
454
    def getItemCountByStatus(self, useStatus, itemStatus):
455
        """
456
        Gets a count of all items by status
457
 
458
        Parameters:
459
         - useStatus
460
         - itemStatus
461
        """
462
        try:
463
            return get_item_count_by_status(useStatus, itemStatus)
464
        finally:
465
            close_session()
466
 
2080 rajveer 467
    def markItemAsContentComplete(self, entityId, category, brand, modelName, modelNumber):
468
        """
469
        Parameters:
470
         - entityId
471
         - category
472
         - brand
473
         - modelName
474
         - modelNumber
475
        """
476
        try:
477
            return mark_item_as_content_complete(entityId, category, brand, modelName, modelNumber)
478
        finally:
479
            close_session()
766 rajveer 480
 
122 ashish 481
    def updateItem(self, item):
482
        """
483
        Parameters:
484
         - item
485
        """
486
        log_entry(self, "addItem called")
766 rajveer 487
        try:
488
            return update_item(item)
489
        finally:
490
            close_session()
491
 
626 chandransh 492
    def getBestSellers(self, start_index=0, total_items=None, category=-1):
766 rajveer 493
        try:
494
            if total_items is None:
495
                total_items = self.best_sellers_limit
496
            stop_index = start_index + total_items
497
            return get_best_sellers(start_index, stop_index, category)
498
        finally:
499
            close_session()
500
 
1926 rajveer 501
    def getBestSellersCatalogIds(self, start_index, total_items, brand, category=-1):
548 rajveer 502
        """
503
        Parameters:
504
         - beginIndex
505
         - totalItems
506
        """
766 rajveer 507
        try:
508
            if total_items is None:
509
                total_items = self.best_sellers_limit
510
            stop_index = start_index + total_items
1926 rajveer 511
            return get_best_sellers_catalog_ids(start_index, stop_index, brand, category)
766 rajveer 512
        finally:
513
            close_session()
514
 
591 chandransh 515
    def getBestSellersCount(self, ):
766 rajveer 516
        try:
2093 chandransh 517
            return get_best_sellers_count()
766 rajveer 518
        finally:
519
            close_session()
520
 
591 chandransh 521
    def getBestDeals(self,):
766 rajveer 522
        try:
523
            return get_best_deals()
524
        finally:
525
            close_session()
526
 
1926 rajveer 527
    def getBestDealsCatalogIds(self, start_index, total_items, brand,category=-1):
548 rajveer 528
        """
529
        Parameters:
530
         - beginIndex
531
         - totalItems
532
        """
766 rajveer 533
        try:
534
            stop_index = start_index + total_items
1926 rajveer 535
            return get_best_deals_catalog_ids(start_index, stop_index, brand, category)
766 rajveer 536
        finally:
537
            close_session()
538
 
591 chandransh 539
    def getBestDealsCount(self, ):
766 rajveer 540
        try:
541
            return get_best_deals_count()
542
        finally:
543
            close_session()
544
 
5217 amit.gupta 545
    def getComingSoon(self,):
546
        try:
547
            return get_coming_soon()
548
        finally:
549
            close_session()
550
 
551
    def getComingSoonCatalogIds(self, start_index, total_items, brand,category=-1):
552
        """
553
        Parameters:
554
         - beginIndex
555
         - totalItems
556
        """
557
        try:
558
            stop_index = start_index + total_items
559
            return get_coming_soon_catalog_ids(start_index, stop_index, brand, category)
560
        finally:
561
            close_session()
562
 
563
    def getComingSoonCount(self, ):
564
        try:
565
            return get_coming_soon_count()
566
        finally:
567
            close_session()
568
 
591 chandransh 569
    def getLatestArrivals(self,):
766 rajveer 570
        try:
571
            return get_latest_arrivals(self.latest_arrivals_limit)
572
        finally:
573
            close_session()
2975 chandransh 574
 
575
    def getLatestArrivalsCatalogIds(self, beginIndex, totalItems, brand, categories):
548 rajveer 576
        """
2975 chandransh 577
        Returns the list of catalog ids of latest arrivals in the given categories of the given brand.
578
        To ignore the categories, pass the list as empty. To ignore brand, pass it as null.
579
 
548 rajveer 580
        Parameters:
581
         - beginIndex
582
         - totalItems
2975 chandransh 583
         - brand
584
         - categories
548 rajveer 585
        """
766 rajveer 586
        try:
2975 chandransh 587
            if beginIndex > self.latest_arrivals_limit:
766 rajveer 588
                return []
2975 chandransh 589
            stopIndex = beginIndex + totalItems
590
            if stopIndex > self.latest_arrivals_limit:
591
                stopIndex = self.latest_arrivals_limit
592
            return get_latest_arrivals_catalog_ids(beginIndex, stopIndex, brand, categories)
766 rajveer 593
        finally:
594
            close_session()
595
 
591 chandransh 596
    def getLatestArrivalsCount(self, ):
766 rajveer 597
        try:
598
            return get_latest_arrivals_count(self.latest_arrivals_limit)
599
        finally:
600
            close_session()
591 chandransh 601
 
1155 rajveer 602
    def generateNewEntityID(self, ):
603
        try:
604
            return generate_new_entity_id()
605
        finally:
606
            close_session()
607
 
635 rajveer 608
    def putCategoryObject(self, object):
609
        """
610
        Parameters:
611
         - object
612
        """
766 rajveer 613
        try:
614
            return put_category_object(object)
615
        finally:
616
            close_session()
617
 
635 rajveer 618
    def getCategoryObject(self, ):
766 rajveer 619
        try:
620
            return get_category_object()
621
        finally:
622
            close_session()
1970 rajveer 623
 
624
    def addCategory(self, category):
625
        """
626
        Parameters:
627
         - category
628
        """
629
        try:
630
            return add_category(category)
631
        finally:
632
            close_session()
633
 
634
    def getCategory(self, id):
635
        """
636
        Parameters:
637
         - id
638
        """
639
        try:
640
            return to_t_category(get_category(id))
641
        finally:
642
            close_session()
643
 
644
    def getAllCategories(self, ):
645
        try:
646
            categories = get_all_categories()
647
            return [to_t_category(category) for category in categories]
648
        finally:
649
            close_session()
4432 rajveer 650
 
4423 phani.kuma 651
    def getAllSimilarItems(self, itemId):
652
        """
653
        Returns list of similar items.
654
 
655
        Parameters:
656
         - itemId
657
        """
4432 rajveer 658
        try:
659
            return get_all_similar_items_catalog_ids(itemId)
660
        finally:
661
            close_session()
662
 
4423 phani.kuma 663
    def addSimilarItem(self, itemId, catalogItemId):
664
        """
665
        add similar item.
666
 
667
        Parameters:
668
         - itemId, catalogItemId
669
        """
670
        try:
671
            return add_similar_item_catalog_id(itemId, catalogItemId)
672
        finally:
673
            close_session()
674
 
675
    def deleteSimilarItem(self, itemId, catalogItemId):
676
        """
677
        delete similar items.
678
 
679
        Parameters:
680
         - itemId, catalogItemIds
681
        """
682
        try:
683
            return delete_similar_item_catalog_id(itemId, catalogItemId)
684
        finally:
685
            close_session()
4762 phani.kuma 686
 
5504 phani.kuma 687
    def getAllItemVouchers(self, itemId):
688
        """
689
        Returns list of vouchers.
690
 
691
        Parameters:
692
         - itemId
693
        """
694
        try:
695
            vouchers = get_all_vouchers_for_item(itemId)
696
            return [to_t_voucher_item_mapping(voucher) for voucher in vouchers]
697
        finally:
698
            close_session()
699
 
700
    def getVoucherAmount(self, itemId, voucherType):
701
        """
702
        Returns voucher amount.
703
 
704
        Parameters:
705
         - itemId, voucherType
706
        """
707
        try:
708
            return get_voucher_amount(itemId, voucherType)
709
        finally:
710
            close_session()
711
 
712
    def addupdateVoucherForItem(self, catalogItemId, voucherType, voucherAmount):
713
        """
714
        add or update voucher for item.
715
 
716
        Parameters:
717
         - catalogItemId, voucherType, voucherAmount
718
        """
719
        try:
720
            return add_update_voucher_for_item(catalogItemId, voucherType, voucherAmount)
721
        finally:
722
            close_session()
723
 
724
    def deleteVoucherForItem(self, catalogItemId, voucherType):
725
        """
726
        delete voucher for item.
727
 
728
        Parameters:
729
         - catalogItemId, voucherType
730
        """
731
        try:
732
            return delete_voucher_for_item(catalogItemId, voucherType)
733
        finally:
734
            close_session()
2116 ankur.sing 735
 
4725 phani.kuma 736
    def checkSimilarItem(self, brand, modelNumber, modelName, color):
2116 ankur.sing 737
        """
4725 phani.kuma 738
        Checks if similar item exists (with same Brand, ModelNumber, ModelName, Color)
2116 ankur.sing 739
        If yes, returns the itemId else returns 0
740
 
741
        Parameters:
742
         - brand
743
         - modelNumber
4725 phani.kuma 744
         - modelName
2116 ankur.sing 745
         - color
746
        """
747
        try:
4725 phani.kuma 748
            return check_similar_item(brand, modelNumber, modelName, color)
2116 ankur.sing 749
        finally:
750
            close_session()
751
 
2286 ankur.sing 752
    def changeItemRiskyFlag(self, itemId, risky):
753
        """
754
        Marks/Unmarks an item as risky. This flag is used for automatic marking of an item as INACTIVE in case of zero inventory.
755
 
756
        Parameters:
757
         - itemId
758
         - risky
759
        """
760
        try:
761
            change_risky_flag(itemId, risky)
762
        finally:
763
            close_session()
2116 ankur.sing 764
 
4957 phani.kuma 765
    def getItemsForMasterSheet(self, category, brand):
2358 ankur.sing 766
        """
4957 phani.kuma 767
        Returns list of items with any status except PHASED_OUT and filtered by category, brand.
2358 ankur.sing 768
 
769
        Parameters:
4762 phani.kuma 770
         - category
4957 phani.kuma 771
         - vendor
772
         - brand
2358 ankur.sing 773
        """
774
        try:
4957 phani.kuma 775
            return [to_t_item(item) for item in get_items_for_mastersheet(category, brand)]
2358 ankur.sing 776
        finally:
777
            close_session()
778
 
779
    def getItemsByRiskyFlag(self, ):
780
        """
781
        Returns list of items marked as risky.
782
        """
783
        try:
784
            return [to_t_item(item) for item in get_risky_items()]
785
        finally:
786
            close_session()
2809 rajveer 787
 
788
    def getSimilarItemsCatalogIds(self, beginIndex, totalItems, itemId):
789
        """
790
        Returns list of catalog ids of items with same similarity index as of the given itemId
791
 
792
        Parameters:
793
         - beginIndex
794
         - totalItems
795
         - itemId
796
        """
797
        try:
798
            return get_similar_items_catalog_ids(beginIndex, beginIndex+totalItems, itemId)
799
        finally:
800
            close_session()
3079 rajveer 801
 
802
    def addProductNotification(self, itemId, email):
803
        """
804
        Add user requests for out of stock items. Once user will ask for notify me an entry will
805
 
806
        Parameters:
807
        - itemId
808
        - email
809
        """
810
        try:
811
            return add_product_notification(itemId, email)
812
        finally:
813
            close_session()
2358 ankur.sing 814
 
3086 rajveer 815
    def sendProductNotifications(self, ):
816
        """
817
        Send the product notifications to the users for items which has stock.
818
        """
819
        try:
820
            return send_product_notifications()
821
        finally:
822
            close_session()
3557 rajveer 823
 
824
 
825
    def getAllSources(self, ):
826
        """
827
        Return list of all sources
828
        """
829
        try:
830
            return get_all_sources()
831
        finally:
832
            close_session()
833
 
834
    def getItemPricingBySource(self, itemId, sourceId):
835
        """
836
        Returns the pricing information of an item. If no information is found, exception will be thrown.
3376 rajveer 837
 
3557 rajveer 838
        Parameters:
839
         - itemId
840
         - sourceId
841
        """
842
        try:
843
            return to_t_source_item_pricing(get_item_pricing_by_source(itemId, sourceId))
844
        finally:
845
            close_session()
846
 
847
    def addSourceItemPricing(self, sourceItemPricing):
848
        """
849
        Adds prices to be displayed corresponding to the item if user comes from a source.
850
 
851
        Parameters:
852
         - sourceItemPricing
853
        """
854
        try:
855
            add_source_item_pricing(sourceItemPricing)
856
        finally:
857
            close_session()
858
 
859
    def getAllSourcePricing(self, itemId):
860
        """
861
        Returns the list of source pricing information of an item.
862
        Raises an exception if item not found corresponding to itemId
863
 
864
        Parameters:
865
         - itemId
866
        """
867
        try:
868
            return [to_t_source_item_pricing(source_item_pricing) for source_item_pricing in get_all_source_pricing(itemId)]
869
#        return [to_t_item(item) for item in get_risky_items()]
870
        finally:
871
            close_session()
872
 
873
    def getItemForSource(self, item_id, sourceId):
874
        """
875
        Parameters:
876
         - item_id
877
         - sourceId
878
        """
879
        try:
880
            return to_t_item(get_item_for_source(item_id, sourceId))
881
        finally:
882
            close_session()
3872 chandransh 883
 
884
    def searchItemsInRange(self, searchTerms, offset, limit):
885
        """
886
        Searches items matching the the given terms in the catalog
3557 rajveer 887
 
3872 chandransh 888
        Parameters:
889
         - searchTerms
890
        """
891
        try:
892
            return [to_t_item(item) for item in search_items(searchTerms, offset, limit)]
893
        finally:
894
            close_session()
895
 
896
    def getSearchResultCount(self, searchTerms):
897
        """
898
        Gets the count of search results for the given search terms so that the user can go through all the pages.
899
 
900
        Parameters:
901
         - searchTerms
902
        """
903
        try:
904
            return get_search_result_count(searchTerms)
905
        finally:
906
            close_session()
907
 
4295 varun.gupt 908
    def getProductNotifications(self, startDateTime):
909
        '''
910
        Returns a list of Product Notification objects each representing user requests for notification
911
        '''
912
        try:
913
            return [to_t_product_notification_request(notification) for notification in get_product_notifications(to_py_date(startDateTime))]
914
        finally:
915
            close_session()
916
 
7897 amar.kumar 917
    def getProductNotificationRequestCount(self, startDateTime,  categoryId):
4295 varun.gupt 918
        '''
919
        Returns list of items and the counts of product notification requests
920
        '''
921
        try:
7897 amar.kumar 922
            notification_request_counts = [(notification.item, count) for notification, count in get_product_notification_request_count(to_py_date(startDateTime), categoryId)]
4295 varun.gupt 923
 
924
            return [to_t_product_notification_request_count(count) for count in notification_request_counts]
925
 
926
        finally:
927
            close_session()
928
 
3376 rajveer 929
    def isAlive(self, ):
930
        """
931
        For checking weather service is active alive or not. It also checks connectivity with database
932
        """
933
        try:
934
            return is_alive()
935
        finally:
936
            close_session()
937
 
766 rajveer 938
    def closeSession(self, ):
3376 rajveer 939
        """
940
        For closing the open session in sqlalchemy
941
        """
4332 anupam.sin 942
        close_session()
943
 
4649 phani.kuma 944
    def addAuthorizationLog(self, itemId, username, reason):
945
        """
946
        add a log to authorize table.
947
 
948
        Parameters:
949
         - itemId, username, reason
950
        """
951
        try:
952
            return add_authorization_log_for_item(itemId, username, reason)
953
        finally:
4934 amit.gupta 954
            close_session()
5110 mandeep.dh 955
 
7330 amit.gupta 956
    def getVatPercentageForItem(self, itemId, stateId, price):
6039 amit.gupta 957
        """
958
        get Vat percentage for item for item
959
        """
960
        try:
7340 amit.gupta 961
            return get_vat_percentage_for_item(itemId, stateId, price)
6039 amit.gupta 962
        finally:
963
            close_session()
964
 
965
    def getVatAmountForItem(self, itemId, price):
966
        """
967
        get Vat amount for item
968
        """
969
        try:
970
            return get_vat_amount_for_item(itemId,price)
971
        finally:
972
            close_session()
973
 
5944 mandeep.dh 974
    def validateRiskyStatus(self, itemId):
5712 mandeep.dh 975
        """
5944 mandeep.dh 976
        Check wether item is risky and change status if inventory is not available for risky items
5712 mandeep.dh 977
        """
978
        try:
5944 mandeep.dh 979
            return check_risky_item(itemId)
5712 mandeep.dh 980
        finally:
981
            close_session()
6532 amit.gupta 982
 
983
    def getAllIgnoredInventoryUpdateItemsList(self,offset, limit):
984
        try:
985
            return get_all_ignored_inventoryupdate_items_list(offset,limit)
986
        finally:
6921 anupam.sin 987
            close_session()
6805 anupam.sin 988
 
6921 anupam.sin 989
    def getInsuranceAmount(self, itemId, price, insurerId, quantity):
6805 anupam.sin 990
        try:
6921 anupam.sin 991
            return get_insurance_amount(itemId, price, insurerId, quantity)
6805 anupam.sin 992
        finally:
6921 anupam.sin 993
            close_session()
6805 anupam.sin 994
 
995
    def getInsurer(self, insurerId):
996
        try:
997
            return to_t_insurer(get_insurer(insurerId))
998
        finally:
6838 vikram.rag 999
            close_session()
1000
 
1001
    def getAllInsurers(self):
1002
        try:
1003
            insurers = []
1004
            all_insurers = get_all_insurers()
1005
            for insurer in all_insurers:
1006
                insurers.append(to_t_insurer(insurer))
6921 anupam.sin 1007
            return insurers
6838 vikram.rag 1008
        finally:
1009
            close_session()
6962 rajveer 1010
 
1011
    def updateInsuranceDeclaredAmount(self, insurerId, amount):
1012
        try:
1013
            update_insurance_declared_amount(insurerId, amount)
1014
        finally:
1015
            close_session()
5944 mandeep.dh 1016
 
6845 amit.gupta 1017
    def getAllEntityTags(self):
1018
        try:
1019
            return get_all_entity_tags()
1020
        finally:
1021
            close_session()
1022
 
7190 amar.kumar 1023
    def getFreebieForItem(self, itemId):
1024
        try:
1025
            return get_freebie_for_item(itemId)
1026
        finally:
1027
            close_session()
1028
 
1029
    def addOrUpdateFreebieForItem(self, freebieItem):
1030
        try:
1031
            return add_or_update_freebie_for_item(freebieItem)
1032
        finally:
1033
            close_session()
7291 vikram.rag 1034
 
7272 amit.gupta 1035
    def addOrUpdateBrandInfo(self, brandInfo):
1036
        try:
1037
            return add_or_update_brand_info(brandInfo)
1038
        finally:
1039
            close_session()
1040
 
1041
    def getBrandInfo(self):
1042
        try:
1043
            return get_brand_info()
1044
        finally:
1045
            close_session()
1046
 
7256 rajveer 1047
    def getStorePricing(self, itemId):
1048
        try:
1049
            return get_store_pricing(itemId)
1050
        finally:
1051
            close_session()
1052
 
7306 rajveer 1053
    def getStorePricings(self, itemIds):
1054
        try:
1055
            return [get_store_pricing(itemId) for itemId in itemIds]
1056
        finally:
1057
            close_session()
1058
 
7382 rajveer 1059
    def updateStorePricing(self, sp, allColors):
7265 rajveer 1060
        try:
7382 rajveer 1061
            return update_store_pricing(sp, allColors)
7265 rajveer 1062
        finally:
1063
            close_session()
7291 vikram.rag 1064
 
7190 amar.kumar 1065
 
7281 kshitij.so 1066
 
7291 vikram.rag 1067
 
1068
 
7281 kshitij.so 1069
    def getAmazonItemDetails(self, amazonItemId):
1070
        result = None
1071
        try:
1072
            result = get_amazon_item_details(amazonItemId)
7291 vikram.rag 1073
            print result
7281 kshitij.so 1074
            if result is not None:
1075
                result = to_t_Amazonlisted(result)
1076
        except:
1077
            return None
1078
        finally:
1079
            close_session()
1080
            return result
1081
 
8168 kshitij.so 1082
    def updateAmazonItemDetails(self,amazonlisted):
7281 kshitij.so 1083
        try:
8168 kshitij.so 1084
            update_amazon_item_details(amazonlisted)
7281 kshitij.so 1085
        finally:
1086
            close_session()
1087
 
1088
    def addAmazonItem(self,amazonlisted):
1089
        try:
1090
            print amazonlisted
1091
            add_amazon_item(amazonlisted)
1092
        finally:
1093
            close_session()
1094
 
7291 vikram.rag 1095
    def getAsinItems(self):
1096
        try:
1097
            items = get_asin_items()
1098
            ret_items = []
1099
            for item in items:
1100
                if item:
1101
                    ret_items.append(to_t_item(item))
1102
            return ret_items
1103
        finally:
1104
            close_session()
7281 kshitij.so 1105
 
7291 vikram.rag 1106
    def getAllFbaListedItems(self):
1107
        try:
1108
            items = get_all_fba_listed_items()
1109
            ret_items = []
1110
            for item in items:
1111
                if item:
1112
                    ret_items.append(to_t_Amazonlisted(item))
1113
            return ret_items
1114
        finally:
1115
            close_session()
1116
 
1117
    def getAllNonFbaListedItems(self):
1118
        try:
1119
            items = get_all_nonfba_listed_items()
1120
            ret_items = []
1121
            for item in items:
1122
                if item:
1123
                    ret_items.append(to_t_Amazonlisted(item))
1124
            return ret_items
1125
        finally:
1126
            close_session()
1127
 
1128
 
1129
    def getAllAmazonListedItems(self):      
1130
        try:
1131
            amazonlisteditems = []
1132
            all_listed = get_all_amazon_listed_items()
1133
            for amazonlisteditem in all_listed:
1134
                amazonlisteditems.append(to_t_Amazonlisted(amazonlisteditem))
1135
            return amazonlisteditems
1136
        finally:
8139 kshitij.so 1137
            close_session()           
7291 vikram.rag 1138
 
7460 kshitij.so 1139
    def updateItemInventory(self,itemId,holdInventory,defaultInventory):
1140
        try:
1141
            update_item_inventory(itemId,holdInventory,defaultInventory)
1142
            return True
1143
        finally:
1144
            close_session()
7291 vikram.rag 1145
 
7770 kshitij.so 1146
    def updateTimestampForAmazonFeeds(self,feedType,skuList,timestamp):
1147
        try:
1148
            return update_timestamp_for_amazon_feeds(feedType,skuList,timestamp)
1149
        finally:
1150
            close_session()
1151
 
7897 amar.kumar 1152
    def  getAllParentCategories(self):
1153
        try:
1154
            categories = get_all_parent_categories()
1155
            return [to_t_category(category) for category in categories]
1156
        finally:
1157
            close_session()
1158
 
7977 kshitij.so 1159
    def addPageViewEvent(self,pageEvent):
1160
        try:
1161
            print "csh"
1162
            add_page_view_event(pageEvent)
1163
        finally:
1164
            close_session()
1165
 
1166
    def addCartEvent(self,cartEvent):
1167
        try:
1168
            add_cart_event(cartEvent)
1169
        finally:
1170
            close_session()
1171
 
8168 kshitij.so 1172
    def updateAmazonAttributesInBulk(self,amazonlisted):
1173
        try:
1174
            return update_amazon_attributes_in_bulk(amazonlisted)
1175
        finally:
1176
            close_session()
8139 kshitij.so 1177
 
8168 kshitij.so 1178
 
4934 amit.gupta 1179
def is_valid(item):
1180
    if item.status in [status.ACTIVE, status.PAUSED, status.PAUSED_BY_RISK]:
4936 amit.gupta 1181
        if item.startDate:
1182
            return not(datetime.datetime.now() < item.startDate or item.sellingPrice == 0)
1183
        else:
1184
            return True
6256 rajveer 1185
    elif item.status == status.COMING_SOON:
1186
        return True
1187
    else:
7190 amar.kumar 1188
        return False
7438 amit.gupta 1189
 
7190 amar.kumar 1190
 
1191
if __name__ == '__main__':
1192
    items = get_all_alive_items()
1193
    ret_items = []
1194
    for item in items:
1195
        if item:
1196
            ret_items.append(to_t_item(item))
1197
    print ret_items