diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..cbf89a6 --- /dev/null +++ b/.env.example @@ -0,0 +1,4 @@ +APP_TOKEN='12345679' +POS_TOKEN='123456' +MERCHANT_ID='123456789' +PRODUCTION=1 diff --git a/README.md b/README.md index 08cda07..b20a0e5 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,56 @@ bonus-import-tools -приложение для импорта бонусных баллов +## Приложение для импорта бонусных баллов. + +### Требования для установки через pipenv + +- Ubuntu 22.04 +- Python 3.11 + +### Предустановка + +```shell +apt update && apt upgrade -y +apt install git wget curl build-essential mc tmux -y +apt install libssl-dev libffi-dev libxml2-dev libxslt1-dev zlib1g-dev python3-pip python3-dev -y +pip3 install setuptools && pip3 install pipenv +``` + + +### Установка в venv + +```shell +git clone https://git.auk.su/Dinect/loyalty-load-tester +cd loyalty-load-tester +pip install -r requirements.txt +``` + +### Требования для установки через docker-compose + +- Ubuntu 22.04 / alpine 3.14 +- Docker +- Docker compose 2.24 + + +### Предустановка + +```shell +sudo apt update && sudo apt upgrade -y +sudo apt install apt-transport-https ca-certificates curl software-properties-common tmux curl mc wget git -y +curl -sSL https://get.docker.com/ | CHANNEL=stable bash +docker --version + +sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose +sudo chmod +x /usr/local/bin/docker-compose +docker-compose --version +``` + + +### Установка в Docker контейнер + +```shell +git clone https://git.auk.su/Dinect/loyalty-load-tester +cd loyalty-load-tester +pip install -r requirements.txt +``` -python 3.11 \ No newline at end of file diff --git a/app.py b/app.py index 2e5bb4d..fdfe0a1 100644 --- a/app.py +++ b/app.py @@ -3,6 +3,22 @@ # __author__ = 'szhdanoff@gmail.com' import os import csv +from dotenv import load_dotenv + +load_dotenv() + +APP_TOKEN = os.getenv('APP_TOKEN') +POS_TOKEN = os.getenv('POS_TOKEN') +MERCHANT_ID = os.getenv('MERCHANT_ID') +is_prod = bool(os.getenv('PRODUCTION', False)) + +if is_prod: + API_URI = 'https://pos-api.dinect.com/20130701/' +else: + API_URI = 'https://pos-api-ote.dinect.com/20130701/' + +print(is_prod, API_URI) + csv_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'csv') diff --git a/csv/example.csv.examples b/csv/example.csv.example similarity index 100% rename from csv/example.csv.examples rename to csv/example.csv.example diff --git a/dinect_api.py b/dinect_api.py new file mode 100644 index 0000000..04ef5c9 --- /dev/null +++ b/dinect_api.py @@ -0,0 +1,25 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# __author__ = 'szhdanoff@gmail.com' +import os +import json +import httpx +# local imports +import app + +app_token = app.APP_TOKEN +pos_token = app.POS_TOKEN +merchant_id = app.MERCHANT_ID + +url = 'https://api.dinect.ru/v1/' + +HEADERS = { + 'Authorization': f'{app_token}', + 'DM-Authorization': f'{pos_token}', + 'User-Agent': 'bonus-import-tools-2024', + 'Accept': 'application/json', + 'Accept-Language': 'ru,ru-RU;q=0.8,en-gb;q=0.5,en;q=0.3', + 'Accept-Charset': 'utf-8', + 'Connection': 'close', + 'Content-Type': 'application/x-www-form-urlencoded', +} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..884e9b9 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +httpx~=0.27.0 +python-dotenv~=1.0.0