@@ -11,9 +11,10 @@ const EndpointRunner = require('./endpoint-runner')
1111const Router = require ( 'origin-router' ) . Router
1212
1313class ServiceRunner {
14- constructor ( { service, party} ) {
14+ constructor ( { service, party, sendFullErrors = false } ) {
1515 this . party = party
1616 this . service = service
17+ this . sendFullErrors = sendFullErrors
1718
1819 this . middleware = { pre : { } , post : { } }
1920 this . endpoint = { }
@@ -152,17 +153,33 @@ class ServiceRunner {
152153
153154 const middlewareCfg = Hoek . reach ( endpoint , 'info.MiddlewareConfig' )
154155
155- await this . runMiddleware ( middlewareCfg , context , 'pre' )
156-
157- const result = await endpoint . run ( context )
156+ try {
158157
159- context . setOutput ( result )
158+ await this . runMiddleware ( middlewareCfg , context , 'pre' )
159+
160+ const result = await endpoint . run ( context )
161+
162+ context . setOutput ( result )
163+
164+ await this . runMiddleware ( middlewareCfg , context , 'post' )
165+
166+ debug ( 'result' , result )
160167
161- await this . runMiddleware ( middlewareCfg , context , 'post' )
168+ context . res . send ( result )
162169
163- debug ( 'result' , result )
170+ }
171+ catch ( err ) {
172+ debug ( 'caught error' , err )
164173
165- context . res . send ( result )
174+ context . res . status ( 500 ) . send ( {
175+ error : {
176+ code : err . code ,
177+ message : err . message ,
178+ stack : ( ! this . sendFullErrors ? null : err . stack ) ,
179+ ... ( ! this . sendFullErrors ? null : err )
180+ }
181+ } )
182+ }
166183
167184 }
168185 }
0 commit comments