Skip to content

Commit

Permalink
Merge pull request #386 from sparcs-kaist/dev
Browse files Browse the repository at this point in the history
Main branch update from Dev branch
  • Loading branch information
14KGun authored Sep 20, 2023
2 parents b1301e7 + 72be970 commit ef8be7a
Show file tree
Hide file tree
Showing 36 changed files with 1,241 additions and 349 deletions.
9 changes: 6 additions & 3 deletions app.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// 모듈 require
const express = require("express");
const http = require("http");
const { port: httpPort, eventMode } = require("./loadenv");
const { port: httpPort, eventConfig } = require("./loadenv");
const logger = require("./src/modules/logger");
const { connectDatabase } = require("./src/modules/stores/mongo");
const { startSocketServer } = require("./src/modules/socket");
Expand Down Expand Up @@ -43,8 +43,11 @@ app.use(require("./src/middlewares/limitRate"));
app.use("/docs", require("./src/routes/docs"));

// 2023 추석 이벤트 전용 라우터입니다.
eventMode &&
app.use(`/events/${eventMode}`, require("./src/lottery").lotteryRouter);
eventConfig &&
app.use(
`/events/${eventConfig.mode}`,
require("./src/lottery").lotteryRouter
);

// [Middleware] 모든 API 요청에 대하여 origin 검증
app.use(require("./src/middlewares/originValidator"));
Expand Down
7 changes: 6 additions & 1 deletion loadenv.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,5 +38,10 @@ module.exports = {
slackWebhookUrl: {
report: process.env.SLACK_REPORT_WEBHOOK_URL || "", // optional
},
eventMode: undefined,
eventConfig: (process.env.EVENT_CONFIG &&
JSON.parse(process.env.EVENT_CONFIG)) || {
mode: "2023fall",
startAt: "2023-09-25T00:00:00+09:00",
endAt: "2023-10-10T00:00:00+09:00",
},
};
32 changes: 16 additions & 16 deletions src/lottery/index.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,16 @@
const express = require("express");
const {
eventStatusModel,
eventModel,
questModel,
itemModel,
transactionModel,
} = require("./modules/stores/mongo");

const { eventConfig } = require("../../loadenv");
const { buildResource } = require("../modules/adminResource");
const { instagramRewardAction } = require("./modules/admin");

// [Routes] 기존 docs 라우터의 docs extend
require("./routes/docs")();

// [Middleware] 목표 달성 여부 검증
const checkReward = (req, res, next) => {
next();
};
eventConfig && require("./routes/docs")();

const lotteryRouter = express.Router();

Expand All @@ -26,16 +21,21 @@ lotteryRouter.use(require("../middlewares/originValidator"));
lotteryRouter.use("/global-state", require("./routes/globalState"));
lotteryRouter.use("/transactions", require("./routes/transactions"));
lotteryRouter.use("/items", require("./routes/items"));
lotteryRouter.use("/public-notice", require("./routes/publicNotice"));
lotteryRouter.use("/quests", require("./routes/quests"));

const resources = [
eventStatusModel,
questModel,
itemModel,
transactionModel,
].map(buildResource());

const eventStatusResource = buildResource([instagramRewardAction])(
eventStatusModel
);
const otherResources = [eventModel, itemModel, transactionModel].map(
buildResource()
);
const contracts =
eventConfig && require(`./modules/contracts/${eventConfig.mode}`);

module.exports = {
checkReward,
lotteryRouter,
resources: [eventStatusResource, ...otherResources],
resources,
contracts,
};
19 changes: 19 additions & 0 deletions src/lottery/middlewares/timestampValidator.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
const { eventConfig } = require("../../../loadenv");
const eventPeriod = eventConfig && {
startAt: new Date(eventConfig.startAt),
endAt: new Date(eventConfig.endAt),
};

const timestampValidator = (req, res, next) => {
if (
!eventPeriod ||
req.timestamp >= eventPeriod.endAt ||
req.timestamp < eventPeriod.startAt
) {
return res.status(400).json({ error: "out of date" });
} else {
next();
}
};

module.exports = timestampValidator;
74 changes: 0 additions & 74 deletions src/lottery/modules/admin.js

This file was deleted.

Loading

0 comments on commit ef8be7a

Please sign in to comment.