Skip to content

Commit d798de7

Browse files
authored
Merge pull request #3785 from bcgov/fix/3782
fix(3782): resolve the issue approving edit requests
2 parents df1f799 + 9e1da00 commit d798de7

File tree

2 files changed

+14
-15
lines changed

2 files changed

+14
-15
lines changed

app/app/api/private-cloud/requests/[id]/decision/route.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,7 @@ const apiHandler = createApiHandler({
2020
});
2121
export const POST = apiHandler(async ({ pathParams, body, session }) => {
2222
const { id } = pathParams;
23-
const { decision, decisionComment, ...formData } = body;
24-
25-
const request = await makeRequestDecision(id, decision, decisionComment, formData, session);
23+
const request = await makeRequestDecision(id, body, session);
2624

2725
if (!request || !request.decisionData) {
2826
return BadRequestResponse(`Error creating decision request for ${id}`);

app/request-actions/private-cloud/decision-request.ts

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,11 @@ import prisma from '@/core/prisma';
44
import { createEvent } from '@/mutations/events';
55
import { privateCloudRequestDetailInclude } from '@/queries/private-cloud-requests';
66
import { PrivateCloudRequestDetail } from '@/types/private-cloud';
7-
import { PrivateCloudEditRequestBody } from '@/validation-schemas/private-cloud';
7+
import { PrivateCloudRequestDecisionBody } from '@/validation-schemas/private-cloud';
88

99
export default async function makeRequestDecision(
1010
id: string,
11-
decision: DecisionStatus,
12-
decisionComment: string | undefined,
13-
formData: PrivateCloudEditRequestBody,
11+
formData: PrivateCloudRequestDecisionBody,
1412
session: Session,
1513
) {
1614
const request = await prisma.privateCloudRequest.findUnique({
@@ -29,6 +27,9 @@ export default async function makeRequestDecision(
2927
return null;
3028
}
3129

30+
const { decision, decisionComment, quotaContactName, quotaContactEmail, quotaJustification, ...validFormData } =
31+
formData;
32+
3233
const dataToUpdate: Prisma.PrivateCloudRequestUpdateInput = {
3334
active: decision === DecisionStatus.APPROVED,
3435
decisionStatus: decision,
@@ -41,33 +42,33 @@ export default async function makeRequestDecision(
4142
if (request.type !== RequestType.DELETE) {
4243
dataToUpdate.decisionData = {
4344
update: {
44-
...formData,
45+
...validFormData,
4546
status: ProjectStatus.ACTIVE,
4647
licencePlate: request.licencePlate,
4748
cluster: request.project?.cluster ?? request.decisionData.cluster,
4849
projectOwner: {
4950
connectOrCreate: {
5051
where: {
51-
email: formData.projectOwner.email,
52+
email: validFormData.projectOwner.email,
5253
},
53-
create: formData.projectOwner,
54+
create: validFormData.projectOwner,
5455
},
5556
},
5657
primaryTechnicalLead: {
5758
connectOrCreate: {
5859
where: {
59-
email: formData.primaryTechnicalLead.email,
60+
email: validFormData.primaryTechnicalLead.email,
6061
},
61-
create: formData.primaryTechnicalLead,
62+
create: validFormData.primaryTechnicalLead,
6263
},
6364
},
64-
secondaryTechnicalLead: formData.secondaryTechnicalLead
65+
secondaryTechnicalLead: validFormData.secondaryTechnicalLead
6566
? {
6667
connectOrCreate: {
6768
where: {
68-
email: formData.secondaryTechnicalLead.email,
69+
email: validFormData.secondaryTechnicalLead.email,
6970
},
70-
create: formData.secondaryTechnicalLead,
71+
create: validFormData.secondaryTechnicalLead,
7172
},
7273
}
7374
: undefined,

0 commit comments

Comments
 (0)