diff --git a/api.py b/api.py index 2b0576e..1c57b7e 100644 --- a/api.py +++ b/api.py @@ -5,6 +5,8 @@ import json from pydantic import BaseModel from datetime import datetime +import tempfile +from .qr_generator import QRCodeGenerator app = FastAPI( title="Print Server FastAPI", @@ -81,6 +83,14 @@ def print_bill(data, address, waiter): printer.textln(text) printer.set(align='center', bold=False, height=1, width=1) printer.textln('==============================================\n') + if d["fe_cufe"]: + # printer.qr(d["fe_cufe"]) + QR = QRCodeGenerator(d["fe_cufe"]).generate_qr() + with tempfile.NamedTemporaryFile( + delete=True, suffix='.png', dir='/tmp') as temp_file: + temp_filename = temp_file.name + QR.save(temp_filename) + printer.image(f"{temp_filename}") printer.text("Sigue nuestras redes sociales\n") printer.text("@bicipizza\n") printer.text("Recuerde que la propina es voluntaria.\n") diff --git a/qr_generator.py b/qr_generator.py index e552c72..ad36372 100644 --- a/qr_generator.py +++ b/qr_generator.py @@ -1,5 +1,7 @@ #!/usr/bin/env python3 import qrcode +import tempfile +import os class QRCodeGenerator: @@ -8,8 +10,8 @@ class QRCodeGenerator: def __init__(self, url): self.url = url - def generate_qr(self, filename="codigo_qr.png"): - """Genera un código QR a partir de la URL y lo guarda en un archivo.""" + def generate_qr(self): + """Genera un código QR a partir de la URL y lo guarda en un archivo temporal.""" qr = qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, @@ -19,5 +21,5 @@ class QRCodeGenerator: qr.add_data(self.url) qr.make(fit=True) img = qr.make_image(fill_color="black", back_color="white") - img.save(filename) - return filename + + return img diff --git a/test/test_generate_qr.py b/test/test_generate_qr.py index d510d06..34ab96b 100644 --- a/test/test_generate_qr.py +++ b/test/test_generate_qr.py @@ -7,6 +7,4 @@ from ..qr_generator import QRCodeGenerator def test_generate_qr(): url = "https://www.gnu.org/" qr_generator = QRCodeGenerator(url) - filename = qr_generator.generate_qr("test_codigo_qr.png") - assert os.path.exists(filename) - os.remove(filename) + filename = qr_generator.generate_qr()