addQuery<R, Res extends BaseResponse> method
void
addQuery<R, Res extends BaseResponse>(
- HttpContract<
R, Res> contract, - Future<
Response> handler(- QueryRequest<
R>
- QueryRequest<
Implementation
void addQuery<R, Res extends http.BaseResponse>(
HttpContract<R, Res> contract,
Future<Response> Function(QueryRequest<R>) handler,
) {
add(contract.method, contract.path, (Request shelfRequest) async {
try {
final contractRequest =
await ShelfQueryRequest.fromShelfRequest<R, Res>(
shelfRequest, contract);
return await handler(contractRequest);
} on ZardError catch (e) {
return Response(400,
body:
jsonEncode({'errors': e.issues.map((i) => i.message).toList()}),
headers: {'Content-Type': 'application/json'});
} catch (e) {
return Response.internalServerError(body: e.toString());
}
});
}