@central-credit/engine
Version:
Engine to handle the Serasa requests
36 lines (32 loc) • 1 kB
text/typescript
import { inject } from '@loopback/context'
import {
FindRoute,
InvokeMethod,
ParseParams,
Reject,
RequestContext,
RestBindings,
Send,
SequenceHandler
} from '@loopback/rest'
const SequenceActions = RestBindings.SequenceActions
export class MySequence implements SequenceHandler {
constructor(
(SequenceActions.FIND_ROUTE) protected findRoute: FindRoute,
(SequenceActions.PARSE_PARAMS) protected parseParams: ParseParams,
(SequenceActions.INVOKE_METHOD) protected invoke: InvokeMethod,
(SequenceActions.SEND) public send: Send,
(SequenceActions.REJECT) public reject: Reject
) {}
async handle(context: RequestContext) {
try {
const { request, response } = context
const route = this.findRoute(request)
const args = await this.parseParams(request, route)
const result = await this.invoke(route, args)
this.send(response, result)
} catch (err) {
this.reject(context, err)
}
}
}