Skip to content

Commit d2bd8fc

Browse files
Correctly type request bodies in API routers
1 parent 4942d1b commit d2bd8fc

File tree

5 files changed

+32
-48
lines changed

5 files changed

+32
-48
lines changed

eslint-suppressions.json

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -2,48 +2,6 @@
22
"src/server/api/bannerRouter.ts": {
33
"@typescript-eslint/no-unnecessary-condition": {
44
"count": 1
5-
},
6-
"@typescript-eslint/no-unsafe-assignment": {
7-
"count": 7
8-
},
9-
"@typescript-eslint/no-unsafe-argument": {
10-
"count": 1
11-
},
12-
"@typescript-eslint/no-unsafe-member-access": {
13-
"count": 6
14-
}
15-
},
16-
"src/server/api/epicRouter.ts": {
17-
"@typescript-eslint/restrict-template-expressions": {
18-
"count": 1
19-
},
20-
"@typescript-eslint/no-unsafe-assignment": {
21-
"count": 3
22-
},
23-
"@typescript-eslint/no-unsafe-argument": {
24-
"count": 2
25-
},
26-
"@typescript-eslint/no-unsafe-call": {
27-
"count": 2
28-
},
29-
"@typescript-eslint/no-unsafe-member-access": {
30-
"count": 3
31-
}
32-
},
33-
"src/server/api/gutterRouter.ts": {
34-
"@typescript-eslint/no-unsafe-assignment": {
35-
"count": 1
36-
},
37-
"@typescript-eslint/no-unsafe-argument": {
38-
"count": 1
39-
}
40-
},
41-
"src/server/api/headerRouter.ts": {
42-
"@typescript-eslint/no-unsafe-assignment": {
43-
"count": 1
44-
},
45-
"@typescript-eslint/no-unsafe-argument": {
46-
"count": 1
475
}
486
},
497
"src/server/factories/test.ts": {

src/server/api/bannerRouter.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,11 @@ export const buildBannerRouter = (
167167

168168
router.post(
169169
'/banner',
170-
(req: express.Request, res: express.Response, next: express.NextFunction) => {
170+
(
171+
req: express.Request<Record<string, never>, unknown, { targeting: BannerTargeting }>,
172+
res: express.Response,
173+
next: express.NextFunction,
174+
) => {
171175
try {
172176
const { targeting } = req.body;
173177
const params = getQueryParams(req.query);

src/server/api/epicRouter.ts

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,13 @@ export const buildEpicRouter = (
7474

7575
return [...hardcodedTests, ...articleEpicTests.get()];
7676
} catch (err) {
77-
logWarn(`Error getting article epic tests: ${err}`);
77+
if (typeof err === 'string') {
78+
logWarn(`Error getting article epic tests: ${err}`);
79+
} else if (err instanceof Error) {
80+
logWarn(`Error getting article epic tests: ${err.message}`);
81+
} else {
82+
logWarn(`Error getting article epic tests: ${JSON.stringify(err)}`);
83+
}
7884

7985
return [];
8086
}
@@ -198,7 +204,11 @@ export const buildEpicRouter = (
198204

199205
router.post(
200206
'/epic',
201-
(req: express.Request, res: express.Response, next: express.NextFunction): void => {
207+
(
208+
req: express.Request<Record<string, never>, unknown, { targeting: EpicTargeting }>,
209+
res: express.Response,
210+
next: express.NextFunction,
211+
): void => {
202212
try {
203213
const epicType: EpicType = 'ARTICLE';
204214

@@ -228,7 +238,11 @@ export const buildEpicRouter = (
228238

229239
router.post(
230240
'/liveblog-epic',
231-
(req: express.Request, res: express.Response, next: express.NextFunction) => {
241+
(
242+
req: express.Request<Record<string, never>, unknown, { targeting: EpicTargeting }>,
243+
res: express.Response,
244+
next: express.NextFunction,
245+
) => {
232246
try {
233247
const epicType: EpicType = 'LIVEBLOG';
234248

src/server/api/gutterRouter.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,11 @@ export const buildGutterRouter = (
8484
router.post(
8585
'/gutter-liveblog',
8686
bodyContainsAllFields(['targeting']),
87-
(req: express.Request, res: express.Response, next: express.NextFunction) => {
87+
(
88+
req: express.Request<Record<string, never>, unknown, { targeting: GutterTargeting }>,
89+
res: express.Response,
90+
next: express.NextFunction,
91+
) => {
8892
try {
8993
const { targeting } = req.body;
9094
const params = getQueryParams(req.query);

src/server/api/headerRouter.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,11 @@ export const buildHeaderRouter = (
7979
router.post(
8080
'/header',
8181
bodyContainsAllFields(['targeting']),
82-
(req: express.Request, res: express.Response, next: express.NextFunction) => {
82+
(
83+
req: express.Request<Record<string, never>, unknown, { targeting: HeaderTargeting }>,
84+
res: express.Response,
85+
next: express.NextFunction,
86+
) => {
8387
try {
8488
const { targeting } = req.body;
8589
const params = getQueryParams(req.query);

0 commit comments

Comments
 (0)