updated register and createParticipant esp: job

This commit is contained in:
Laurin
2022-05-29 03:12:32 +02:00
parent 21deb2259a
commit f560095731
2 changed files with 38 additions and 14 deletions
+3 -8
View File
@@ -12,13 +12,9 @@ const ParticipantBody = z.object({
firstName: z.string(),
lastName: z.string(),
groupId: z.string(),
job: z.enum(["TEAMLEADER", "MEMBER"]),
//job: z.enum(["TEAMLEADER", "MEMBER"]),
});
const updateParticipantBody = ParticipantBody.omit({
job: true,
}).partial();
const returnedParticipant = {
pid: true,
firstName: true,
@@ -45,7 +41,6 @@ export const createParticipant = async (req: Request<{ pid: string}>, res: Respo
firstname: DataType.STRING,
lastName: DataType.STRING,
groupId: DataType.UUID,
job: DataType.JOB,
})
);
}
@@ -58,7 +53,7 @@ export const createParticipant = async (req: Request<{ pid: string}>, res: Respo
data: {
firstName: body.firstName,
lastName: body.lastName,
relevance: body.job,
relevance: "MEMBER",
group: { connect: { pid: body.groupId } },
team: { connect: { pid } },
},
@@ -80,7 +75,7 @@ export const createParticipant = async (req: Request<{ pid: string}>, res: Respo
export const updateParticipant = async (req: Request<{ pid: string }>, res: Response) => {
//insert TeamleaderAuth
const result = updateParticipantBody.safeParse(req.body);
const result = ParticipantBody.safeParse(req.body);
if(result.success === false){
return res.status(400).json(
+35 -6
View File
@@ -6,31 +6,60 @@ import { verificationMail } from "../lib/mail";
import { DataType, generateInvalidBodyError } from "./common";
import { generateTeamleaderJWT } from "../Middleware/auth/teamleaderAuth";
import { createRolesForTeam } from "./role.controller";
import { z } from "zod";
const TeamBody = z.object({
teamName: z.string(),
leaderEmail: z.string(),
disciplineId: z.string(),
partFirstName: z.string(),
partLastName: z.string(),
partGroupId: z.string(),
})
interface CreateTeamBody {
name: string;
teamName: string;
leaderEmail: string;
disciplineId: string;
partFirstName: string;
partLastName: string;
partGroupId: string;
}
export const register = async (req: Request<{}, {}, CreateTeamBody>, res: Response) => {
if (req.body.name == null || req.body.disciplineId == null || req.body.leaderEmail == null) {
const result = TeamBody.safeParse(req.body);
if (result.success === false) {
res.status(400).json(
generateInvalidBodyError({
name: DataType.STRING,
teamName: DataType.STRING,
leaderEmail: DataType.STRING,
disciplineId: DataType.STRING,
partFirstName: DataType.STRING,
partLastName: DataType.STRING,
partGroupId: DataType.STRING,
})
);
return;
}
const body = result.data;
const team = await prisma.team.create({
data: {
leaderEmail: req.body.leaderEmail,
name: req.body.name,
leaderEmail: body.leaderEmail,
name: body.teamName,
roles: undefined,
discipline: { connect: { pid: req.body.disciplineId } },
discipline: { connect: { pid: body.disciplineId } },
participants: {
create: {
firstName: body.partFirstName,
lastName: body.partLastName,
relevance: "TEAMLEADER",
group: { connect: { pid: body.partGroupId } },
}
}
},
select: {
pid: true,