ebanutsya

This commit is contained in:
2023-10-28 08:07:53 +03:00
parent 1d2ee676ff
commit 4d98d631f7
6 changed files with 63 additions and 6 deletions

5
app.py
View File

@@ -26,12 +26,9 @@ blueprints = [
(routes.auth_blueprint, '/auth'), (routes.auth_blueprint, '/auth'),
(routes.orders_blueprint, '/orders'), (routes.orders_blueprint, '/orders'),
(routes.barcode_blueprint, '/barcode'), (routes.barcode_blueprint, '/barcode'),
(routes.printing_blueprint, '/printing'),
] ]
for blueprint, url_prefix in blueprints: for blueprint, url_prefix in blueprints:
app.register_blueprint(blueprint, url_prefix=url_prefix) app.register_blueprint(blueprint, url_prefix=url_prefix)

View File

@@ -10,3 +10,26 @@
10-27 05:37 - assemblr - INFO - SiproClient successfully initialized 10-27 05:37 - assemblr - INFO - SiproClient successfully initialized
10-27 05:38 - assemblr - INFO - SiproClient successfully initialized 10-27 05:38 - assemblr - INFO - SiproClient successfully initialized
10-27 05:57 - assemblr - INFO - SiproClient successfully initialized 10-27 05:57 - assemblr - INFO - SiproClient successfully initialized
10-28 04:06 - assemblr - INFO - SiproClient successfully initialized
10-28 04:06 - assemblr - INFO - SiproClient successfully initialized
10-28 04:37 - assemblr - INFO - SiproClient successfully initialized
10-28 04:38 - assemblr - INFO - SiproClient successfully initialized
10-28 04:38 - assemblr - INFO - SiproClient successfully initialized
10-28 04:38 - assemblr - INFO - SiproClient successfully initialized
10-28 05:00 - assemblr - INFO - SiproClient successfully initialized
10-28 05:00 - assemblr - INFO - SiproClient successfully initialized
10-28 05:00 - assemblr - INFO - SiproClient successfully initialized
10-28 05:02 - assemblr - INFO - SiproClient successfully initialized
10-28 05:02 - assemblr - INFO - SiproClient successfully initialized
10-28 05:02 - assemblr - INFO - SiproClient successfully initialized
10-28 05:03 - assemblr - INFO - SiproClient successfully initialized
10-28 05:03 - assemblr - INFO - SiproClient successfully initialized
10-28 05:04 - assemblr - INFO - SiproClient successfully initialized
10-28 05:06 - assemblr - INFO - SiproClient successfully initialized
10-28 05:06 - assemblr - INFO - SiproClient successfully initialized
10-28 05:07 - assemblr - INFO - SiproClient successfully initialized
10-28 05:07 - assemblr - INFO - SiproClient successfully initialized
10-28 05:08 - assemblr - INFO - SiproClient successfully initialized
10-28 05:08 - assemblr - INFO - SiproClient successfully initialized
10-28 05:09 - assemblr - INFO - SiproClient successfully initialized
10-28 05:09 - assemblr - INFO - SiproClient successfully initialized

View File

@@ -1,3 +1,4 @@
from routes.auth import auth_blueprint from routes.auth import auth_blueprint
from routes.orders import orders_blueprint from routes.orders import orders_blueprint
from routes.barcode import barcode_blueprint from routes.barcode import barcode_blueprint
from routes.printing import printing_blueprint

17
routes/printing.py Normal file
View File

@@ -0,0 +1,17 @@
from flask import Blueprint, request, send_file
from routes.utils import jwt_protect_blueprint
import sipro.api.printing
printing_blueprint = jwt_protect_blueprint(Blueprint('printing', __name__))
@printing_blueprint.get('/getLabel')
def get_label():
args = request.args
order_id = args.get('orderId')
data = sipro.api.printing.get_label(order_id)
data.seek(0)
return send_file(data,
as_attachment=True,
download_name='label.pdf',
mimetype='application/pdf')

View File

@@ -19,10 +19,13 @@ class SiproClient:
self.initialized = True self.initialized = True
logger_instance.info('SiproClient successfully initialized') logger_instance.info('SiproClient successfully initialized')
def method(self, http_method: str, method: str, data: dict = None): def method(self, http_method: str, method: str, data: dict = None, raw=False):
url = self.api_url + '/assemblr' + method url = self.api_url + '/assemblr' + method
headers = {'Authorization': self.token} headers = {'Authorization': self.token}
return requests.request(http_method, url, headers=headers, json=data).json() response = requests.request(http_method, url, headers=headers, json=data)
if raw:
return response
return response.json()
def ping(self) -> str: def ping(self) -> str:
return self.method('GET', '/ping').get('response') return self.method('GET', '/ping').get('response')

16
sipro/api/printing.py Normal file
View File

@@ -0,0 +1,16 @@
from io import BytesIO
from flask import send_file
from requests import Response
from sipro.api.client import get_client
client = get_client()
router = '/printing'
def get_label(order_product_id: str) -> BytesIO:
method = f'{router}/getLabel?orderId={order_product_id}'
response: Response = client.method('GET', method, raw=True)
data = BytesIO(response.content)
return data