@@ -4,13 +4,11 @@ import prisma from '@/core/prisma';
4
4
import { createEvent } from '@/mutations/events' ;
5
5
import { privateCloudRequestDetailInclude } from '@/queries/private-cloud-requests' ;
6
6
import { PrivateCloudRequestDetail } from '@/types/private-cloud' ;
7
- import { PrivateCloudEditRequestBody } from '@/validation-schemas/private-cloud' ;
7
+ import { PrivateCloudRequestDecisionBody } from '@/validation-schemas/private-cloud' ;
8
8
9
9
export default async function makeRequestDecision (
10
10
id : string ,
11
- decision : DecisionStatus ,
12
- decisionComment : string | undefined ,
13
- formData : PrivateCloudEditRequestBody ,
11
+ formData : PrivateCloudRequestDecisionBody ,
14
12
session : Session ,
15
13
) {
16
14
const request = await prisma . privateCloudRequest . findUnique ( {
@@ -29,6 +27,9 @@ export default async function makeRequestDecision(
29
27
return null ;
30
28
}
31
29
30
+ const { decision, decisionComment, quotaContactName, quotaContactEmail, quotaJustification, ...validFormData } =
31
+ formData ;
32
+
32
33
const dataToUpdate : Prisma . PrivateCloudRequestUpdateInput = {
33
34
active : decision === DecisionStatus . APPROVED ,
34
35
decisionStatus : decision ,
@@ -41,33 +42,33 @@ export default async function makeRequestDecision(
41
42
if ( request . type !== RequestType . DELETE ) {
42
43
dataToUpdate . decisionData = {
43
44
update : {
44
- ...formData ,
45
+ ...validFormData ,
45
46
status : ProjectStatus . ACTIVE ,
46
47
licencePlate : request . licencePlate ,
47
48
cluster : request . project ?. cluster ?? request . decisionData . cluster ,
48
49
projectOwner : {
49
50
connectOrCreate : {
50
51
where : {
51
- email : formData . projectOwner . email ,
52
+ email : validFormData . projectOwner . email ,
52
53
} ,
53
- create : formData . projectOwner ,
54
+ create : validFormData . projectOwner ,
54
55
} ,
55
56
} ,
56
57
primaryTechnicalLead : {
57
58
connectOrCreate : {
58
59
where : {
59
- email : formData . primaryTechnicalLead . email ,
60
+ email : validFormData . primaryTechnicalLead . email ,
60
61
} ,
61
- create : formData . primaryTechnicalLead ,
62
+ create : validFormData . primaryTechnicalLead ,
62
63
} ,
63
64
} ,
64
- secondaryTechnicalLead : formData . secondaryTechnicalLead
65
+ secondaryTechnicalLead : validFormData . secondaryTechnicalLead
65
66
? {
66
67
connectOrCreate : {
67
68
where : {
68
- email : formData . secondaryTechnicalLead . email ,
69
+ email : validFormData . secondaryTechnicalLead . email ,
69
70
} ,
70
- create : formData . secondaryTechnicalLead ,
71
+ create : validFormData . secondaryTechnicalLead ,
71
72
} ,
72
73
}
73
74
: undefined ,
0 commit comments