forked from sfayn2/sfayn_gqlserver
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathservices.py
62 lines (44 loc) · 1.56 KB
/
services.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
from cb.models import ShoppingCart, WAREHOUSE_CHOICES
from django.db.models import Count
from graphql_relay import from_global_id
from django.db.models import Min, Max
from product.models import (
ProductVariantItem,
ProductCategory
)
def get_shoppingcart_total_count(user_id):
return ShoppingCart.objects.filter(user_id=user_id).count()
def get_list_from_global_id(data):
final_id = []
for d in data:
#need to convert graphene relay id to db id
final_id.append(from_global_id(d)[1])
return final_id
def get_price_min(id):
qset = ProductVariantItem.objects.filter(parent_sn_id=id)
return qset.aggregate(Min("price"))["price__min"]
def get_price_max(id):
qset = ProductVariantItem.objects.filter(parent_sn_id=id)
return qset.aggregate(Max("price"))["price__max"]
def get_l3_categories(category_id_list, level):
category = ProductCategory
category_qset = category.objects.all()
l3_categories = None
if category.LevelChoices.LEVEL_1 == level:
l2_categories = list(
category_qset.filter(
parent_id__in=category_id_list
).values_list('id', flat=True)
)
l3_categories = list(
category_qset.filter(
parent_id__in=l2_categories
).values_list('id', flat=True)
)
elif category.LevelChoices.LEVEL_2 == level:
l3_categories = list(
category_qset.filter(
parent_id__in=category_id_list
).values_list('id', flat=True)
)
return l3_categories