@@ -6,11 +6,14 @@ import {
66} from '@aws-sdk/client-dynamodb'
77import { SSMClient } from '@aws-sdk/client-ssm'
88import { fromEnv } from '@bifravst/from-env'
9- import { aProblem } from '@hello.nrfcloud.com/lambda-helpers/aProblem'
109import { aResponse } from '@hello.nrfcloud.com/lambda-helpers/aResponse'
1110import { addVersionHeader } from '@hello.nrfcloud.com/lambda-helpers/addVersionHeader'
1211import { corsOPTIONS } from '@hello.nrfcloud.com/lambda-helpers/corsOPTIONS'
1312import { metricsForComponent } from '@hello.nrfcloud.com/lambda-helpers/metrics'
13+ import {
14+ ProblemDetailError ,
15+ problemResponse ,
16+ } from '@hello.nrfcloud.com/lambda-helpers/problemResponse'
1417import { requestLogger } from '@hello.nrfcloud.com/lambda-helpers/requestLogger'
1518import {
1619 validateInput ,
@@ -81,7 +84,7 @@ const h = async (
8184 context . validInput . fingerprint ,
8285 )
8386 if ( 'error' in maybeDevice ) {
84- return aProblem ( maybeDevice . error )
87+ throw new ProblemDetailError ( maybeDevice . error )
8588 }
8689 const { id : deviceId } = maybeDevice . result
8790 return publish ( {
@@ -107,16 +110,13 @@ const publish = async ({
107110 } )
108111 if ( 'error' in maybePublished ) {
109112 if ( maybePublished . error instanceof ConditionalCheckFailedException ) {
110- return aProblem ( {
113+ throw new ProblemDetailError ( {
111114 title : `Failed to share device: ${ maybePublished . error . message } ` ,
112115 status : 409 ,
113116 } )
114117 }
115118 console . error ( maybePublished . error )
116- return aProblem ( {
117- title : `Failed to share device: ${ maybePublished . error . message } ` ,
118- status : 500 ,
119- } )
119+ throw new Error ( `Failed to share device: ${ maybePublished . error . message } ` )
120120 }
121121
122122 track ( 'deviceShared' , MetricUnit . Count , 1 )
@@ -148,4 +148,5 @@ export const handler = middy()
148148 ) ,
149149 } ) ,
150150 )
151+ . use ( problemResponse ( ) )
151152 . handler ( h )
0 commit comments