From 90de719e7218a9ab41afb652cde17978ac80019e Mon Sep 17 00:00:00 2001 From: Aidan Jones Date: Fri, 24 Jan 2025 16:10:41 -0500 Subject: [PATCH] Remove erroneous try-catch for ValiError --- .../organizations/edit/+page.server.ts | 57 ++--- .../organizations/new/+page.server.ts | 41 ++-- .../product-definitions/edit/+page.server.ts | 55 ++--- .../product-definitions/new/+page.server.ts | 38 ++-- .../settings/store-types/edit/+page.server.ts | 28 +-- .../settings/store-types/new/+page.server.ts | 22 +- .../settings/stores/edit/+page.server.ts | 30 ++- .../admin/settings/stores/new/+page.server.ts | 24 +-- .../workflow-definitions/edit/+page.server.ts | 60 ++---- .../workflow-definitions/new/+page.server.ts | 54 ++--- .../[id]/settings/groups/+page.server.ts | 18 +- .../[id]/settings/info/+page.server.ts | 25 +-- .../settings/infrastructure/+page.server.ts | 28 +-- .../[id]/settings/products/+page.server.ts | 32 ++- .../[id]/settings/stores/+page.server.ts | 16 +- .../import/[id=idNumber]/+page.server.ts | 201 +++++++++--------- .../users/invite/+page.server.ts | 28 +-- 17 files changed, 289 insertions(+), 468 deletions(-) diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/organizations/edit/+page.server.ts b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/organizations/edit/+page.server.ts index f85b4cc7e..daee02d28 100644 --- a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/organizations/edit/+page.server.ts +++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/organizations/edit/+page.server.ts @@ -65,47 +65,30 @@ export const load = (async ({ url }) => { }) satisfies PageServerLoad; export const actions = { - async edit({ cookies, request }) { + async edit({ request }) { const form = await superValidate(request, valibot(editSchema)); if (!form.valid) { return fail(400, { form, ok: false, errors: form.errors }); } - // return { ok: true, form }; - try { - const { - id, - name, - buildEngineAccessToken, - buildEngineURL, - logoURL, - owner, - publicByDefault, - websiteURL, - stores - } = form.data; - await DatabaseWrites.organizations.update({ - where: { - Id: id - }, - data: { - Name: name, - BuildEngineApiAccessToken: buildEngineAccessToken, - BuildEngineUrl: buildEngineURL, - LogoUrl: logoURL, - OwnerId: owner, - PublicByDefault: publicByDefault, - WebsiteUrl: websiteURL - } - }); - await DatabaseWrites.organizationStores.updateOrganizationStores( - id, - stores.filter((s) => s.enabled).map((s) => s.storeId) - ); + await DatabaseWrites.organizations.update({ + where: { + Id: form.data.id + }, + data: { + Name: form.data.name, + BuildEngineApiAccessToken: form.data.buildEngineAccessToken, + BuildEngineUrl: form.data.buildEngineURL, + LogoUrl: form.data.logoURL, + OwnerId: form.data.owner, + PublicByDefault: form.data.publicByDefault, + WebsiteUrl: form.data.websiteURL + } + }); + await DatabaseWrites.organizationStores.updateOrganizationStores( + form.data.id, + form.data.stores.filter((s) => s.enabled).map((s) => s.storeId) + ); - return { ok: true, form }; - } catch (e) { - if (e instanceof v.ValiError) return { form, ok: false, errors: e.issues }; - throw e; - } + return { ok: true, form }; } } satisfies Actions; diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/organizations/new/+page.server.ts b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/organizations/new/+page.server.ts index fc6011683..90a537b2e 100644 --- a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/organizations/new/+page.server.ts +++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/organizations/new/+page.server.ts @@ -31,33 +31,18 @@ export const actions = { if (!form.valid) { return fail(400, { form, ok: false, errors: form.errors }); } - try { - const { - buildEngineAccessToken, - buildEngineURL, - logoURL, - name, - owner, - publicByDefault, - useDefaultBuildEngine, - websiteURL - } = form.data; - await DatabaseWrites.organizations.create({ - data: { - Name: name, - BuildEngineApiAccessToken: buildEngineAccessToken, - BuildEngineUrl: buildEngineURL, - LogoUrl: logoURL, - OwnerId: owner, - PublicByDefault: publicByDefault, - UseDefaultBuildEngine: useDefaultBuildEngine, - WebsiteUrl: websiteURL - } - }); - return { ok: true, form }; - } catch (e) { - if (e instanceof v.ValiError) return { form, ok: false, errors: e.issues }; - throw e; - } + await DatabaseWrites.organizations.create({ + data: { + Name: form.data.name, + BuildEngineApiAccessToken: form.data.buildEngineAccessToken, + BuildEngineUrl: form.data.buildEngineURL, + LogoUrl: form.data.logoURL, + OwnerId: form.data.owner, + PublicByDefault: form.data.publicByDefault, + UseDefaultBuildEngine: form.data.useDefaultBuildEngine, + WebsiteUrl: form.data.websiteURL + } + }); + return { ok: true, form }; } } satisfies Actions; diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/product-definitions/edit/+page.server.ts b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/product-definitions/edit/+page.server.ts index bcec76435..4e08cf5e7 100644 --- a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/product-definitions/edit/+page.server.ts +++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/product-definitions/edit/+page.server.ts @@ -49,48 +49,25 @@ export const load = (async ({ url }) => { }) satisfies PageServerLoad; export const actions = { - async edit({ cookies, request }) { + async edit({ request }) { const form = await superValidate(request, valibot(editSchema)); if (!form.valid) { return fail(400, { form, ok: false, errors: form.errors }); } - try { - const { - id, - name, - applicationType, - workflow, - rebuildWorkflow, - republishWorkflow, - description, - properties - } = form.data; - await DatabaseWrites.productDefinitions.update({ - where: { - Id: id - }, - data: { - TypeId: applicationType, - Name: name, - WorkflowId: workflow, - RebuildWorkflowId: rebuildWorkflow, - RepublishWorkflowId: republishWorkflow, - Description: description, - Properties: properties - } - }); - return { ok: true, form }; - } catch (e) { - if (e instanceof v.ValiError) return { form, ok: false, errors: e.issues }; - throw e; - } - // const Id = data.get('id'); - // const name = data.get('name'); - // const applicationType = data.get('applicationType'); - // const workflow = data.get('workflow'); - // const rebuildWorkflow = data.get('rebuildWorkflow'); - // const republishWorkflow = data.get('republishWorkflow'); - // const description = data.get('description'); - // const properties = data.get('properties'); + await DatabaseWrites.productDefinitions.update({ + where: { + Id: form.data.id + }, + data: { + TypeId: form.data.applicationType, + Name: form.data.name, + WorkflowId: form.data.workflow, + RebuildWorkflowId: form.data.rebuildWorkflow, + RepublishWorkflowId: form.data.republishWorkflow, + Description: form.data.description, + Properties: form.data.properties + } + }); + return { ok: true, form }; } } satisfies Actions; diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/product-definitions/new/+page.server.ts b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/product-definitions/new/+page.server.ts index 3ffb76880..ecd0001f3 100644 --- a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/product-definitions/new/+page.server.ts +++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/product-definitions/new/+page.server.ts @@ -30,31 +30,17 @@ export const actions = { if (!form.valid) { return fail(400, { form, ok: false, errors: form.errors }); } - try { - const { - name, - applicationType, - workflow, - rebuildWorkflow, - republishWorkflow, - description, - properties - } = form.data; - await DatabaseWrites.productDefinitions.create({ - data: { - Name: name, - TypeId: applicationType, - WorkflowId: workflow, - RebuildWorkflowId: rebuildWorkflow, - RepublishWorkflowId: republishWorkflow, - Description: description, - Properties: properties - } - }); - return { ok: true, form }; - } catch (e) { - if (e instanceof v.ValiError) return { form, ok: false, errors: e.issues }; - throw e; - } + await DatabaseWrites.productDefinitions.create({ + data: { + Name: form.data.name, + TypeId: form.data.applicationType, + WorkflowId: form.data.workflow, + RebuildWorkflowId: form.data.rebuildWorkflow, + RepublishWorkflowId: form.data.republishWorkflow, + Description: form.data.description, + Properties: form.data.properties + } + }); + return { ok: true, form }; } } satisfies Actions; diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/store-types/edit/+page.server.ts b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/store-types/edit/+page.server.ts index a50218c79..8ebc4a79c 100644 --- a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/store-types/edit/+page.server.ts +++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/store-types/edit/+page.server.ts @@ -35,26 +35,20 @@ export const load = (async ({ url }) => { }) satisfies PageServerLoad; export const actions = { - async edit({ cookies, request }) { + async edit({ request }) { const form = await superValidate(request, valibot(editSchema)); if (!form.valid) { return fail(400, { form, ok: false, errors: form.errors }); } - try { - const { id, name, description } = form.data; - await DatabaseWrites.storeTypes.update({ - where: { - Id: id - }, - data: { - Name: name, - Description: description - } - }); - return { ok: true, form }; - } catch (e) { - if (e instanceof v.ValiError) return { form, ok: false, errors: e.issues }; - throw e; - } + await DatabaseWrites.storeTypes.update({ + where: { + Id: form.data.id + }, + data: { + Name: form.data.name, + Description: form.data.description + } + }); + return { ok: true, form }; } } satisfies Actions; diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/store-types/new/+page.server.ts b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/store-types/new/+page.server.ts index 512f9b920..b029f62c3 100644 --- a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/store-types/new/+page.server.ts +++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/store-types/new/+page.server.ts @@ -16,23 +16,17 @@ export const load = (async ({ url }) => { }) satisfies PageServerLoad; export const actions = { - async new({ cookies, request }) { + async new({ request }) { const form = await superValidate(request, valibot(createSchema)); if (!form.valid) { return fail(400, { form, ok: false, errors: form.errors }); } - try { - const { name, description } = form.data; - await DatabaseWrites.storeTypes.create({ - data: { - Name: name, - Description: description - } - }); - return { ok: true, form }; - } catch (e) { - if (e instanceof v.ValiError) return { form, ok: false, errors: e.issues }; - throw e; - } + await DatabaseWrites.storeTypes.create({ + data: { + Name: form.data.name, + Description: form.data.description + } + }); + return { ok: true, form }; } } satisfies Actions; diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/stores/edit/+page.server.ts b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/stores/edit/+page.server.ts index 5d36b89a6..1c7f306ff 100644 --- a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/stores/edit/+page.server.ts +++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/stores/edit/+page.server.ts @@ -38,27 +38,21 @@ export const load = (async ({ url }) => { }) satisfies PageServerLoad; export const actions = { - async edit({ cookies, request }) { + async edit({ request }) { const form = await superValidate(request, valibot(editSchema)); if (!form.valid) { return fail(400, { form, ok: false, errors: form.errors }); } - try { - const { id, name, description, storeType } = form.data; - await DatabaseWrites.stores.update({ - where: { - Id: id - }, - data: { - Name: name, - StoreTypeId: storeType, - Description: description - } - }); - return { ok: true, form }; - } catch (e) { - if (e instanceof v.ValiError) return { form, ok: false, errors: e.issues }; - throw e; - } + await DatabaseWrites.stores.update({ + where: { + Id: form.data.id + }, + data: { + Name: form.data.name, + StoreTypeId: form.data.storeType, + Description: form.data.description + } + }); + return { ok: true, form }; } } satisfies Actions; diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/stores/new/+page.server.ts b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/stores/new/+page.server.ts index 56d61d38a..a3db7be7b 100644 --- a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/stores/new/+page.server.ts +++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/stores/new/+page.server.ts @@ -20,24 +20,18 @@ export const load = (async ({ url }) => { }) satisfies PageServerLoad; export const actions = { - async new({ cookies, request }) { + async new({ request }) { const form = await superValidate(request, valibot(createSchema)); if (!form.valid) { return fail(400, { form, ok: false, errors: form.errors }); } - try { - const { name, description, storeType } = form.data; - await DatabaseWrites.stores.create({ - data: { - Name: name, - Description: description, - StoreTypeId: storeType - } - }); - return { ok: true, form }; - } catch (e) { - if (e instanceof v.ValiError) return { form, ok: false, errors: e.issues }; - throw e; - } + await DatabaseWrites.stores.create({ + data: { + Name: form.data.name, + Description: form.data.description, + StoreTypeId: form.data.storeType + } + }); + return { ok: true, form }; } } satisfies Actions; diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/workflow-definitions/edit/+page.server.ts b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/workflow-definitions/edit/+page.server.ts index fbd712b3d..03bae2f39 100644 --- a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/workflow-definitions/edit/+page.server.ts +++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/workflow-definitions/edit/+page.server.ts @@ -5,8 +5,8 @@ import { DatabaseWrites, prisma } from 'sil.appbuilder.portal.common'; import { superValidate } from 'sveltekit-superforms'; import { valibot } from 'sveltekit-superforms/adapters'; import * as v from 'valibot'; -import type { Actions, PageServerLoad } from './$types'; import { workflowDefinitionSchemaBase } from '../common'; +import type { Actions, PageServerLoad } from './$types'; const editSchema = v.object({ id: idSchema, @@ -24,7 +24,7 @@ export const load = (async ({ url }) => { }); if (!data) return redirect(302, base + '/admin/settings/workflow-definitions'); const storeTypes = await prisma.storeTypes.findMany(); - const schemes = await prisma.workflowScheme.findMany({ select: { Code: true }}); + const schemes = await prisma.workflowScheme.findMany({ select: { Code: true } }); const form = await superValidate( { id: data.Id, @@ -45,46 +45,28 @@ export const load = (async ({ url }) => { }) satisfies PageServerLoad; export const actions = { - async edit({ cookies, request }) { + async edit({ request }) { const form = await superValidate(request, valibot(editSchema)); if (!form.valid) { return fail(400, { form, ok: false, errors: form.errors }); } - try { - const { - id, - name, - description, - properties, - enabled, - storeType, - workflowBusinessFlow, - workflowScheme, - workflowType, - options, - productType - } = form.data; - await DatabaseWrites.workflowDefinitions.update({ - where: { - Id: id - }, - data: { - Type: workflowType, - Name: name, - WorkflowScheme: workflowScheme, - WorkflowBusinessFlow: workflowBusinessFlow, - StoreTypeId: storeType, - Description: description, - Properties: properties, - Enabled: enabled, - ProductType: productType, - WorkflowOptions: options - } - }); - return { ok: true, form }; - } catch (e) { - if (e instanceof v.ValiError) return { form, ok: false, errors: e.issues }; - throw e; - } + await DatabaseWrites.workflowDefinitions.update({ + where: { + Id: form.data.id + }, + data: { + Type: form.data.workflowType, + Name: form.data.name, + WorkflowScheme: form.data.workflowScheme, + WorkflowBusinessFlow: form.data.workflowBusinessFlow, + StoreTypeId: form.data.storeType, + Description: form.data.description, + Properties: form.data.properties, + Enabled: form.data.enabled, + ProductType: form.data.productType, + WorkflowOptions: form.data.options + } + }); + return { ok: true, form }; } } satisfies Actions; diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/workflow-definitions/new/+page.server.ts b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/workflow-definitions/new/+page.server.ts index 03f289234..98afd7e99 100644 --- a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/workflow-definitions/new/+page.server.ts +++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/admin/settings/workflow-definitions/new/+page.server.ts @@ -2,9 +2,8 @@ import { fail } from '@sveltejs/kit'; import { DatabaseWrites, prisma } from 'sil.appbuilder.portal.common'; import { superValidate } from 'sveltekit-superforms'; import { valibot } from 'sveltekit-superforms/adapters'; -import * as v from 'valibot'; -import type { Actions, PageServerLoad } from './$types'; import { workflowDefinitionSchemaBase } from '../common'; +import type { Actions, PageServerLoad } from './$types'; const createSchema = workflowDefinitionSchemaBase; @@ -12,49 +11,32 @@ export const load = (async ({ url }) => { const form = await superValidate(valibot(createSchema)); const options = { storeType: await prisma.storeTypes.findMany(), - schemes: await prisma.workflowScheme.findMany({ select: { Code: true }}) + schemes: await prisma.workflowScheme.findMany({ select: { Code: true } }) }; return { form, options }; }) satisfies PageServerLoad; export const actions = { - async new({ cookies, request }) { + async new({ request }) { const form = await superValidate(request, valibot(createSchema)); if (!form.valid) { return fail(400, { form, ok: false, errors: form.errors }); } - try { - const { - name, - description, - properties, - enabled, - storeType, - workflowBusinessFlow, - workflowScheme, - workflowType, - productType, - options - } = form.data; - await DatabaseWrites.workflowDefinitions.create({ - data: { - Name: name, - Description: description, - Properties: properties, - Enabled: enabled, - StoreTypeId: storeType, - WorkflowBusinessFlow: workflowBusinessFlow, - WorkflowScheme: workflowScheme, - Type: workflowType, - ProductType: productType, - WorkflowOptions: options - } - }); - return { ok: true, form }; - } catch (e) { - if (e instanceof v.ValiError) return { form, ok: false, errors: e.issues }; - throw e; - } + await DatabaseWrites.workflowDefinitions.create({ + data: { + Name: form.data.name, + Description: form.data.description, + Properties: form.data.properties, + Enabled: form.data.enabled, + StoreTypeId: form.data.storeType, + WorkflowBusinessFlow: form.data.workflowBusinessFlow, + WorkflowScheme: form.data.workflowScheme, + Type: form.data.workflowType, + ProductType: form.data.productType, + WorkflowOptions: form.data.options + } + }); + return { ok: true, form }; } } satisfies Actions; diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/organizations/[id]/settings/groups/+page.server.ts b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/organizations/[id]/settings/groups/+page.server.ts index 5275a8fe5..0ee35af5c 100644 --- a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/organizations/[id]/settings/groups/+page.server.ts +++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/organizations/[id]/settings/groups/+page.server.ts @@ -35,24 +35,12 @@ export const actions = { async addGroup(event) { const form = await superValidate(event.request, valibot(addGroupSchema)); if (!form.valid) return fail(400, { form, ok: false, errors: form.errors }); - try { - const { id, name, abbreviation } = form.data; - await DatabaseWrites.groups.createGroup(name, abbreviation, id); - return { form, ok: true }; - } catch (e) { - if (e instanceof v.ValiError) return { form, ok: false, errors: e.issues }; - throw e; - } + await DatabaseWrites.groups.createGroup(form.data.name, form.data.abbreviation, form.data.id); + return { form, ok: true }; }, async deleteGroup(event) { const form = await superValidate(event.request, valibot(deleteGroupSchema)); if (!form.valid) return fail(400, { form, ok: false, errors: form.errors }); - try { - const { id } = form.data; - return { form, ok: await DatabaseWrites.groups.deleteGroup(id) }; - } catch (e) { - if (e instanceof v.ValiError) return { form, ok: false, errors: e.issues }; - throw e; - } + return { form, ok: await DatabaseWrites.groups.deleteGroup(form.data.id) }; } } satisfies Actions; diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/organizations/[id]/settings/info/+page.server.ts b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/organizations/[id]/settings/info/+page.server.ts index 0ed93fbcf..818d580bf 100644 --- a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/organizations/[id]/settings/info/+page.server.ts +++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/organizations/[id]/settings/info/+page.server.ts @@ -35,22 +35,15 @@ export const actions = { async default(event) { const form = await superValidate(event.request, valibot(editInfoSchema)); if (!form.valid) return fail(400, { form, ok: false, errors: form.errors }); - try { - const { id, name, logoUrl } = form.data; - await DatabaseWrites.organizations.update({ - where: { - Id: id - }, - data: { - Name: name, - LogoUrl: logoUrl - } - }); - return { form, ok: true }; - } catch (e) { - if (e instanceof v.ValiError) return { form, ok: false, errors: e.issues }; - throw e; - } + await DatabaseWrites.organizations.update({ + where: { + Id: form.data.id + }, + data: { + Name: form.data.name, + LogoUrl: form.data.logoUrl + } + }); return { form, ok: true }; } } satisfies Actions; diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/organizations/[id]/settings/infrastructure/+page.server.ts b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/organizations/[id]/settings/infrastructure/+page.server.ts index a9100d551..4a3a77fbf 100644 --- a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/organizations/[id]/settings/infrastructure/+page.server.ts +++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/organizations/[id]/settings/infrastructure/+page.server.ts @@ -37,22 +37,16 @@ export const actions = { async default(event) { const form = await superValidate(event.request, valibot(infrastructureSchema)); if (!form.valid) return fail(400, { form, ok: false, errors: form.errors }); - try { - const { id, buildEngineApiAccessToken, buildEngineUrl, useDefaultBuildEngine } = form.data; - await DatabaseWrites.organizations.update({ - where: { - Id: id - }, - data: { - BuildEngineApiAccessToken: buildEngineApiAccessToken, - BuildEngineUrl: buildEngineUrl, - UseDefaultBuildEngine: useDefaultBuildEngine - } - }); - return { form, ok: true }; - } catch (e) { - if (e instanceof v.ValiError) return { form, ok: false, errors: e.issues }; - throw e; - } + await DatabaseWrites.organizations.update({ + where: { + Id: form.data.id + }, + data: { + BuildEngineApiAccessToken: form.data.buildEngineApiAccessToken, + BuildEngineUrl: form.data.buildEngineUrl, + UseDefaultBuildEngine: form.data.useDefaultBuildEngine + } + }); + return { form, ok: true }; } } satisfies Actions; diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/organizations/[id]/settings/products/+page.server.ts b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/organizations/[id]/settings/products/+page.server.ts index 35761f701..18932bba1 100644 --- a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/organizations/[id]/settings/products/+page.server.ts +++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/organizations/[id]/settings/products/+page.server.ts @@ -51,24 +51,18 @@ export const actions = { async default(event) { const form = await superValidate(event.request, valibot(editProductsSchema)); if (!form.valid) return fail(400, { form, ok: false, errors: form.errors }); - try { - const { id, publicByDefault, products } = form.data; - await DatabaseWrites.organizationProductDefinitions.updateOrganizationProductDefinitions( - id, - products.filter((p) => p.enabled).map((p) => p.productId) - ); - await DatabaseWrites.organizations.update({ - where: { - Id: id - }, - data: { - PublicByDefault: publicByDefault - } - }); - return { ok: true, form }; - } catch (e) { - if (e instanceof v.ValiError) return { form, ok: false, errors: e.issues }; - throw e; - } + await DatabaseWrites.organizationProductDefinitions.updateOrganizationProductDefinitions( + form.data.id, + form.data.products.filter((p) => p.enabled).map((p) => p.productId) + ); + await DatabaseWrites.organizations.update({ + where: { + Id: form.data.id + }, + data: { + PublicByDefault: form.data.publicByDefault + } + }); + return { ok: true, form }; } } satisfies Actions; diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/organizations/[id]/settings/stores/+page.server.ts b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/organizations/[id]/settings/stores/+page.server.ts index 020334752..248382977 100644 --- a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/organizations/[id]/settings/stores/+page.server.ts +++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/organizations/[id]/settings/stores/+page.server.ts @@ -49,16 +49,10 @@ export const actions = { async default(event) { const form = await superValidate(event.request, valibot(editStoresSchema)); if (!form.valid) return fail(400, { form, ok: false, errors: form.errors }); - try { - const { id, stores } = form.data; - await DatabaseWrites.organizationStores.updateOrganizationStores( - id, - stores.filter((s) => s.enabled).map((s) => s.storeId) - ); - return { ok: true, form }; - } catch (e) { - if (e instanceof v.ValiError) return { form, ok: false, errors: e.issues }; - throw e; - } + await DatabaseWrites.organizationStores.updateOrganizationStores( + form.data.id, + form.data.stores.filter((s) => s.enabled).map((s) => s.storeId) + ); + return { ok: true, form }; } } satisfies Actions; diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/projects/import/[id=idNumber]/+page.server.ts b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/projects/import/[id=idNumber]/+page.server.ts index 50282474a..771030537 100644 --- a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/projects/import/[id=idNumber]/+page.server.ts +++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/projects/import/[id=idNumber]/+page.server.ts @@ -92,123 +92,116 @@ export const actions: Actions = { }); if (!organization) return error(404); - try { - const errors: { - path: string; - messages: string[]; - }[] = []; - - await Promise.all( - form.data.json.Products.map(async (p, i) => { - const pdi = ( - await prisma.productDefinitions.findFirst({ - where: { - Name: p.Name, - OrganizationProductDefinitions: { - some: { - OrganizationId: organizationId - } + const errors: { + path: string; + messages: string[]; + }[] = []; + + await Promise.all( + form.data.json.Products.map(async (p, i) => { + const pdi = ( + await prisma.productDefinitions.findFirst({ + where: { + Name: p.Name, + OrganizationProductDefinitions: { + some: { + OrganizationId: organizationId } - }, - select: { - Id: true } - }) - )?.Id; - - if (pdi === undefined) { - // TODO: better errors - errors.push({ - path: `json.Products[${i}].Name`, - messages: [ - `Could not find ProductDefinition: "${p.Name}" for Organization: ${organization.Name}` - ] - }); - } + }, + select: { + Id: true + } + }) + )?.Id; + + if (pdi === undefined) { + // TODO: better errors + errors.push({ + path: `json.Products[${i}].Name`, + messages: [ + `Could not find ProductDefinition: "${p.Name}" for Organization: ${organization.Name}` + ] + }); + } - const si = ( - await prisma.stores.findFirst({ - where: { - Name: p.Store, - OrganizationStores: { - some: { - OrganizationId: organizationId - } + const si = ( + await prisma.stores.findFirst({ + where: { + Name: p.Store, + OrganizationStores: { + some: { + OrganizationId: organizationId } - }, - select: { - Id: true } - }) - )?.Id; - - if (si === undefined) { - // TODO: better errors - errors.push({ - path: `json.Products[${i}].Store`, - messages: [ - `Could not find Store: "${p.Store}" for Organization: ${organization.Name}` - ] - }); - } + }, + select: { + Id: true + } + }) + )?.Id; + + if (si === undefined) { + // TODO: better errors + errors.push({ + path: `json.Products[${i}].Store`, + messages: [`Could not find Store: "${p.Store}" for Organization: ${organization.Name}`] + }); + } + return { + ProductDefinitionId: pdi, + StoreId: si + }; + }) + ); + + if (!errors.length) { + const imp = await DatabaseWrites.projectImports.create({ + data: { + ImportData: JSON.stringify(form.data.json), + TypeId: form.data.type, + OwnerId: session.user.userId, + GroupId: form.data.group, + OrganizationId: organizationId + }, + select: { + Id: true + } + }); + const projects = await DatabaseWrites.projects.createMany( + form.data.json.Projects.map((pj) => { return { - ProductDefinitionId: pdi, - StoreId: si + OrganizationId: organizationId, + Name: pj.Name, + GroupId: form.data.group, + OwnerId: session.user.userId, + Language: pj.Language, + TypeId: form.data.type, + Description: pj.Description ?? '', + IsPublic: pj.IsPublic, + ImportId: imp.Id }; }) ); - if (!errors.length) { - const imp = await DatabaseWrites.projectImports.create({ - data: { - ImportData: JSON.stringify(form.data.json), - TypeId: form.data.type, - OwnerId: session.user.userId, - GroupId: form.data.group, - OrganizationId: organizationId - }, - select: { - Id: true - } - }); - const projects = await DatabaseWrites.projects.createMany( - form.data.json.Projects.map((pj) => { - return { - OrganizationId: organizationId, - Name: pj.Name, - GroupId: form.data.group, - OwnerId: session.user.userId, - Language: pj.Language, - TypeId: form.data.type, - Description: pj.Description ?? '', - IsPublic: pj.IsPublic, - ImportId: imp.Id - }; - }) + if (projects) { + // Create products + await Queues.Miscellaneous.addBulk( + projects.map((p) => ({ + name: `Create Project #${p}`, + data: { + type: BullMQ.JobType.Project_Create, + projectId: p + } + })) ); - - if (projects) { - // Create products - await Queues.Miscellaneous.addBulk( - projects.map((p) => ({ - name: `Create Project #${p}`, - data: { - type: BullMQ.JobType.Project_Create, - projectId: p - } - })) - ); - } - } - - if (errors.length) { - return fail(400, { form, ok: false, errors }); } + } - return redirect(302, `/projects/own/${organizationId}`); - } catch (e) { - if (e instanceof v.ValiError) return { form, ok: false, errors: e.issues }; - throw e; + if (errors.length) { + return fail(400, { form, ok: false, errors }); } + + return redirect(302, `/projects/own/${organizationId}`); } }; diff --git a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/users/invite/+page.server.ts b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/users/invite/+page.server.ts index 26ca7ca0b..844453f44 100644 --- a/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/users/invite/+page.server.ts +++ b/source/SIL.AppBuilder.Portal/src/routes/(authenticated)/users/invite/+page.server.ts @@ -52,22 +52,16 @@ export const actions = { ) ) return fail(401); - try { - const { email, organizationId, roles, groups } = form.data; - const inviteToken = await DatabaseWrites.organizationMemberships.createOrganizationInvite( - email, - organizationId, - user.user.userId, - roles, - groups - ); - const inviteLink = `${url.origin}/invitations/organization-membership?t=${inviteToken}`; - // TODO: send email- log instead - console.log(inviteLink, email); - return { ok: true, form }; - } catch (e) { - if (e instanceof v.ValiError) return { form, ok: false, errors: e.issues }; - throw e; - } + const inviteToken = await DatabaseWrites.organizationMemberships.createOrganizationInvite( + form.data.email, + form.data.organizationId, + user.user.userId, + form.data.roles, + form.data.groups + ); + const inviteLink = `${url.origin}/invitations/organization-membership?t=${inviteToken}`; + // TODO: send email- log instead + console.log(inviteLink, form.data.email); + return { ok: true, form }; } } satisfies Actions;