From 5176649ad682bd6fcb54027e37c6902c3eb44555 Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Sat, 20 Jan 2024 22:39:23 -0600 Subject: [PATCH] Refactor storage api paths --- .../blob/route.tsx => api/storage/vercel-blob/route.ts} | 2 +- src/services/storage/index.ts | 5 ++--- src/services/storage/vercel-blob.ts | 4 ++-- src/site/paths.ts | 8 ++++++-- 4 files changed, 11 insertions(+), 8 deletions(-) rename src/app/{admin/uploads/blob/route.tsx => api/storage/vercel-blob/route.ts} (96%) diff --git a/src/app/admin/uploads/blob/route.tsx b/src/app/api/storage/vercel-blob/route.ts similarity index 96% rename from src/app/admin/uploads/blob/route.tsx rename to src/app/api/storage/vercel-blob/route.ts index a6436018..e41543c6 100644 --- a/src/app/admin/uploads/blob/route.tsx +++ b/src/app/api/storage/vercel-blob/route.ts @@ -9,7 +9,7 @@ import { handleUpload, type HandleUploadBody } from '@vercel/blob/client'; import { NextResponse } from 'next/server'; export async function POST(request: Request): Promise { - const body = (await request.json()) as HandleUploadBody; + const body: HandleUploadBody = await request.json(); try { const jsonResponse = await handleUpload({ diff --git a/src/services/storage/index.ts b/src/services/storage/index.ts index 5917cfbc..8e7b0810 100644 --- a/src/services/storage/index.ts +++ b/src/services/storage/index.ts @@ -18,6 +18,7 @@ import { } from '@/site/config'; import { generateNanoid } from '@/utility/nanoid'; import { CLOUDFLARE_R2_BASE_URL_PUBLIC } from './cloudflare-r2'; +import { PATH_API_PRESIGNED_URL } from '@/site/paths'; export const generateBlobId = () => generateNanoid(16); @@ -44,8 +45,6 @@ const blobBaseUrlForStorage = (type: StorageType) => { export const BLOB_BASE_URL = blobBaseUrlForStorage(STORAGE_PREFERENCE); -const API_PATH_PRESIGNED_URL = '/api/storage/presigned-url'; - const PREFIX_UPLOAD = 'upload'; const PREFIX_PHOTO = 'photo'; @@ -84,7 +83,7 @@ export const uploadFromClientViaPresignedUrl = async ( ? `${fileName}-${generateBlobId()}.${extension}` : `${fileName}.${extension}`; - const url = await fetch(`${API_PATH_PRESIGNED_URL}/${key}`) + const url = await fetch(`${PATH_API_PRESIGNED_URL}/${key}`) .then((response) => response.text()); return fetch(url, { method: 'PUT', body: file }) diff --git a/src/services/storage/vercel-blob.ts b/src/services/storage/vercel-blob.ts index f14b2041..5a664f6b 100644 --- a/src/services/storage/vercel-blob.ts +++ b/src/services/storage/vercel-blob.ts @@ -1,4 +1,4 @@ -import { PATH_ADMIN_UPLOAD_BLOB } from '@/site/paths'; +import { PATH_API_VERCEL_BLOB_UPLOAD } from '@/site/paths'; import { copy, del, list } from '@vercel/blob'; import { upload } from '@vercel/blob/client'; @@ -18,7 +18,7 @@ export const vercelBlobUploadFromClient = async ( file, { access: 'public', - handleUploadUrl: PATH_ADMIN_UPLOAD_BLOB, + handleUploadUrl: PATH_API_VERCEL_BLOB_UPLOAD, }, ) .then(({ url }) => url); diff --git a/src/site/paths.ts b/src/site/paths.ts index 77c8d9f2..e6b699ce 100644 --- a/src/site/paths.ts +++ b/src/site/paths.ts @@ -12,6 +12,7 @@ export const PATH_ROOT = '/'; export const PATH_GRID = '/grid'; export const PATH_SETS = '/sets'; export const PATH_ADMIN = '/admin'; +export const PATH_API = '/api'; export const PATH_SIGN_IN = '/sign-in'; export const PATH_OG = '/og'; @@ -31,9 +32,13 @@ const PATH_FILM_SIMULATION_DYNAMIC = `${PREFIX_FILM_SIMULATION}/[simulation]`; export const PATH_ADMIN_PHOTOS = `${PATH_ADMIN}/photos`; export const PATH_ADMIN_UPLOADS = `${PATH_ADMIN}/uploads`; export const PATH_ADMIN_TAGS = `${PATH_ADMIN}/tags`; -export const PATH_ADMIN_UPLOAD_BLOB = `${PATH_ADMIN_UPLOADS}/blob`; export const PATH_ADMIN_CONFIGURATION = `${PATH_ADMIN}/configuration`; +// API paths +export const PATH_API_STORAGE = `${PATH_API}/storage`; +export const PATH_API_VERCEL_BLOB_UPLOAD = `${PATH_API_STORAGE}/vercel-blob`; +export const PATH_API_PRESIGNED_URL = `${PATH_API_STORAGE}/presigned-url`; + // Modifiers const SHARE = 'share'; const NEXT = 'next'; @@ -44,7 +49,6 @@ export const PATHS_ADMIN = [ PATH_ADMIN_PHOTOS, PATH_ADMIN_UPLOADS, PATH_ADMIN_TAGS, - PATH_ADMIN_UPLOAD_BLOB, PATH_ADMIN_CONFIGURATION, ];