Skip to content
Merged

2.1.1 #264

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions apps/api/email/registration-successful.mjml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,13 @@
>Hier Foto hochladen</a
>
</mj-text>

<mj-text
font-size="16px"
line-height="1.5"
>
Du kannst den Fotoupload beliebig oft machen, bis der Meldeschluss erreicht ist.
</mj-text>
{{/if}}

<mj-text
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ export const anmeldungAccessTokenValidateProcedure = definePublicQueryProcedure(
anmeldungId: z.number().int(),
accessToken: z.string().uuid(),
}),
handler: ({ input: { unterveranstaltungId, anmeldungId, accessToken } }) =>
prisma.anmeldung.findFirst({
handler: ({ input: { unterveranstaltungId, anmeldungId, accessToken } }) => {
return prisma.anmeldung.findFirst({
where: {
unterveranstaltungId,
id: anmeldungId,
Expand All @@ -23,6 +23,7 @@ export const anmeldungAccessTokenValidateProcedure = definePublicQueryProcedure(
id: true,
firstname: true,
lastname: true,
photoId: true,
},
},
unterveranstaltung: {
Expand All @@ -40,5 +41,6 @@ export const anmeldungAccessTokenValidateProcedure = definePublicQueryProcedure(
},
},
},
}),
})
},
})
41 changes: 36 additions & 5 deletions apps/api/src/services/anmeldung/anmeldungFotoUpload.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ import z from 'zod'
import prisma from '../../prisma.js'

import { definePublicMutateProcedure } from '../../types/defineProcedure.js'
import { TRPCError } from '@trpc/server'
import type { Prisma } from '@prisma/client'

export const anmeldungFotoUploadProcedure = definePublicMutateProcedure({
key: 'anmeldungFotoUpload',
Expand All @@ -13,14 +15,43 @@ export const anmeldungFotoUploadProcedure = definePublicMutateProcedure({
fileId: z.string(),
}),
handler: async ({ input: { unterveranstaltungId, anmeldungId, accessToken, fileId } }) => {
await prisma.anmeldung.update({
const unterveranstaltung = await prisma.unterveranstaltung.findFirst({
where: {
unterveranstaltungId,
id: anmeldungId,
accessToken,
id: unterveranstaltungId,
meldeschluss: {
gt: new Date(),
},
},
})
if (unterveranstaltung === null) {
throw new TRPCError({
code: 'FORBIDDEN',
message: 'Der Meldeschluss ist bereits erreicht!',
})
}

const where: Prisma.AnmeldungWhereUniqueInput = {
unterveranstaltungId,
id: anmeldungId,
accessToken,
}
const anmeldung = await prisma.anmeldung.findUniqueOrThrow({
where,
select: {
person: {
select: {
photoId: true,
},
},
},
})
if (anmeldung.person.photoId !== null) {
// TODO: Delete old file
}

await prisma.anmeldung.update({
where,
data: {
accessToken: null,
person: {
update: {
photoId: fileId,
Expand Down
8 changes: 4 additions & 4 deletions apps/api/src/services/customFields/customFields.router.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@ import { customFieldsList } from './customFieldsList.js'
import { customFieldsTemplates } from './customFieldsTemplates.js'
import { customFieldsUnterveranstaltungCreate } from './customFieldsUnterveranstaltungCreate.js'
import { customFieldsVeranstaltungCreate } from './customFieldsVeranstaltungCreate.js'
import { customFieldsVeranstaltungDelete } from './customFieldsVeranstaltungDelete.js'
import { customFieldsVeranstaltungUpdate } from './customFieldsVeranstaltungUpdate.js'
import { customFieldsDelete } from './customFieldsDelete.js'
import { customFieldsUpdate } from './customFieldsUpdate.js'
import { customFieldValuesUpdate } from './customFieldValuesUpdate.js'
// Import Routes here - do not delete this line

export const customFieldsRouter = mergeRouters(
customFieldsList.router,
customFieldsGet.router,
customFieldsVeranstaltungCreate.router,
customFieldsVeranstaltungUpdate.router,
customFieldsVeranstaltungDelete.router,
customFieldsUpdate.router,
customFieldsDelete.router,
customFieldsUnterveranstaltungCreate.router,
customFieldValuesUpdate.router,
customFieldsTemplates.router
Expand Down
66 changes: 66 additions & 0 deletions apps/api/src/services/customFields/customFieldsDelete.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
import { Role } from '@prisma/client'
import { TRPCError } from '@trpc/server'
import { z } from 'zod'

import prisma from '../../prisma.js'
import { defineProtectedMutateProcedure } from '../../types/defineProcedure.js'

export const customFieldsDelete = defineProtectedMutateProcedure({
key: 'delete',
roleIds: [Role.ADMIN, Role.GLIEDERUNG_ADMIN],
inputSchema: z.strictObject({
veranstaltungId: z.number(),
fieldId: z.number(),
}),
async handler({ ctx, input }) {
if (ctx.account.role === Role.GLIEDERUNG_ADMIN) {
const { gliederungId: gliederungIdActor } = await prisma.person.findFirstOrThrow({
where: {
account: {
id: ctx.accountId,
},
},
select: {
gliederungId: true,
},
})
const customField = await prisma.customField.findUniqueOrThrow({
where: {
id: input.fieldId,
},
select: {
unterveranstaltung: {
select: {
gliederungId: true,
},
},
},
})
if (gliederungIdActor !== customField.unterveranstaltung?.gliederungId) {
throw new TRPCError({
code: 'NOT_FOUND',
})
}
}

const field = await prisma.customField.findUnique({
where: {
id: input.fieldId,
veranstaltungId: input.veranstaltungId,
},
})

if (field === null) {
throw new TRPCError({
code: 'NOT_FOUND',
})
}

await prisma.customField.delete({
where: {
id: input.fieldId,
veranstaltungId: input.veranstaltungId,
},
})
},
})
57 changes: 57 additions & 0 deletions apps/api/src/services/customFields/customFieldsUpdate.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
import { Role } from '@prisma/client'
import { z } from 'zod'

import prisma from '../../prisma.js'
import { defineProtectedMutateProcedure } from '../../types/defineProcedure.js'

import { TRPCError } from '@trpc/server'
import { customFieldSchema } from './schema/customField.schema.js'

export const customFieldsUpdate = defineProtectedMutateProcedure({
key: 'update',
roleIds: [Role.ADMIN, Role.GLIEDERUNG_ADMIN],
inputSchema: z.strictObject({
fieldId: z.number(),
data: customFieldSchema,
}),
async handler({ ctx, input }) {
if (ctx.account.role === Role.GLIEDERUNG_ADMIN) {
const { gliederungId: gliederungIdActor } = await prisma.person.findFirstOrThrow({
where: {
account: {
id: ctx.accountId,
},
},
select: {
gliederungId: true,
},
})
const customField = await prisma.customField.findUniqueOrThrow({
where: {
id: input.fieldId,
},
select: {
unterveranstaltung: {
select: {
gliederungId: true,
},
},
},
})
if (gliederungIdActor !== customField.unterveranstaltung?.gliederungId) {
throw new TRPCError({
code: 'NOT_FOUND',
})
}
}

return await prisma.customField.update({
where: {
id: input.fieldId,
},
data: {
...input.data,
},
})
},
})

This file was deleted.

This file was deleted.

6 changes: 2 additions & 4 deletions apps/api/src/services/person/person.router.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,9 @@
import { mergeRouters } from '../../trpc.js'
import { personAuthenticatedGetProcedure } from './personAuthenticatedGet.js'
import { personGetProcedure } from './personGet.js'
import { personGliederungPatchProcedure } from './personGliederungPatch.js'
import { personCountProcedure, personListProcedure } from './personList.js'
import { personVerwaltungCreateProcedure } from './personVerwaltungCreate.js'
import { personVerwaltungPatchProcedure } from './personVerwaltungPatch.js'
import { personVerwaltungPatchProcedure } from './personPatch.js'
import { personVerwaltungRemoveProcedure } from './personVerwaltungRemove.js'
// Import Routes here - do not delete this line

Expand All @@ -16,7 +15,6 @@ export const personRouter = mergeRouters(
personCountProcedure.router,
personGetProcedure.router,
personVerwaltungPatchProcedure.router,
personVerwaltungRemoveProcedure.router,
personGliederungPatchProcedure.router
personVerwaltungRemoveProcedure.router
// Add Routes here - do not delete this line
)
2 changes: 0 additions & 2 deletions apps/api/src/services/person/personGet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ export const personGetProcedure = defineProtectedQueryProcedure({
id: input.id,
}

console.log(where)

return prisma.person.findUniqueOrThrow({
where,
select: {
Expand Down
33 changes: 0 additions & 33 deletions apps/api/src/services/person/personGliederungPatch.ts

This file was deleted.

Loading
Loading