@@ -46,36 +46,40 @@ async function mockserver() {
4646 const respondToRequest = function ( request ) {
4747 logger . logInfo ( 'Callback triggered with request' , { request } ) ;
4848
49- let responsePath = null ;
49+ let responsePaths = [ ] ;
5050
5151 const userNumber = request . queryStringParameters ?. userNumbers ;
5252 const surname = request . queryStringParameters ?. surname ;
5353 const emails = request . queryStringParameters ?. emails ;
5454
5555 if ( request . path === '/users-service/v1/basic-person-details' || request . path === '/users-service/v1/basic-person-details/searchable' ) {
5656 if ( userNumber ) {
57- responsePath = `src/responses/user/getbasicpersondetails/${ userNumber [ 0 ] } .json` ;
57+ for ( const un of userNumber ) {
58+ responsePaths . push ( `src/responses/user/getbasicpersondetails/${ un } .json` ) ;
59+ }
5860 }
5961 if ( surname ) {
60- responsePath = `src/responses/user/getbasicpersondetails/${ surname } .json` ;
62+ responsePaths . push ( `src/responses/user/getbasicpersondetails/${ surname } .json` ) ;
6163 }
6264 if ( emails ) {
63- responsePath = `src/responses/user/getbasicpersondetails/${ emails [ 0 ] } .json` ;
65+ for ( const email of emails ) {
66+ responsePaths . push ( `src/responses/user/getbasicpersondetails/${ email } .json` ) ;
67+ }
6468 }
6569 }
6670
6771 else if ( request . path . startsWith ( '/users-service/v1/sessions/' ) ) {
6872 const SessionUser = roleMappings [ request . path . replace ( '/users-service/v1/sessions/' , '' ) ] ;
69- responsePath = `src/responses/user/getpersondetailsfromsessionid/${ SessionUser } .json` ;
73+ responsePaths . push ( `src/responses/user/getpersondetailsfromsessionid/${ SessionUser } .json` ) ;
7074 }
7175
7276 else if ( request . path . startsWith ( '/users-service/v1/role/' ) ) {
7377 const Role = request . path . replace ( '/users-service/v1/role/' , '' ) ;
74- responsePath = `src/responses/user/getrolesforuser/${ Role } .json` ;
78+ responsePaths . push ( `src/responses/user/getrolesforuser/${ Role } .json` ) ;
7579 }
7680
7781 else if ( request . path === '/users-service/v1/token' ) {
78- responsePath = 'src/responses/user/isTokenValid.json' ;
82+ responsePaths . push ( 'src/responses/user/isTokenValid.json' ) ;
7983 }
8084
8185 else {
@@ -85,16 +89,28 @@ async function mockserver() {
8589 } ;
8690 }
8791
88- if ( ! responsePath || ! fs . existsSync ( responsePath ) ) {
89- logger . logError ( 'Response file does not exist' , { responsePath } ) ;
90- return {
91- statusCode : 404 ,
92- body : JSON . stringify ( { error : 'Resource not found' } ) ,
93- } ;
92+ for ( const responsePath of responsePaths ) {
93+ if ( ! responsePath || ! fs . existsSync ( responsePath ) ) {
94+ logger . logError ( 'Response file does not exist' , { responsePath } ) ;
95+ return {
96+ statusCode : 404 ,
97+ body : JSON . stringify ( { error : 'Resource not found' } ) ,
98+ } ;
99+ }
94100 }
95-
96- const file = fs . readFileSync ( responsePath , 'utf8' ) ;
97- logger . logInfo ( 'Returning response file' , { responsePath } ) ;
101+
102+ var file ;
103+ if ( responsePaths . length == 1 ) {
104+ file = fs . readFileSync ( responsePaths [ 0 ] , 'utf8' ) ;
105+ } else {
106+ // Combine the json arrays when multiple user details are requested at once
107+ file = JSON . stringify (
108+ responsePaths
109+ . map ( path => JSON . parse ( fs . readFileSync ( path , 'utf8' ) ) )
110+ . flat ( )
111+ ) ;
112+ }
113+ logger . logInfo ( 'Returning response files' , { responsePaths, file } ) ;
98114
99115 return {
100116 statusCode : 200 ,
0 commit comments