handleRequest method
Implementation
@override
Future<ApiResponse> handleRequest(ApiRequest request) async {
try {
var result = await before(request);
if (result == null) {
switch (request.method) {
case ApiRequestMethod.GET:
result = await get(request);
break;
case ApiRequestMethod.POST:
result = await post(request);
break;
case ApiRequestMethod.PUT:
result = await put(request);
break;
case ApiRequestMethod.PATCH:
result = await patch(request);
break;
case ApiRequestMethod.DELETE:
result = await delete(request);
break;
}
}
return ApiResponse.dynamic(result);
} on ApiRequestException catch (e) {
// catch exceptions here to allow middleware to handle result
return e.toResponse();
} catch (e, stack) {
resolve<LogService>().error(
'Error while handling request to "${request.route}".',
error: e,
trace: stack,
sender: 'DataHub',
);
// catch exceptions here to allow middleware to handle result
if (resolve<ConfigService>().environment == Environment.dev) {
return DebugResponse(e, stack, 500);
} else {
return ApiRequestException.internalError('Internal Server Error')
.toResponse();
}
}
}