Skip to content

Commit 2fc3a0e

Browse files
committed
Merge branch 'dev' into #159-add-typescript-support
2 parents 4af19ff + 2d01cfd commit 2fc3a0e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+1651
-746
lines changed

package.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,6 @@
2525
"@adminjs/express": "^5.1.0",
2626
"@adminjs/mongoose": "^3.0.3",
2727
"adminjs": "^6.8.7",
28-
"ajv": "^8.12.0",
29-
"ajv-errors": "^3.0.0",
30-
"ajv-formats": "^2.1.1",
3128
"aws-sdk": "^2.1386.0",
3229
"axios": "^0.27.2",
3330
"ci": "^2.2.0",
@@ -47,14 +44,17 @@
4744
"mongoose": "^6.12.0",
4845
"node-cron": "3.0.2",
4946
"node-mocks-http": "^1.12.1",
47+
"nodemailer": "^6.9.9",
5048
"querystring": "^0.2.1",
5149
"redis": "^4.2.0",
5250
"response-time": "^2.3.2",
5351
"socket.io": "^4.6.1",
5452
"swagger-ui-express": "^4.6.0",
5553
"validator": "^13.7.0",
5654
"winston": "^3.8.1",
57-
"winston-daily-rotate-file": "^4.7.1"
55+
"winston-daily-rotate-file": "^4.7.1",
56+
"zod": "^3.22.4",
57+
"zod-to-json-schema": "^3.22.4"
5858
},
5959
"devDependencies": {
6060
"@types/cookie-parser": "^1.4.6",

pnpm-lock.yaml

+26-46
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ app.use(limitRateMiddleware);
6969
// [Router] Swagger (API 문서)
7070
app.use("/docs", docsRouter);
7171

72-
// 2023 추석 이벤트 전용 라우터입니다.
72+
// [Router] 이벤트 전용 라우터입니다.
7373
// eventConfig &&
7474
// app.use(`/events/${eventConfig.mode}`, require("@/lottery").lotteryRouter);
7575

src/loadenv.ts

+7-5
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ if (process.env.DB_PATH === undefined) {
1818
process.exit(1);
1919
}
2020

21-
export const nodeEnv = process.env.NODE_ENV; // required
21+
export const nodeEnv = process.env.NODE_ENV; // required ("production" or "development" or "test")
2222
export const mongo = process.env.DB_PATH; // required
2323
export const session = {
2424
secret: process.env.SESSION_KEY || "TAXI_SESSION_KEY", // optional
@@ -31,7 +31,7 @@ export const sparcssso = {
3131
};
3232
export const port = process.env.PORT ? parseInt(process.env.PORT) : 80; // optional (default = 80)
3333
export const corsWhiteList = (process.env.CORS_WHITELIST &&
34-
JSON.parse(process.env.CORS_WHITELIST) as string[]) || [true]; // optional (default = [true])
34+
(JSON.parse(process.env.CORS_WHITELIST) as string[])) || [true]; // optional (default = [true])
3535
export const aws = {
3636
accessKeyId: process.env.AWS_ACCESS_KEY_ID as string, // required
3737
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY as string, // required
@@ -53,11 +53,13 @@ export const jwt = {
5353
};
5454
export const googleApplicationCredentials =
5555
process.env.GOOGLE_APPLICATION_CREDENTIALS &&
56-
JSON.parse(process.env.GOOGLE_APPLICATION_CREDENTIALS) as ServiceAccount; // optional
56+
(JSON.parse(process.env.GOOGLE_APPLICATION_CREDENTIALS) as ServiceAccount); // optional
5757
export const testAccounts =
58-
(process.env.TEST_ACCOUNTS && JSON.parse(process.env.TEST_ACCOUNTS) as string[]) || []; // optional
58+
(process.env.TEST_ACCOUNTS &&
59+
(JSON.parse(process.env.TEST_ACCOUNTS) as string[])) ||
60+
[]; // optional
5961
export const slackWebhookUrl = {
6062
report: process.env.SLACK_REPORT_WEBHOOK_URL || "", // optional
6163
};
6264
// export const eventConfig =
63-
// process.env.EVENT_CONFIG && JSON.parse(process.env.EVENT_CONFIG);
65+
// process.env.EVENT_CONFIG && JSON.parse(process.env.EVENT_CONFIG); // optional

src/lottery/index.js

+17-13
Original file line numberDiff line numberDiff line change
@@ -13,35 +13,39 @@ const {
1313
} = require("./modules/items");
1414

1515
const { eventConfig } = require("../../loadenv");
16+
const contracts = eventConfig && require("./modules/contracts");
1617

1718
// [Routes] 기존 docs 라우터의 docs extend
1819
eventConfig && require("./routes/docs")();
1920

21+
// [Schedule] 스케줄러 시작
22+
eventConfig && require("./schedules")();
23+
2024
const lotteryRouter = express.Router();
2125

2226
// [Middleware] 모든 API 요청에 대하여 origin 검증
2327
lotteryRouter.use(require("../middlewares/originValidator"));
2428

2529
// [Router] APIs
26-
lotteryRouter.use("/global-state", require("./routes/globalState"));
30+
lotteryRouter.use("/globalState", require("./routes/globalState"));
31+
lotteryRouter.use("/invite", require("./routes/invite"));
2732
lotteryRouter.use("/transactions", require("./routes/transactions"));
2833
lotteryRouter.use("/items", require("./routes/items"));
29-
lotteryRouter.use("/public-notice", require("./routes/publicNotice"));
34+
lotteryRouter.use("/publicNotice", require("./routes/publicNotice"));
3035
lotteryRouter.use("/quests", require("./routes/quests"));
3136

32-
const itemResource = buildResource([
33-
addOneItemStockAction,
34-
addFiveItemStockAction,
35-
])(itemModel);
36-
const otherResources = [eventStatusModel, questModel, transactionModel].map(
37-
buildResource()
38-
);
39-
40-
const contracts =
41-
eventConfig && require(`./modules/contracts/${eventConfig.mode}`);
37+
// [AdminJS] AdminJS에 표시할 Resource 생성
38+
const resources =
39+
(eventConfig && [
40+
buildResource()(eventStatusModel),
41+
buildResource()(questModel),
42+
buildResource([addOneItemStockAction, addFiveItemStockAction])(itemModel),
43+
buildResource()(transactionModel),
44+
]) ||
45+
[];
4246

4347
module.exports = {
4448
lotteryRouter,
45-
resources: [itemResource, ...otherResources],
4649
contracts,
50+
resources,
4751
};

src/lottery/middlewares/timestampValidator.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
const { eventConfig } = require("../../../loadenv");
22
const eventPeriod = eventConfig && {
3-
startAt: new Date(eventConfig.startAt),
4-
endAt: new Date(eventConfig.endAt),
3+
startAt: new Date(eventConfig.period.startAt),
4+
endAt: new Date(eventConfig.period.endAt),
55
};
66

77
const timestampValidator = (req, res, next) => {

0 commit comments

Comments
 (0)