diff --git a/src/actions/signup.ts b/src/actions/signup.ts index ff4d44d..ab7ef3b 100644 --- a/src/actions/signup.ts +++ b/src/actions/signup.ts @@ -87,6 +87,9 @@ export const signup = { if (input.code) { await tx.setDirectSignupUser({ code: input.code, userId: user.id }); } + if (uuid) { + await tx.linkDirectSignupUserByUuid({ uuid: uuid, userId: user.id }); + } }); sendWebhook(WebhookAction.Signup, { diff --git a/src/actions/user.ts b/src/actions/user.ts index e4260d8..71efc03 100644 --- a/src/actions/user.ts +++ b/src/actions/user.ts @@ -35,6 +35,10 @@ export const user = { uuid: input.uuid }); + if (input.uuid) { + await db.linkDirectSignupUserByUuid({ uuid: input.uuid, userId: id }); + } + return { id: id }; @@ -146,10 +150,31 @@ export const user = { } }), addDirectInvitation: defineAction({ - handler: async (_, context) => { + input: z + .object({ + uuid: z.string().nullable(), + comment: z.string().nullable() + }) + .optional(), + handler: async (input, context) => { Session.actionSessionFromCookies(context.cookies, Permissions.Users); - return await db.addDirectSignup({}); + return await db.addDirectSignup({ + uuid: input?.uuid ?? null, + comment: input?.comment ?? null + }); + } + }), + editDirectInvitation: defineAction({ + input: z.object({ + code: z.string(), + uuid: z.string().nullable(), + comment: z.string().nullable() + }), + handler: async (input, context) => { + Session.actionSessionFromCookies(context.cookies, Permissions.Users); + + await db.editDirectSignup(input); } }), deleteDirectInvitation: defineAction({ diff --git a/src/app/admin/directInvitations/DirectInvitations.svelte b/src/app/admin/directInvitations/DirectInvitations.svelte index 1d0106f..69793e5 100644 --- a/src/app/admin/directInvitations/DirectInvitations.svelte +++ b/src/app/admin/directInvitations/DirectInvitations.svelte @@ -1,13 +1,38 @@