@@ -10,7 +10,8 @@ import {
1010 WorkPackageStage ,
1111 BudgetChangeRequest ,
1212 isWorkPackageWbs ,
13- LeadershipChangeRequest
13+ LeadershipChangeRequest ,
14+ ChangeRequestStatus
1415} from 'shared' ;
1516import { wbsNumOf } from '../utils/utils.js' ;
1617import { calculateChangeRequestStatus , convertCRScopeWhyType } from '../utils/change-requests.utils.js' ;
@@ -25,10 +26,12 @@ import {
2526} from '../prisma-query-args/scope-change-requests.query-args.js' ;
2627import { HttpException } from '../utils/errors.utils.js' ;
2728import {
29+ ChangeRequestGuestQueryArgs ,
2830 ChangeRequestManyQueryArgs ,
2931 ChangeRequestWithProjectAndWorkPackageQueryArgs
3032} from '../prisma-query-args/change-requests.query-args.js' ;
3133import { accountCodeTransformer , otherProductReasonTransformer } from './reimbursement-requests.transformer.js' ;
34+ import { GuestChangeRequest } from '../../../shared/src/types/change-request-types.js' ;
3235
3336const projectProposedChangesTransformer = (
3437 wbsProposedChanges : Prisma . Wbs_Proposed_ChangesGetPayload < WbsProposedChangeQueryArgs >
@@ -133,14 +136,7 @@ export const changeRequestManyTransformer = (
133136 confirmDone : changeRequest . stageGateChangeRequest ?. confirmDone ?? undefined ,
134137 requestedReviewers : changeRequest . requestedReviewers . map ( userTransformer ) ?? [ ] ,
135138 //budget cr fields
136- proposedBudget : changeRequest . budgetChangeRequest ?. proposedBudget ?? undefined ,
137- teamTypeNames : [
138- ...new Set (
139- ( changeRequest . wbsElement ?. project ?? changeRequest . wbsElement ?. workPackage ?. project ) ?. teams
140- . map ( ( t ) => t . teamType ?. name )
141- . filter ( ( name ) : name is string => name != null ) ?? [ ]
142- )
143- ]
139+ proposedBudget : changeRequest . budgetChangeRequest ?. proposedBudget ?? undefined
144140 } ;
145141} ;
146142
@@ -231,15 +227,46 @@ const changeRequestTransformer = (
231227 confirmDone : changeRequest . stageGateChangeRequest ?. confirmDone ?? undefined ,
232228 requestedReviewers : changeRequest . requestedReviewers . map ( userTransformer ) ?? [ ] ,
233229 //budget cr fields
234- proposedBudget : changeRequest . budgetChangeRequest ?. proposedBudget ?? undefined ,
235- teamTypeNames : [
236- ...new Set (
237- ( changeRequest . wbsElement ?. project ?? changeRequest . wbsElement ?. workPackage ?. project ) ?. teams
238- . map ( ( t ) => t . teamType ?. name )
239- . filter ( ( name ) : name is string => name != null ) ?? [ ]
240- )
241- ]
230+ proposedBudget : changeRequest . budgetChangeRequest ?. proposedBudget ?? undefined
242231 } ;
243232} ;
244233
245234export default changeRequestTransformer ;
235+
236+ export const guestChangeRequestTransformer = (
237+ changeRequest : Prisma . Change_RequestGetPayload < ChangeRequestGuestQueryArgs >
238+ ) : GuestChangeRequest => {
239+ const status = changeRequest . changes . length
240+ ? ChangeRequestStatus . Implemented
241+ : changeRequest . accepted && changeRequest . dateReviewed
242+ ? ChangeRequestStatus . Accepted
243+ : changeRequest . dateReviewed
244+ ? ChangeRequestStatus . Denied
245+ : ChangeRequestStatus . Open ;
246+
247+ const wbsName = changeRequest . wbsElement
248+ ? ! isWorkPackageWbs ( changeRequest . wbsElement )
249+ ? changeRequest . wbsElement ?. name
250+ : `${ changeRequest . wbsElement ?. workPackage ?. project . wbsElement . name } - ${ changeRequest . wbsElement ?. name } `
251+ : undefined ;
252+
253+ return {
254+ crId : changeRequest . crId ,
255+ submitter : userTransformer ( changeRequest . submitter ) ,
256+ identifier : changeRequest . identifier ,
257+ type : changeRequest . type ,
258+ status,
259+ teamTypeNames : changeRequest . wbsElement
260+ ? isWorkPackageWbs ( changeRequest . wbsElement )
261+ ? ( changeRequest . wbsElement . workPackage ?. project ?. teams
262+ . map ( ( team ) => team . teamType ?. name )
263+ . filter ( ( name ) => name !== undefined ) ?? [ ] )
264+ : ( changeRequest . wbsElement . project ?. teams . map ( ( team ) => team . teamType ?. name ) . filter ( ( name ) => name !== undefined ) ??
265+ [ ] )
266+ : [ ] ,
267+ accepted : changeRequest . accepted ?? undefined ,
268+ reviewer : changeRequest . reviewer ? userTransformer ( changeRequest . reviewer ) : undefined ,
269+ wbsNum : changeRequest . wbsElement ? wbsNumOf ( changeRequest . wbsElement ) : undefined ,
270+ wbsName
271+ } ;
272+ } ;
0 commit comments