Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/blackgard/dkc-api
Connector for connecting via api to DKC. Allows you to easily retrieve product and news data.
https://github.com/blackgard/dkc-api
api connector dkc loader python
Last synced: 8 days ago
JSON representation
Connector for connecting via api to DKC. Allows you to easily retrieve product and news data.
- Host: GitHub
- URL: https://github.com/blackgard/dkc-api
- Owner: Blackgard
- License: mit
- Created: 2021-07-31T06:39:33.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2021-08-09T02:52:01.000Z (over 3 years ago)
- Last Synced: 2024-08-09T10:30:35.912Z (3 months ago)
- Topics: api, connector, dkc, loader, python
- Language: Python
- Homepage:
- Size: 39.1 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
DKC API v1
[![Status](https://img.shields.io/badge/status-active-success.svg)]()
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](/LICENSE)---
Connector to DKC API v1 (dkc.ru)
## π Table of Contents
- [About](#about)
- [Getting Started](#getting_started)
- [Available models](#available_models)
- [Usage](#usage)Connector for connecting via api to DKC. Allows you to easily retrieve product and news data.
For download use pip:
```cmd
python -m pip install dkc-api
```### Init
To get started, you need to import the main class DkcAPI.
```python
from dkc_api.v1.dkc_api import DkcAPI
```Next, we pass the initialization parameters to the class. If you want to use environment variables, then the file [.env.example](https://github.com/Blackgard/dkc-api/blob/master/.env.example) is prepared for this.
```python
dkc_api = DkcAPI(
master_key=os.getenv("TOKEN"),
debug=True,
storage=storage.FileTokenStorage(),
logger=logger
)
```So far, only five DkcAPI models are available for work:
1. Catalog
2. Content
3. Delivery
4. News
5. Project (In developing)### πͺ Methods Catalog
Catalog object name:
```python
>>> dkc_api.Catalog.*
```#### GetMaterialStock
This method retrieves data on stock balances.
Args:
- code (list[str], str, int, None): Material code list. If present, βMaterial IDβ is not taken into account. Defaults to [].
- id (list[str], str, int, None): Material id list. Defaults to [].```python
>>> resolve = dkc_api.Catalog.getMaterialStock()
>>> resolve
GetMaterialStock({create: datetime, materials: [{ id: 81, status: true, code: 1200, warehouse: [{code: 2765, ...]}, ...]}, ...] })
```#### GetMaterial
This method returns all data for the specified material.
Args:
- code (str): Material code.```python
>>> resolve = dkc_api.Catalog.getMaterial(code=1200)
>>> resolve
GetMaterial({material: {id: 81, node_id: 1234, etim_class_id: "ETIM", name: "Product name", type: "Type", ...})
```#### getMaterialAnalogs
This method returns a list of product analogues.
Args:
- code (str, None): Material code.```python
>>> resolve = dkc_api.Catalog.getMaterialAnalogs(code=1200)
>>> resolve
GetMaterialAnalogs({analogs: { "1200": [ *product_analogue_codes* ]}})
```You can get a list of all analogs for all products, for this you need to leave the "code" parameter empty.
```python
>>> resolve = dkc_api.Catalog.getMaterialAnalogs()
>>> resolve
GetMaterialAnalogs({analogs: { *product_codes*: [ *product_analogue_codes* ]}})
```#### getMaterialAccessories
This method returns a list of product accessories.
Args:
- code (str, None): Material code.```python
>>> resolve = dkc_api.Catalog.getMaterialAccessories(code=1200)
>>> resolve
GetMaterialAccessories({accessories: { "1200": [ *product_analogue_codes* ]}})
```You can get a list of all accessories for all products, for this you need to leave the "code" parameter empty.
```python
>>> resolve = dkc_api.Catalog.getMaterialAccessories()
>>> resolve
GetMaterialAccessories({accessories: { *product_codes*: [ *product_analogue_codes* ]}})
```#### getMaterialCertificates
This method returns a list of product certificates.
Args:
- code (str): Material code.```python
>>> resolve = dkc_api.Catalog.getMaterialCertificates(code=1200)
>>> resolve
GetMaterialCertificates({certificates: { "1200": [ *product_analogue_codes* ]}})
```#### List other methods
- getMaterialRelated
- getMaterialVideo
- getMaterialDrawingsSketch
- getMaterialDescription
- getMaterialSpecification### π’ Methods Content
Content object name:
```python
>>> dkc_api.Content.*
```#### getRevisionDrawings
The method allows you to get editorial drawings by product code
Args:
- last_updated (datetime, None): if specified, only processes changes from the specified date. Timestamp format.```python
>>> resolve = dkc_api.Content.getRevisionDrawings(code=1200)
>>> resolve
GetRevisionDrawings({revision: { delta: bool, drawings: { updated: [id: 1200, name: "Name", links: { type: "Type", ...}], removed: [...]}})
```#### getRevisionMaterials
The method allows you to get editorial materials by product code
Args:
- last_updated (datetime, optional): if specified, only processes changes from the specified date. Timestamp format.```python
>>> resolve = dkc_api.Content.getRevisionMaterials(code=1200)
>>> resolve
GetRevisionMaterials({revision: { delta: bool, materials: { updated: [id: 1200, name: "Name", links: { type: "Type", ...}], removed: [...]}})
```#### postFile
This method allows you to upload files to the dkc api repository
Args:
- file_content (PostFileContent): file content```python
>>> post_file_content = PostFileContent(name="name_file", value="value_file")
>>> resolve = dkc_api.Content.postFile(file_content=post_file_content)
>>> resolve
PostFile({revision: { id: 872} })
```#### getFile
This method allows you to get files from the dkc api repository
Args:
- file_id (int): file id```python
>>> resolve = dkc_api.Content.getFile(file_id=872)
>>> resolve
PostFile({revision: { name: "name_file", value: "value_file" } })
```#### List other methods
- getRevisionCertificates
- getRevisionsLastSize
- getRevisionsLast### π Methods Delivery
Delivery object name:
```python
>>> dkc_api.Delivery.*
```#### getDeliveryTime
The method returns the date of shipment of goods
Args:
- delivery_time_content (DeliveryTimeContent): delivery time content. Work how filter.```python
>>> delivery_time_content = DeliveryTimeContent(company_warehouse="test", items=[])
>>> resolve = dkc_api.Delivery.getDeliveryTime(delivery_time_content=delivery_time_content)
>>> resolve
GetDeliveryTime({items: [{ code: 172, status: true, date_last: {date: *datetime*, amount: 1689030}, date_detail: [...]}, ...] })
```### π° Methods News
News object name:
```python
>>> dkc_api.News.*
```#### getNewsCompany
The method returns company news.
Args:
- page_index (int): Page index how need load. Default first (0) page.
- length (int): Count news on page. Default 10 news.```python
>>> resolve = dkc_api.News.getNewsCompany()
>>> resolve
GetNewsCompany({news: [{title: "Title", text: "Text", thumbnail_url: "Url", images: ["URL", ...], timestamp: *datetime*}, ...]})
```#### getNewsProducts
The method returns products news.
Args:
- page_index (int): Page index how need load. Default first (0) page.
- length (int): Count news on page. Default 10 news.```python
>>> resolve = dkc_api.News.getNewsProducts()
>>> resolve
GetNewsProducts({news: [{title: "Title", text: "Text", thumbnail_url: "Url", images: ["URL", ...], timestamp: *datetime*}, ...]})
```#### getNewsCommunity
The method returns community news.
Args:
- page_index (int): Page index how need load. Default first (0) page.
- length (int): Count news on page. Default 10 news.```python
>>> resolve = dkc_api.News.getNewsCommunity()
>>> resolve
GetNewsCommunity({news: [{text: "Text", timestamp: "08.08.2021"}, ...]})
```