@@ -119,32 +119,41 @@ export default class WorkPackagesService {
119119 if ( isProject ( wbsNum ) ) {
120120 throw new HttpException (
121121 404 ,
122- 'WBS Number ' +
123- `${ wbsNum . carNumber } .${ wbsNum . projectNumber } .${ wbsNum . workPackageNumber } ` +
124- ' is a project WBS#, not a Work Package WBS#'
122+ `WBS Number ${ wbsNum . carNumber } .${ wbsNum . projectNumber } .${ wbsNum . workPackageNumber } is a project WBS#, not a Work Package WBS#`
125123 ) ;
126124 }
127125 }
128126
129- const workPackages = await prisma . work_Package . findMany ( {
130- where : {
131- wbsElement : {
132- dateDeleted : null ,
133- OR : wbsNums . map ( ( wbsNum ) => ( {
134- carNumber : wbsNum . carNumber ,
135- projectNumber : wbsNum . projectNumber ,
136- workPackageNumber : wbsNum . workPackageNumber
137- } ) )
138- }
139- } ,
140- ...workPackageQueryArgs
141- } ) ;
127+ const workPackagePromises = wbsNums . map ( async ( wbsNum ) => {
128+ const workPackages = await prisma . work_Package . findMany ( {
129+ where : {
130+ AND : [
131+ {
132+ wbsElement : {
133+ dateDeleted : null
134+ }
135+ } ,
136+ {
137+ wbsElement : {
138+ carNumber : wbsNum . carNumber ,
139+ projectNumber : wbsNum . projectNumber ,
140+ workPackageNumber : wbsNum . workPackageNumber
141+ }
142+ }
143+ ]
144+ } ,
145+ ...workPackageQueryArgs
146+ } ) ;
142147
143- if ( ! workPackages || workPackages . length !== wbsNums . length ) {
144- throw new NotFoundException ( 'Work Package' , wbsNums . map ( ( wbsNum ) => wbsPipe ( wbsNum ) ) . join ( ', ' ) ) ;
145- }
148+ if ( ! workPackages || workPackages . length !== 1 ) {
149+ throw new NotFoundException ( 'Work Package' , wbsPipe ( wbsNum ) ) ;
150+ }
151+
152+ return workPackageTransformer ( workPackages [ 0 ] ) ;
153+ } ) ;
146154
147- return workPackages . map ( workPackageTransformer ) ;
155+ const resolvedWorkPackages = await Promise . all ( workPackagePromises ) ;
156+ return resolvedWorkPackages ;
148157 }
149158
150159 /**
0 commit comments