From 96aaea23e4a1de972abfa0466091adb85e5249f0 Mon Sep 17 00:00:00 2001 From: Codex Agent Date: Fri, 30 Jan 2026 13:06:26 +0100 Subject: [PATCH] Fix guest upload queue endpoint --- resources/js/guest/queue/__tests__/queueUrl.test.ts | 12 ++++++++++++ resources/js/guest/queue/queue.ts | 5 ++++- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 resources/js/guest/queue/__tests__/queueUrl.test.ts diff --git a/resources/js/guest/queue/__tests__/queueUrl.test.ts b/resources/js/guest/queue/__tests__/queueUrl.test.ts new file mode 100644 index 0000000..682c306 --- /dev/null +++ b/resources/js/guest/queue/__tests__/queueUrl.test.ts @@ -0,0 +1,12 @@ +import { describe, expect, it } from 'vitest'; +import { buildQueueUploadUrl } from '../queue'; + +describe('buildQueueUploadUrl', () => { + it('builds the guest upload endpoint', () => { + expect(buildQueueUploadUrl('demo-token')).toBe('/api/v1/events/demo-token/upload'); + }); + + it('encodes event tokens safely', () => { + expect(buildQueueUploadUrl('token/with space')).toBe('/api/v1/events/token%2Fwith%20space/upload'); + }); +}); diff --git a/resources/js/guest/queue/queue.ts b/resources/js/guest/queue/queue.ts index 707d8ea..7902973 100644 --- a/resources/js/guest/queue/queue.ts +++ b/resources/js/guest/queue/queue.ts @@ -5,6 +5,9 @@ import { createUpload } from './xhr'; import { notify } from './notify'; type SyncManager = { register(tag: string): Promise; }; +export const buildQueueUploadUrl = (eventToken: string) => + `/api/v1/events/${encodeURIComponent(eventToken)}/upload`; + export type QueueItem = { id?: number; eventToken: string; @@ -81,7 +84,7 @@ async function attemptUpload(it: QueueItem): Promise { if (!navigator.onLine) return false; try { const json = await createUpload( - `/api/v1/events/${encodeURIComponent(it.eventToken)}/photos`, + buildQueueUploadUrl(it.eventToken), it, getDeviceId(), (pct) => {