diff --git a/src/lib/components/ExpandableForm.svelte b/src/lib/components/ExpandableForm.svelte new file mode 100644 index 0000000..45b333e --- /dev/null +++ b/src/lib/components/ExpandableForm.svelte @@ -0,0 +1,53 @@ + + +
+ + + + + {#if expanded} +
+
+ +
+
+ {/if} +
diff --git a/src/lib/server/vorgangService.ts b/src/lib/server/vorgangService.ts index dc85f84..3cf016e 100644 --- a/src/lib/server/vorgangService.ts +++ b/src/lib/server/vorgangService.ts @@ -1,6 +1,7 @@ import { fail } from '@sveltejs/kit'; import { BUCKET, client, CONFIGFILENAME, TOKENFILENAME } from '$lib/minio'; import { checkIfExactDirectoryExists, getContentOfTextObject } from './s3ClientService'; +import { v4 as uuidv4 } from 'uuid'; import { db } from './dbService'; @@ -45,6 +46,31 @@ export const getVorgangByToken = ( return result; }; +/** + * Create Vorgang, using a vorgangName and vorgangPIN + * @param vorgangName + * @param vorgangPIN + * @returns {string || false} vorgangToken if successful + */ +export const createVorgang = (vorgangName: string, vorgangPIN: string): string | boolean => { + const vorgangExists = vorgangNameExists(vorgangName); + if (vorgangExists) { + return false; + } + + const vorgangToken = uuidv4(); + + const insertSQLStatement = `INSERT INTO cases (token, name, pin) VALUES (?, ?, ?)`; + const statement = db.prepare(insertSQLStatement); + const info = statement.run(vorgangToken, vorgangName, vorgangPIN); + + if (info.changes) { + return vorgangToken; + } else { + return false; + } +}; + /** * Get Vorgang * @param vorgangName diff --git a/src/routes/(angemeldet)/+page.svelte b/src/routes/(angemeldet)/+page.svelte index 0472302..0bd77f0 100644 --- a/src/routes/(angemeldet)/+page.svelte +++ b/src/routes/(angemeldet)/+page.svelte @@ -31,18 +31,6 @@ Verschaffe Dir einen Überblick über alle gespeicherten Tatorte.

-
-
- -
- - Hinzufügen - - -

Fügen Sie einem Tatort Bilder hinzu.

-
{ if (!event.locals.user) { @@ -13,3 +13,23 @@ export const load: PageServerLoad = async (event) => { vorgangList }; }; + + +export const actions = { + default: async ({ request }: { request: Request }) => { + const data = await request.formData(); + const vorgangName: string | null = data.get('vorgang') as string; + const vorgangPIN: string | null = data.get('pin') as string; + + const err = {}; + + const token = createVorgang(vorgangName, vorgangPIN); + if (!token) { + err.message = "Der Vorgang konnte nicht angelegt werden" + return fail(400, err) + } else { + // success + return { token } + } + } +}; \ No newline at end of file diff --git a/src/routes/(angemeldet)/list/+page.svelte b/src/routes/(angemeldet)/list/+page.svelte index 1a7f888..c7fedbf 100644 --- a/src/routes/(angemeldet)/list/+page.svelte +++ b/src/routes/(angemeldet)/list/+page.svelte @@ -1,15 +1,66 @@