@@ -3,7 +3,7 @@ import { postMI as postMIOperation } from '../services/mi-operations';
33import { ApiErrorDetail } from "../contracts/errors" ;
44import { ValidationError } from "../errors" ;
55import { mapErrorToResponse } from "../mappers/error-mapper" ;
6- import { assertNotEmpty , lowerCaseKeys } from "../utils/validation" ;
6+ import { assertNotEmpty , validateCommonHeaders } from "../utils/validation" ;
77import { PostMIRequest , PostMIRequestSchema } from "../contracts/mi" ;
88import { mapToMI } from "../mappers/mi-mapper" ;
99import { Deps } from "../config/deps" ;
@@ -12,13 +12,13 @@ export function createPostMIHandler(deps: Deps): APIGatewayProxyHandler {
1212
1313 return async ( event ) => {
1414
15- let correlationId ;
15+ const commonHeadersResult = validateCommonHeaders ( event . headers , deps ) ;
16+
17+ if ( ! commonHeadersResult . ok ) {
18+ return mapErrorToResponse ( commonHeadersResult . error , commonHeadersResult . correlationId , deps . logger ) ;
19+ }
1620
1721 try {
18- assertNotEmpty ( event . headers , new Error ( 'The request headers are empty' ) ) ;
19- const lowerCasedHeaders = lowerCaseKeys ( event . headers ) ;
20- correlationId = assertNotEmpty ( lowerCasedHeaders [ deps . env . APIM_CORRELATION_HEADER ] , new Error ( "The request headers don't contain the APIM correlation id" ) ) ;
21- const supplierId = assertNotEmpty ( lowerCasedHeaders [ deps . env . SUPPLIER_ID_HEADER ] , new ValidationError ( ApiErrorDetail . InvalidRequestMissingSupplierId ) ) ;
2222 const body = assertNotEmpty ( event . body , new ValidationError ( ApiErrorDetail . InvalidRequestMissingBody ) ) ;
2323
2424 let postMIRequest : PostMIRequest ;
@@ -33,15 +33,15 @@ export function createPostMIHandler(deps: Deps): APIGatewayProxyHandler {
3333 }
3434 validateIso8601Timestamp ( postMIRequest . data . attributes . timestamp ) ;
3535
36- const result = await postMIOperation ( mapToMI ( postMIRequest , supplierId ) , deps . miRepo ) ;
36+ const result = await postMIOperation ( mapToMI ( postMIRequest , commonHeadersResult . value . supplierId ) , deps . miRepo ) ;
3737
3838 return {
3939 statusCode : 201 ,
4040 body : JSON . stringify ( result , null , 2 )
4141 } ;
4242
4343 } catch ( error ) {
44- return mapErrorToResponse ( error , correlationId , deps . logger ) ;
44+ return mapErrorToResponse ( error , commonHeadersResult . value . correlationId , deps . logger ) ;
4545 }
4646 }
4747
0 commit comments