Skip to content

Commit 40a3aac

Browse files
author
Umed Khudoiberdiev
committed
fixed bug with undefined result code behaviour
1 parent 7e5fb34 commit 40a3aac

File tree

3 files changed

+28
-11
lines changed

3 files changed

+28
-11
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "routing-controllers",
33
"private": true,
4-
"version": "0.7.3",
4+
"version": "0.7.4",
55
"description": "Create structured, declarative and beautifully organized class-based controllers with heavy decorators usage for Express / Koa using TypeScript.",
66
"license": "MIT",
77
"readmeFilename": "README.md",

src/driver/express/ExpressDriver.ts

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import {UseMetadata} from "../../metadata/UseMetadata";
22
import {MiddlewareMetadata} from "../../metadata/MiddlewareMetadata";
33
import {ActionMetadata} from "../../metadata/ActionMetadata";
44
import {Action} from "../../Action";
5-
import {classToPlain} from "class-transformer";
65
import {ParamMetadata} from "../../metadata/ParamMetadata";
76
import {BaseDriver} from "../BaseDriver";
87
import {ExpressMiddlewareInterface} from "./ExpressMiddlewareInterface";
@@ -12,7 +11,8 @@ import {AuthorizationCheckerNotDefinedError} from "../../error/AuthorizationChec
1211
import {isPromiseLike} from "../../util/isPromiseLike";
1312
import {getFromContainer} from "../../container";
1413
import {AuthorizationRequiredError} from "../../error/AuthorizationRequiredError";
15-
import { NotFoundError } from "../../index";
14+
import {NotFoundError} from "../../index";
15+
1616
const cookie = require("cookie");
1717
const templateUrl = require("template-url");
1818

@@ -298,11 +298,20 @@ export class ExpressDriver extends BaseDriver {
298298
});
299299
}
300300
else if (result === undefined) { // throw NotFoundError on undefined response
301-
const notFoundError = new NotFoundError();
301+
302302
if (action.undefinedResultCode) {
303-
notFoundError.httpCode = action.undefinedResultCode as number;
303+
options.response.httpCode = action.undefinedResultCode;
304+
305+
if (action.isJsonTyped) {
306+
options.response.json();
307+
} else {
308+
options.response.send();
309+
}
310+
options.next();
311+
312+
} else {
313+
throw new NotFoundError();
304314
}
305-
throw notFoundError;
306315
}
307316
else if (result === null) { // send null response
308317
if (action.isJsonTyped) {

src/driver/koa/KoaDriver.ts

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ import {BaseDriver} from "../BaseDriver";
44
import {MiddlewareMetadata} from "../../metadata/MiddlewareMetadata";
55
import {ParamMetadata} from "../../metadata/ParamMetadata";
66
import {UseMetadata} from "../../metadata/UseMetadata";
7-
import {classToPlain} from "class-transformer";
87
import {KoaMiddlewareInterface} from "./KoaMiddlewareInterface";
98
import {AuthorizationCheckerNotDefinedError} from "../../error/AuthorizationCheckerNotDefinedError";
109
import {AccessDeniedError} from "../../error/AccessDeniedError";
1110
import {isPromiseLike} from "../../util/isPromiseLike";
1211
import {getFromContainer} from "../../container";
1312
import {RoleChecker} from "../../RoleChecker";
1413
import {AuthorizationRequiredError} from "../../error/AuthorizationRequiredError";
15-
import { NotFoundError, HttpError } from "../../index";
14+
import {HttpError, NotFoundError} from "../../index";
15+
1616
const cookie = require("cookie");
1717
const templateUrl = require("template-url");
1818

@@ -249,11 +249,19 @@ export class KoaDriver extends BaseDriver {
249249
});
250250
}
251251
else if (result === undefined) { // throw NotFoundError on undefined response
252-
const notFoundError = new NotFoundError();
253252
if (action.undefinedResultCode) {
254-
notFoundError.httpCode = action.undefinedResultCode as number;
253+
options.response.httpCode = action.undefinedResultCode;
254+
255+
if (action.isJsonTyped) {
256+
options.response.json();
257+
} else {
258+
options.response.send();
259+
}
260+
options.next();
261+
262+
} else {
263+
throw new NotFoundError();
255264
}
256-
throw notFoundError;
257265
}
258266
else if (result === null) { // send null response
259267
if (action.isJsonTyped) {

0 commit comments

Comments
 (0)