UNPKG

1.94 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const common_1 = require("@nestjs/common");
4const shared_utils_1 = require("@nestjs/common/utils/shared.utils");
5class RouterResponseController {
6 constructor(applicationRef) {
7 this.applicationRef = applicationRef;
8 }
9 async apply(result, response, httpStatusCode) {
10 return this.applicationRef.reply(response, result, httpStatusCode);
11 }
12 async redirect(resultOrDeferred, response, redirectResponse) {
13 const result = await this.transformToResult(resultOrDeferred);
14 const statusCode = result && result.statusCode
15 ? result.statusCode
16 : redirectResponse.statusCode
17 ? redirectResponse.statusCode
18 : common_1.HttpStatus.FOUND;
19 const url = result && result.url ? result.url : redirectResponse.url;
20 this.applicationRef.redirect(response, statusCode, url);
21 }
22 async render(resultOrDeferred, response, template) {
23 const result = await this.transformToResult(resultOrDeferred);
24 this.applicationRef.render(response, template, result);
25 }
26 async transformToResult(resultOrDeferred) {
27 if (resultOrDeferred && shared_utils_1.isFunction(resultOrDeferred.subscribe)) {
28 return resultOrDeferred.toPromise();
29 }
30 return resultOrDeferred;
31 }
32 getStatusByMethod(requestMethod) {
33 switch (requestMethod) {
34 case common_1.RequestMethod.POST:
35 return common_1.HttpStatus.CREATED;
36 default:
37 return common_1.HttpStatus.OK;
38 }
39 }
40 setHeaders(response, headers) {
41 headers.forEach(({ name, value }) => this.applicationRef.setHeader(response, name, value));
42 }
43 setStatus(response, statusCode) {
44 this.applicationRef.status(response, statusCode);
45 }
46}
47exports.RouterResponseController = RouterResponseController;