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 3b126d1..0000000 Binary files a/.wrangler/state/v3/d1/miniflare-D1DatabaseObject/855e7c7bcbd96c68b365b6bf66cade2f65458e7fbae5842954b13b027a22fe2b.sqlite and /dev/null differ diff --git a/.wrangler/state/v3/d1/miniflare-D1DatabaseObject/855e7c7bcbd96c68b365b6bf66cade2f65458e7fbae5842954b13b027a22fe2b.sqlite-shm b/.wrangler/state/v3/d1/miniflare-D1DatabaseObject/855e7c7bcbd96c68b365b6bf66cade2f65458e7fbae5842954b13b027a22fe2b.sqlite-shm deleted file mode 100644 index 55b8587..0000000 Binary files a/.wrangler/state/v3/d1/miniflare-D1DatabaseObject/855e7c7bcbd96c68b365b6bf66cade2f65458e7fbae5842954b13b027a22fe2b.sqlite-shm and /dev/null differ diff --git a/.wrangler/state/v3/d1/miniflare-D1DatabaseObject/855e7c7bcbd96c68b365b6bf66cade2f65458e7fbae5842954b13b027a22fe2b.sqlite-wal b/.wrangler/state/v3/d1/miniflare-D1DatabaseObject/855e7c7bcbd96c68b365b6bf66cade2f65458e7fbae5842954b13b027a22fe2b.sqlite-wal deleted file mode 100644 index 0835b64..0000000 Binary files a/.wrangler/state/v3/d1/miniflare-D1DatabaseObject/855e7c7bcbd96c68b365b6bf66cade2f65458e7fbae5842954b13b027a22fe2b.sqlite-wal and /dev/null differ 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

+ + +