Skip to content

Commit 6b6670b

Browse files
committed
Refactor: ts conversion
1 parent d90f28c commit 6b6670b

File tree

3 files changed

+41
-29
lines changed

3 files changed

+41
-29
lines changed

src/middlewares/ban.js

-19
This file was deleted.

src/middlewares/ban.ts

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import type { RequestHandler } from "express";
2+
import { validateServiceBanRecord } from "@/modules/ban";
3+
import logger from "@/modules/logger";
4+
5+
const serviceMapper: Map<string, string> = new Map([
6+
["/rooms/create", "service"],
7+
["/rooms/join", "service"],
8+
]);
9+
10+
const banMiddleware: RequestHandler = async (req, res, next) => {
11+
if (req.originalUrl === undefined) {
12+
logger.error(
13+
"Error occured while validateServiceBanRecord: req.originalUrl is undefined"
14+
);
15+
return res.status(500).json({
16+
error:
17+
"Error occured while validateServiceBanRecord: req.originalUrl is undefined",
18+
});
19+
}
20+
const banErrorMessage = await validateServiceBanRecord(
21+
req,
22+
serviceMapper.get(req.originalUrl) || ""
23+
);
24+
if (banErrorMessage !== undefined) {
25+
return res.status(400).json({ error: banErrorMessage });
26+
}
27+
next();
28+
};
29+
30+
module.exports = banMiddleware;

src/modules/ban.js src/modules/ban.ts

+11-10
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,23 @@
1+
import type { Request } from "express";
2+
13
const logger = require("./logger");
24
const { banModel } = require("./stores/mongo");
35

46
/**
57
* @param {*} req
68
* @param {String} service
79
*/
8-
const validateServiceBanRecord = async (req, service) => {
10+
export const validateServiceBanRecord = async (
11+
req: Request,
12+
service: string
13+
) => {
914
let banRecord = undefined;
1015

1116
try {
1217
// 현재 시각이 expireAt 보다 작고, 본인인 경우(ban의 userId가 userId랑 같은 경우) 중 serviceName이 "service"인 record를 모두 가져옴
1318
const bans = await banModel
1419
.find({
15-
userSid: req.session.loginInfo.sid,
20+
userSid: req.session.loginInfo!.sid,
1621
expireAt: {
1722
$gte: req.timestamp,
1823
},
@@ -24,22 +29,18 @@ const validateServiceBanRecord = async (req, service) => {
2429
banRecord = bans[0];
2530
}
2631
} catch (err) {
27-
logger.error(
28-
"Error occured while validateServiceBanRecord: " + err.message
29-
);
32+
logger.error(err);
3033
return;
3134
}
3235
if (banRecord !== undefined) {
3336
const formattedExpireAt = banRecord.expireAt
3437
.toISOString()
3538
.replace("T", " ")
3639
.split(".")[0];
37-
const banErrorMessage = `${req.originalUrl} : user ${req.userId} (${req.session.loginInfo.sid}) is temporarily restricted from service until ${formattedExpireAt}.`;
40+
const banErrorMessage = `${req.originalUrl} : user ${req.userId} (${
41+
req.session.loginInfo!.sid
42+
}) is temporarily restricted from service until ${formattedExpireAt}.`;
3843
return banErrorMessage;
3944
}
4045
return;
4146
};
42-
43-
module.exports = {
44-
validateServiceBanRecord,
45-
};

0 commit comments

Comments
 (0)