feat: add support for multiple label formats in get_label function
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
from flask import Blueprint, request, send_file
|
from flask import Blueprint, request, send_file, jsonify
|
||||||
from routes.utils import jwt_protect_blueprint
|
from routes.utils import jwt_protect_blueprint
|
||||||
import sipro.api.printing
|
import sipro.api.printing
|
||||||
|
|
||||||
@@ -9,9 +9,13 @@ printing_blueprint = jwt_protect_blueprint(Blueprint('printing', __name__))
|
|||||||
def get_label():
|
def get_label():
|
||||||
args = request.args
|
args = request.args
|
||||||
order_id = args.get('orderId')
|
order_id = args.get('orderId')
|
||||||
data = sipro.api.printing.get_label(order_id)
|
label_format = args.get('format', 'pdf')
|
||||||
|
data = sipro.api.printing.get_label(order_id, label_format=label_format)
|
||||||
data.seek(0)
|
data.seek(0)
|
||||||
|
|
||||||
|
if label_format == 'pdf':
|
||||||
return send_file(data,
|
return send_file(data,
|
||||||
as_attachment=True,
|
as_attachment=True,
|
||||||
download_name='label.pdf',
|
download_name='label.pdf',
|
||||||
mimetype='application/pdf')
|
mimetype='application/pdf')
|
||||||
|
return jsonify(data.read().decode('utf-8'))
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ client = get_client()
|
|||||||
router = '/printing'
|
router = '/printing'
|
||||||
|
|
||||||
|
|
||||||
def get_label(order_product_id: str) -> BytesIO:
|
def get_label(order_product_id: str, label_format:str='pdf') -> BytesIO:
|
||||||
method = f'{router}/getLabel?orderId={order_product_id}'
|
method = f'{router}/getLabel?orderId={order_product_id}&format={label_format}'
|
||||||
response: Response = client.method('GET', method, raw=True)
|
response: Response = client.method('GET', method, raw=True)
|
||||||
data = BytesIO(response.content)
|
data = BytesIO(response.content)
|
||||||
return data
|
return data
|
||||||
Reference in New Issue
Block a user