From 5a48bceabb89b7e65ee01efcd632a868fe297360 Mon Sep 17 00:00:00 2001 From: "Beomhee.Lee" Date: Fri, 31 Jul 2026 12:06:25 +0900 Subject: [PATCH] =?UTF-8?q?=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/routes/links.ts | 3 ++- src/routes/sdk.event.test.ts | 5 ++++- src/routes/sdk.ts | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/routes/links.ts b/src/routes/links.ts index 01ebd71..05a6ad4 100644 --- a/src/routes/links.ts +++ b/src/routes/links.ts @@ -53,6 +53,7 @@ export async function resolveLinkTemplateId( const createLinkSchema = z.object({ userId: z.string().uuid().optional(), templateId: z.string().uuid().optional(), + templateSlug: z.string().optional(), originalUrl: z.string().url().optional(), title: z.string().optional(), description: z.string().optional(), @@ -219,7 +220,7 @@ export async function linkRoutes(fastify: FastifyInstance) { } const originalUrl = data.originalUrl || 'https://angkorlifes.com'; - const resolvedTemplateId = await resolveLinkTemplateId(data.templateId, null); + const resolvedTemplateId = await resolveLinkTemplateId(data.templateId, data.templateSlug); const result = await db.query( `INSERT INTO links ( diff --git a/src/routes/sdk.event.test.ts b/src/routes/sdk.event.test.ts index 51bffe5..05ff406 100644 --- a/src/routes/sdk.event.test.ts +++ b/src/routes/sdk.event.test.ts @@ -46,6 +46,9 @@ describe('POST /api/sdk/v1/links', () => { }); it('accepts payloads without originalUrl and derives a fallback destination', async () => { + mockQuery.mockResolvedValueOnce({ + rows: [{ id: 'default-template-id' }], + }); mockQuery.mockResolvedValueOnce({ rows: [{ id: LINK_ID, @@ -70,7 +73,7 @@ describe('POST /api/sdk/v1/links', () => { originalUrl: 'https://example.com/emoji/detail', }); - const insertCall = mockQuery.mock.calls[0]; + const insertCall = mockQuery.mock.calls[1]; expect(insertCall[0]).toMatch(/INSERT INTO links/); expect(insertCall[1][3]).toBe('https://example.com/emoji/detail'); diff --git a/src/routes/sdk.ts b/src/routes/sdk.ts index 7d0bd27..27e7880 100644 --- a/src/routes/sdk.ts +++ b/src/routes/sdk.ts @@ -60,6 +60,7 @@ export async function sdkRoutes(fastify: FastifyInstance) { attributionWindowHours: z.number().int().min(1).max(2160).optional(), expiresAt: z.string().datetime().optional(), templateId: z.string().uuid().optional(), + templateSlug: z.string().optional(), userId: z.string().uuid().optional(), }); @@ -67,7 +68,7 @@ export async function sdkRoutes(fastify: FastifyInstance) { const originalUrl = body.originalUrl || 'https://angkorlifes.com'; const shortCode = body.customCode || 'sdk-link'; - const resolvedTemplateId = await resolveLinkTemplateId(body.templateId, null); + const resolvedTemplateId = await resolveLinkTemplateId(body.templateId, body.templateSlug); const result = await db.query( `INSERT INTO links (