@tsclean/core
Version:
Plugin for API Rest Full development, based on Clean Architecture, IoC and Dependency Injection.
49 lines • 7.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RouterResponseController = void 0;
const enums_1 = require("../enums");
const rxjs_1 = require("rxjs");
class RouterResponseController {
constructor(applicationRef) {
this.applicationRef = applicationRef;
}
async apply(result, response, httpStatusCode) {
return this.applicationRef.reply(response, result, httpStatusCode);
}
async redirect(resultOrDeferred, response, redirectResponse) {
const result = await this.transformToResult(resultOrDeferred);
const statusCode = result && result.statusCode
? result.statusCode
: redirectResponse.statusCode
? redirectResponse.statusCode
: enums_1.HttpStatus.FOUND;
const url = result && result.url ? result.url : redirectResponse.url;
this.applicationRef.redirect(response, statusCode, url);
}
async render(resultOrDeferred, response, template) {
const result = await this.transformToResult(resultOrDeferred);
return this.applicationRef.render(response, template, result);
}
async transformToResult(resultOrDeferred) {
if ((0, rxjs_1.isObservable)(resultOrDeferred)) {
return (0, rxjs_1.lastValueFrom)(resultOrDeferred);
}
return resultOrDeferred;
}
getStatusByMethod(requestMethod) {
switch (requestMethod) {
case enums_1.RequestMethod.POST:
return enums_1.HttpStatus.CREATED;
default:
return enums_1.HttpStatus.OK;
}
}
setHeaders(response, headers) {
headers.forEach(({ name, value }) => this.applicationRef.setHeader(response, name, value));
}
setStatus(response, statusCode) {
this.applicationRef.status(response, statusCode);
}
}
exports.RouterResponseController = RouterResponseController;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLXJlc3BvbnNlLWNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm91dGVyL3JvdXRlci1yZXNwb25zZS1jb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLG9DQUFtRDtBQUNuRCwrQkFBaUQ7QUFZakQsTUFBYSx3QkFBd0I7SUFDbkMsWUFBNkIsY0FBMEI7UUFBMUIsbUJBQWMsR0FBZCxjQUFjLENBQVk7SUFBRyxDQUFDO0lBRXBELEtBQUssQ0FBQyxLQUFLLENBQ2hCLE1BQWMsRUFDZCxRQUFtQixFQUNuQixjQUF1QjtRQUV2QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVNLEtBQUssQ0FBQyxRQUFRLENBQ25CLGdCQUF3QixFQUN4QixRQUFtQixFQUNuQixnQkFBa0M7UUFFbEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM5RCxNQUFNLFVBQVUsR0FDZCxNQUFNLElBQUksTUFBTSxDQUFDLFVBQVU7WUFDekIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVO1lBQ25CLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVO2dCQUM3QixDQUFDLENBQUMsZ0JBQWdCLENBQUMsVUFBVTtnQkFDN0IsQ0FBQyxDQUFDLGtCQUFVLENBQUMsS0FBSyxDQUFDO1FBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUM7UUFDckUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQU0sQ0FDakIsZ0JBQXdCLEVBQ3hCLFFBQW1CLEVBQ25CLFFBQWdCO1FBRWhCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDOUQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFTSxLQUFLLENBQUMsaUJBQWlCLENBQUMsZ0JBQXFCO1FBQ2xELElBQUksSUFBQSxtQkFBWSxFQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUNuQyxPQUFPLElBQUEsb0JBQWEsRUFBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxhQUE0QjtRQUNuRCxRQUFRLGFBQWEsRUFBRSxDQUFDO1lBQ3RCLEtBQUsscUJBQWEsQ0FBQyxJQUFJO2dCQUNyQixPQUFPLGtCQUFVLENBQUMsT0FBTyxDQUFDO1lBQzVCO2dCQUNFLE9BQU8sa0JBQVUsQ0FBQyxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFTSxVQUFVLENBQ2YsUUFBbUIsRUFDbkIsT0FBdUI7UUFFdkIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FDbEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FDckQsQ0FBQztJQUNKLENBQUM7SUFFTSxTQUFTLENBQ2QsUUFBbUIsRUFDbkIsVUFBa0I7UUFFbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7Q0FDRjtBQW5FRCw0REFtRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBTZXJ2ZXJ9IGZyb20gXCIuLi9jb250cmFjdHNcIjtcbmltcG9ydCB7SHR0cFN0YXR1cywgUmVxdWVzdE1ldGhvZH0gZnJvbSBcIi4uL2VudW1zXCI7XG5pbXBvcnQge2lzT2JzZXJ2YWJsZSwgbGFzdFZhbHVlRnJvbX0gZnJvbSBcInJ4anNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21IZWFkZXIge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVkaXJlY3RSZXNwb25zZSB7XG4gIHVybDogc3RyaW5nO1xuICBzdGF0dXNDb2RlPzogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgUm91dGVyUmVzcG9uc2VDb250cm9sbGVyIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhcHBsaWNhdGlvblJlZjogSHR0cFNlcnZlcikge31cblxuICBwdWJsaWMgYXN5bmMgYXBwbHk8VElucHV0ID0gYW55LCBUUmVzcG9uc2UgPSBhbnk+KFxuICAgIHJlc3VsdDogVElucHV0LFxuICAgIHJlc3BvbnNlOiBUUmVzcG9uc2UsXG4gICAgaHR0cFN0YXR1c0NvZGU/OiBudW1iZXIsXG4gICkge1xuICAgIHJldHVybiB0aGlzLmFwcGxpY2F0aW9uUmVmLnJlcGx5KHJlc3BvbnNlLCByZXN1bHQsIGh0dHBTdGF0dXNDb2RlKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyByZWRpcmVjdDxUSW5wdXQgPSBhbnksIFRSZXNwb25zZSA9IGFueT4oXG4gICAgcmVzdWx0T3JEZWZlcnJlZDogVElucHV0LFxuICAgIHJlc3BvbnNlOiBUUmVzcG9uc2UsXG4gICAgcmVkaXJlY3RSZXNwb25zZTogUmVkaXJlY3RSZXNwb25zZSxcbiAgKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy50cmFuc2Zvcm1Ub1Jlc3VsdChyZXN1bHRPckRlZmVycmVkKTtcbiAgICBjb25zdCBzdGF0dXNDb2RlID1cbiAgICAgIHJlc3VsdCAmJiByZXN1bHQuc3RhdHVzQ29kZVxuICAgICAgICA/IHJlc3VsdC5zdGF0dXNDb2RlXG4gICAgICAgIDogcmVkaXJlY3RSZXNwb25zZS5zdGF0dXNDb2RlXG4gICAgICAgID8gcmVkaXJlY3RSZXNwb25zZS5zdGF0dXNDb2RlXG4gICAgICAgIDogSHR0cFN0YXR1cy5GT1VORDtcbiAgICBjb25zdCB1cmwgPSByZXN1bHQgJiYgcmVzdWx0LnVybCA/IHJlc3VsdC51cmwgOiByZWRpcmVjdFJlc3BvbnNlLnVybDtcbiAgICB0aGlzLmFwcGxpY2F0aW9uUmVmLnJlZGlyZWN0KHJlc3BvbnNlLCBzdGF0dXNDb2RlLCB1cmwpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHJlbmRlcjxUSW5wdXQgPSB1bmtub3duLCBUUmVzcG9uc2UgPSB1bmtub3duPihcbiAgICByZXN1bHRPckRlZmVycmVkOiBUSW5wdXQsXG4gICAgcmVzcG9uc2U6IFRSZXNwb25zZSxcbiAgICB0ZW1wbGF0ZTogc3RyaW5nLFxuICApIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnRyYW5zZm9ybVRvUmVzdWx0KHJlc3VsdE9yRGVmZXJyZWQpO1xuICAgIHJldHVybiB0aGlzLmFwcGxpY2F0aW9uUmVmLnJlbmRlcihyZXNwb25zZSwgdGVtcGxhdGUsIHJlc3VsdCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdHJhbnNmb3JtVG9SZXN1bHQocmVzdWx0T3JEZWZlcnJlZDogYW55KSB7XG4gICAgaWYgKGlzT2JzZXJ2YWJsZShyZXN1bHRPckRlZmVycmVkKSkge1xuICAgICAgcmV0dXJuIGxhc3RWYWx1ZUZyb20ocmVzdWx0T3JEZWZlcnJlZCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRPckRlZmVycmVkO1xuICB9XG5cbiAgcHVibGljIGdldFN0YXR1c0J5TWV0aG9kKHJlcXVlc3RNZXRob2Q6IFJlcXVlc3RNZXRob2QpOiBudW1iZXIge1xuICAgIHN3aXRjaCAocmVxdWVzdE1ldGhvZCkge1xuICAgICAgY2FzZSBSZXF1ZXN0TWV0aG9kLlBPU1Q6XG4gICAgICAgIHJldHVybiBIdHRwU3RhdHVzLkNSRUFURUQ7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gSHR0cFN0YXR1cy5PSztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0SGVhZGVyczxUUmVzcG9uc2UgPSB1bmtub3duPihcbiAgICByZXNwb25zZTogVFJlc3BvbnNlLFxuICAgIGhlYWRlcnM6IEN1c3RvbUhlYWRlcltdLFxuICApIHtcbiAgICBoZWFkZXJzLmZvckVhY2goKHsgbmFtZSwgdmFsdWUgfSkgPT5cbiAgICAgIHRoaXMuYXBwbGljYXRpb25SZWYuc2V0SGVhZGVyKHJlc3BvbnNlLCBuYW1lLCB2YWx1ZSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTdGF0dXM8VFJlc3BvbnNlID0gdW5rbm93bj4oXG4gICAgcmVzcG9uc2U6IFRSZXNwb25zZSxcbiAgICBzdGF0dXNDb2RlOiBudW1iZXIsXG4gICkge1xuICAgIHRoaXMuYXBwbGljYXRpb25SZWYuc3RhdHVzKHJlc3BvbnNlLCBzdGF0dXNDb2RlKTtcbiAgfVxufVxuIl19