From c8781e3a3d4ba43921af326ca3651a675e821743 Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Thu, 12 Dec 2024 18:37:25 +0100 Subject: [PATCH] refactor: move barcode generation to document server --- .env.example | 1 + bun.lockb | Bin 22741 -> 22385 bytes package.json | 1 - src/routes/email.ts | 16 +--------------- 4 files changed, 2 insertions(+), 16 deletions(-) mode change 100644 => 100755 bun.lockb diff --git a/.env.example b/.env.example index 38cebe6..c4b12c8 100644 --- a/.env.example +++ b/.env.example @@ -6,6 +6,7 @@ EMAIL_FROM="noreply@lauf-fuer-kaya.de" EMAIL_REPLYTO="info@lauf-fuer-kaya.de" REDIS_URL=redis://localhost:6379 FRONTEND_URL="https://run.lauf-fuer-kaya.de" +DOCUMENT_SERVER_URL="https://documents.run.lauf-fuer-kaya.de/" AUTHKEY="" EVENT_DATE="23.05.2025" EVENT_NAME="Lauf für Kaya! 2025" \ No newline at end of file diff --git a/bun.lockb b/bun.lockb old mode 100644 new mode 100755 index 22a33a52ac944da35002dcd3222f8e417f6f0d0b..28888290febe2210a17ab8e4e253c29a4763a192 GIT binary patch delta 2748 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 diff --git a/package.json b/package.json index 0c40202..2ebbdc3 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,6 @@ "@hono/zod-openapi": "0.18.3", "@hono/zod-validator": "0.4.1", "bullmq": "5.34.0", - "bwip-js": "4.5.1", "handlebars": "4.7.8", "hono": "4.6.13", "ioredis": "5.4.1", diff --git a/src/routes/email.ts b/src/routes/email.ts index d063d9c..cc190f5 100644 --- a/src/routes/email.ts +++ b/src/routes/email.ts @@ -5,7 +5,6 @@ import { z } from 'zod' import { EmailService } from '../services/email' import { getEmailTemplate } from '../templates' import { Language } from '../types' -import { toBuffer } from 'bwip-js/node' const emailRouter = new Hono() const emailService = new EmailService() @@ -18,20 +17,7 @@ const sendEmailSchema = z.object({ }) async function generateBarcodeDataURL(data) { - return `https://barcodeapi.org/api/128/${data}` - const buffer = await toBuffer({ - bcid: 'code128', - text: data, - scale: 3, - height: 10, - includetext: true, - textxalign: 'center', - }); - - const base64Data = buffer.toString('base64'); - const dataURL = `data:image/png;base64,${base64Data}`; - - return dataURL; + return `${process.env.DOCUMENT_SERVER_URL}/v1/barcodes/code128/${data}` } emailRouter.post('/', bearerAuth({ token: process.env.AUTHKEY }), zValidator('json', sendEmailSchema), async (c) => {