From 95b5afa0d553d3bfdf414951e5783e74c48cfbd1 Mon Sep 17 00:00:00 2001 From: Alexander Daichendt Date: Wed, 1 Jan 2025 16:54:08 +0100 Subject: [PATCH] feat: add cv verification creation tool --- .gitignore | 3 +- ...e2f65458e7fbae5842954b13b027a22fe2b.sqlite | Bin 24576 -> 0 bytes ...5458e7fbae5842954b13b027a22fe2b.sqlite-shm | Bin 32768 -> 0 bytes ...5458e7fbae5842954b13b027a22fe2b.sqlite-wal | Bin 45352 -> 0 bytes .../verification/AddCVVerification.astro | 107 ++++++++++++++++++ src/pages/admin/api/verifications/index.ts | 31 +++++ src/pages/admin/index.astro | 10 ++ 7 files changed, 150 insertions(+), 1 deletion(-) delete mode 100644 .wrangler/state/v3/d1/miniflare-D1DatabaseObject/855e7c7bcbd96c68b365b6bf66cade2f65458e7fbae5842954b13b027a22fe2b.sqlite delete mode 100644 .wrangler/state/v3/d1/miniflare-D1DatabaseObject/855e7c7bcbd96c68b365b6bf66cade2f65458e7fbae5842954b13b027a22fe2b.sqlite-shm delete mode 100644 .wrangler/state/v3/d1/miniflare-D1DatabaseObject/855e7c7bcbd96c68b365b6bf66cade2f65458e7fbae5842954b13b027a22fe2b.sqlite-wal create mode 100644 src/components/verification/AddCVVerification.astro create mode 100644 src/pages/admin/api/verifications/index.ts create mode 100644 src/pages/admin/index.astro diff --git a/.gitignore b/.gitignore index 2dc4284..937928a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .astro +.wrangler dist -node_modules +node_modules/ diff --git a/.wrangler/state/v3/d1/miniflare-D1DatabaseObject/855e7c7bcbd96c68b365b6bf66cade2f65458e7fbae5842954b13b027a22fe2b.sqlite b/.wrangler/state/v3/d1/miniflare-D1DatabaseObject/855e7c7bcbd96c68b365b6bf66cade2f65458e7fbae5842954b13b027a22fe2b.sqlite deleted file mode 100644 index 3b126d1e7dce7bafd7ca1f7e257448e58c705aef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24576 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 diff --git a/src/components/verification/AddCVVerification.astro b/src/components/verification/AddCVVerification.astro new file mode 100644 index 0000000..eb23c58 --- /dev/null +++ b/src/components/verification/AddCVVerification.astro @@ -0,0 +1,107 @@ +
+

+ Add CV Verification +

+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ + +
diff --git a/src/pages/admin/api/verifications/index.ts b/src/pages/admin/api/verifications/index.ts new file mode 100644 index 0000000..7c398ab --- /dev/null +++ b/src/pages/admin/api/verifications/index.ts @@ -0,0 +1,31 @@ +import type { APIContext } from "astro"; +import { drizzle } from "drizzle-orm/d1"; +import { cvTable } from "../../../../db/schema"; + +export const prerender = false; + +export async function POST(context: APIContext) { + const runtime = context.locals.runtime; + const d1 = runtime.env.DB; + const db = drizzle(d1, { schema: { cvTable } }); + + // parse form data + const formData = await context.request.formData(); + const company_name = formData.get("company_name") as string; + const author = formData.get("author") as string; + const purpose = formData.get("purpose") as string; + const tooling = formData.get("tooling") as string; + const created = new Date(); + const uuid = crypto.randomUUID(); + + try { + await db + .insert(cvTable) + .values({ company_name, author, purpose, tooling, created, uuid }) + .execute(); + } catch (error) { + return new Response(JSON.stringify({ success: false, error })); + } + + return new Response(JSON.stringify({ success: true, uuid })); +} diff --git a/src/pages/admin/index.astro b/src/pages/admin/index.astro new file mode 100644 index 0000000..6b59b1d --- /dev/null +++ b/src/pages/admin/index.astro @@ -0,0 +1,10 @@ +--- +import BaseLayout from "../../layouts/BaseLayout.astro"; +import AddCVVerification from "../../components/verification/AddCVVerification.astro"; +--- + + +

Admin

+ + +