11import { Design_Review_Status , User } from '@prisma/client' ;
2- import { DesignReview , WbsNumber , isAdmin , isLeadership , isNotLeadership } from 'shared' ;
2+ import { DesignReview , TeamType , WbsNumber , isAdmin , isLeadership , isNotLeadership } from 'shared' ;
33import prisma from '../prisma/prisma' ;
44import {
55 NotFoundException ,
@@ -27,6 +27,11 @@ export default class DesignReviewsService {
2727 return designReviews . map ( designReviewTransformer ) ;
2828 }
2929
30+ static async getAllTeamTypes ( ) : Promise < TeamType [ ] > {
31+ const teamTypes = await prisma . teamType . findMany ( ) ;
32+ return teamTypes ;
33+ }
34+
3035 /**
3136 * Deletes a design review
3237 * @param submitter the user who deleted the design review
@@ -55,34 +60,24 @@ export default class DesignReviewsService {
5560 }
5661
5762 /**
58- * Creates a design review
59- * @param submitter user who submitted the design review
63+ * Create a design review
64+ * @param submitter User submitting the design review
6065 * @param dateScheduled when the design review is scheduled for
61- * @param teamTypeId team type id of the design review
62- * @param requiredMemberIds ids of the required members to attend the design review
63- * @param optionalMemberIds ids of the optional members to attend the design reivew
64- * @param isOnline if design review is online
65- * @param isInPerson if design review is in person
66- * @param docTemplateLink link to the doc template
67- * @param wbsNum wbs number for the design review
68- * @param meetingTimes the meeting times for the design review
69- * @param zoomLink link for the zoom if design review is online
70- * @param location location of the design review if in person
71- * @returns a design review
66+ * @param teamTypeId team type id
67+ * @param requiredMemberIds ids of members who are required to go
68+ * @param optionalMemberIds ids of members who do not have to go
69+ * @param wbsNum wbs num related to the design review
70+ * @param meetingTimes meeting times of the design review
71+ * @returns a new design review
7272 */
7373 static async createDesignReview (
7474 submitter : User ,
7575 dateScheduled : Date ,
7676 teamTypeId : string ,
7777 requiredMemberIds : number [ ] ,
7878 optionalMemberIds : number [ ] ,
79- isOnline : boolean ,
80- isInPerson : boolean ,
81- docTemplateLink : string ,
8279 wbsNum : WbsNumber ,
83- meetingTimes : number [ ] ,
84- zoomLink ?: string ,
85- location ?: string
80+ meetingTimes : number [ ]
8681 ) : Promise < DesignReview > {
8782 if ( ! isLeadership ( submitter . role ) ) throw new AccessDeniedException ( 'create design review' ) ;
8883
@@ -125,14 +120,6 @@ export default class DesignReviewsService {
125120 }
126121 }
127122
128- if ( isOnline && ! zoomLink ) {
129- throw new HttpException ( 400 , 'If the design review is online then there needs to be a zoom link' ) ;
130- }
131-
132- if ( isInPerson && ! location ) {
133- throw new HttpException ( 400 , 'If the design review is in person then there needs to be a location' ) ;
134- }
135-
136123 if ( dateScheduled . valueOf ( ) < new Date ( ) . valueOf ( ) ) {
137124 throw new HttpException ( 400 , 'Design review cannot be scheduled for a past day' ) ;
138125 }
@@ -142,11 +129,8 @@ export default class DesignReviewsService {
142129 dateScheduled,
143130 dateCreated : new Date ( ) ,
144131 status : Design_Review_Status . UNCONFIRMED ,
145- location,
146- isOnline,
147- isInPerson,
148- zoomLink,
149- docTemplateLink,
132+ isOnline : false ,
133+ isInPerson : false ,
150134 userCreated : { connect : { userId : submitter . userId } } ,
151135 teamType : { connect : { teamTypeId : teamType . teamTypeId } } ,
152136 requiredMembers : { connect : requiredMemberIds . map ( ( memberId ) => ( { userId : memberId } ) ) } ,
0 commit comments