-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathexample.py
More file actions
118 lines (85 loc) · 3.93 KB
/
example.py
File metadata and controls
118 lines (85 loc) · 3.93 KB
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
"""
|--------------------------------|
| Alexandr Drachenin | Blackgard |
|--------------------------------|
Start testing you connection to dkc api. How start you need create .env file and write master_key to "TOKEN" field.
Check file .env.example.
Good use!
"""
import os
import loguru
from datetime import datetime
from dkc_api.v1.dkc_api import DkcAPI
from dkc_api.v1 import storage
from dkc_api.v1.models.error import ResponceError, ResponceErrorAlternative
from dkc_api.v1.objects.catalog.models import GetMaterial, GetMaterialAccessories, GetMaterialAnalogs, GetMaterialCertificates, \
GetMaterialDescription, GetMaterialDrawingsSketch, GetMaterialRelated, GetMaterialSpecification, GetMaterialStock, \
GetMaterialVideo
from dkc_api.v1.objects.content.models import GetFile, GetRevisionMaterials, GetRevisionLastSize, GetRevisionCertificates, \
GetRevisionDrawings, GetRevisionLast, PostFile, PostFileContent
from dkc_api.v1.objects.delivery.models import DeliveryTimeContent, GetDeliveryTime
from dkc_api.v1.objects.news.models import GetNewsCommunity, GetNewsCompany, GetNewsProducts
from dotenv import load_dotenv
load_dotenv()
def print_result(obj, SuccessClass):
if isinstance(obj, SuccessClass):
print(obj)
elif isinstance(obj, ResponceError):
print(f"| {obj.code} | Message: {obj.message}")
elif isinstance(obj, ResponceErrorAlternative):
print(f"| {obj.errorCode} | Message: {obj.errorMessage}")
def main():
logger = loguru.logger
dkc_api = DkcAPI(
master_key=os.getenv('TOKEN'),
debug=True,
storage=storage.FileTokenStorage(),
logger=logger
)
# Get all products on stock
resolve = dkc_api.Catalog.getMaterialStock()
print_result(resolve, GetMaterialStock)
# Get only product with code "1" on stock
resolve = dkc_api.Catalog.getMaterialStock(code=1)
print_result(resolve, GetMaterialStock)
# Get all data about a product by its code
resolve = dkc_api.Catalog.getMaterial(code=1200)
print_result(resolve, GetMaterial)
# Get product analogues by code
resolve = dkc_api.Catalog.getMaterialAnalogs(code=1200)
print_result(resolve, GetMaterialAnalogs)
# Get all product analogues
resolve = dkc_api.Catalog.getMaterialAnalogs()
print_result(resolve, GetMaterialAnalogs)
# Get product accessories by code
resolve = dkc_api.Catalog.getMaterialAccessories(code=1200)
print_result(resolve, GetMaterialAccessories)
# Get all product accessories
resolve = dkc_api.Catalog.getMaterialAccessories()
print_result(resolve, GetMaterialAccessories)
# Get product certificates by code
resolve = dkc_api.Catalog.getMaterialCertificates(code=1200)
print_result(resolve, GetMaterialCertificates)
# Other object you can use by the same method
# Get all revision drawings products
resolve = dkc_api.Content.getRevisionDrawings()
print_result(resolve, GetRevisionDrawings)
# Get revision materials for this days
resolve = dkc_api.Content.getRevisionMaterials(last_updated=datetime.now())
print_result(resolve, GetRevisionMaterials)
# Post file to dkc api
post_file_content = PostFileContent(name="test", value="test file")
resolve = dkc_api.Content.postFile(file_content=post_file_content)
print_result(resolve, PostFile)
# Get news products ( page = 1, items = 10)
resolve = dkc_api.News.getNewsProducts()
print_result(resolve, GetNewsProducts)
# Get news company ( page = 2, items = 30)
resolve = dkc_api.News.getNewsCompany(page_index=2, length=30)
print_result(resolve, GetNewsCompany)
# Get delivery time content by the items and warehouse.
delivery_time_content = DeliveryTimeContent(company_warehouse="test", items=[])
resolve = dkc_api.Delivery.getDeliveryTime(delivery_time_content=delivery_time_content)
print_result(resolve, GetDeliveryTime)
if __name__ == "__main__":
main()