Skip to content

Commit

Permalink
Merge pull request #564 from sparcs-kaist/563-이벤트-코드-활성화
Browse files Browse the repository at this point in the history
#563 이벤트 코드 활성화
  • Loading branch information
thxx132 authored Feb 11, 2025
2 parents 749614e + 17ee505 commit b7d9389
Show file tree
Hide file tree
Showing 28 changed files with 122 additions and 115 deletions.
13 changes: 10 additions & 3 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,12 @@ import express from "express";
import cookieParser from "cookie-parser";
import http from "http";

import { nodeEnv, mongo as mongoUrl, port as httpPort } from "@/loadenv";
import {
nodeEnv,
mongo as mongoUrl,
port as httpPort,
eventConfig,
} from "@/loadenv";
import {
corsMiddleware,
errorHandler,
Expand Down Expand Up @@ -33,6 +38,7 @@ import logger from "@/modules/logger";
import { startSocketServer } from "@/modules/socket";
import { connectDatabase } from "@/modules/stores/mongo";
import registerSchedules from "@/schedules";
import { lotteryRouter } from "@/lottery";

// Firebase Admin 초기설정
initializeFirebase();
Expand Down Expand Up @@ -73,8 +79,9 @@ app.use(limitRateMiddleware);
app.use("/docs", docsRouter);

// [Router] 이벤트 전용 라우터입니다.
// eventConfig &&
// app.use(`/events/${eventConfig.mode}`, require("@/lottery").lotteryRouter);
if (eventConfig) {
app.use("/events", lotteryRouter);
}

// [Middleware] 모든 API 요청에 대하여 origin 검증
app.use(originValidatorMiddleware);
Expand Down
4 changes: 2 additions & 2 deletions src/loadenv.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,8 @@ export const testAccounts =
export const slackWebhookUrl = {
report: process.env.SLACK_REPORT_WEBHOOK_URL || "", // optional
};
// export const eventConfig =
// process.env.EVENT_CONFIG && JSON.parse(process.env.EVENT_CONFIG); // optional
export const eventConfig =
process.env.EVENT_CONFIG && JSON.parse(process.env.EVENT_CONFIG); // optional
export const naverMap = {
apiId: process.env.NAVER_MAP_API_ID || "", // optional
apiKey: process.env.NAVER_MAP_API_KEY || "", // optional
Expand Down
4 changes: 2 additions & 2 deletions src/lottery/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ const {
addFiveItemStockAction,
} = require("./modules/items");

const { eventConfig } = require("../../loadenv");
const { eventConfig } = require("@/loadenv");
const contracts = eventConfig && require("./modules/contracts");

// [Routes] 기존 docs 라우터의 docs extend
Expand All @@ -24,7 +24,7 @@ eventConfig && require("./schedules")();
const lotteryRouter = express.Router();

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

// [Router] APIs
lotteryRouter.use("/globalState", require("./routes/globalState"));
Expand Down
2 changes: 1 addition & 1 deletion src/lottery/middlewares/timestampValidator.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { eventConfig } = require("../../../loadenv");
const { eventConfig } = require("@/loadenv");
const eventPeriod = eventConfig && {
startAt: new Date(eventConfig.period.startAt),
endAt: new Date(eventConfig.period.endAt),
Expand Down
4 changes: 2 additions & 2 deletions src/lottery/modules/contracts.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
const { buildQuests, completeQuest } = require("./quests");
const mongoose = require("mongoose");
const logger = require("../../modules/logger");
import logger from "../../modules/logger";

const { eventConfig } = require("../../../loadenv");
const { eventConfig } = require("@/loadenv");
const eventPeriod = eventConfig && {
startAt: new Date(eventConfig.period.startAt),
endAt: new Date(eventConfig.period.endAt),
Expand Down
2 changes: 1 addition & 1 deletion src/lottery/modules/quests.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ const {
const logger = require("../../modules/logger");
const mongoose = require("mongoose");

const { eventConfig } = require("../../../loadenv");
const { eventConfig } = require("@/loadenv");
const eventPeriod = eventConfig && {
startAt: new Date(eventConfig.period.startAt),
endAt: new Date(eventConfig.period.endAt),
Expand Down
2 changes: 1 addition & 1 deletion src/lottery/modules/stores/mongo.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ const mongoose = require("mongoose");
const Schema = mongoose.Schema;

// 이벤트마다 사용된 모델을 구분하기 위해 이름에 Prefix를 붙입니다.
const { eventConfig } = require("../../../../loadenv");
const { eventConfig } = require("@/loadenv");
const modelNamePrefix = eventConfig?.mode ?? "";

const integerValidator = {
Expand Down
2 changes: 1 addition & 1 deletion src/lottery/routes/docs/globalState.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { eventConfig } = require("../../../../loadenv");
const { eventConfig } = require("@/loadenv");
const apiPrefix = `/events/${eventConfig?.mode}/globalState`;

const globalStateDocs = {};
Expand Down
2 changes: 1 addition & 1 deletion src/lottery/routes/docs/invites.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { eventConfig } = require("../../../../loadenv");
const { eventConfig } = require("@/loadenv");
const apiPrefix = `/events/${eventConfig?.mode}/invites`;

const invitesDocs = {};
Expand Down
2 changes: 1 addition & 1 deletion src/lottery/routes/docs/items.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { eventConfig } = require("../../../../loadenv");
const { eventConfig } = require("@/loadenv");
const apiPrefix = `/events/${eventConfig?.mode}/items`;

const itemsDocs = {};
Expand Down
2 changes: 1 addition & 1 deletion src/lottery/routes/docs/publicNotice.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { eventConfig } = require("../../../../loadenv");
const { eventConfig } = require("@/loadenv");
const apiPrefix = `/events/${eventConfig?.mode}/publicNotice`;

const publicNoticeDocs = {};
Expand Down
2 changes: 1 addition & 1 deletion src/lottery/routes/docs/quests.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { eventConfig } = require("../../../../loadenv");
const { eventConfig } = require("@/loadenv");
const apiPrefix = `/events/${eventConfig?.mode}/quests`;

const questsDocs = {};
Expand Down
2 changes: 1 addition & 1 deletion src/lottery/routes/docs/swaggerDocs.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const { invitesSchema } = require("./schemas/invitesSchema");
const { itemsSchema } = require("./schemas/itemsSchema");
const { questsSchema } = require("./schemas/questsSchema");

const { eventConfig } = require("../../../../loadenv");
const { eventConfig } = require("@/loadenv");
const apiPrefix = `/events/${eventConfig?.mode}`;

const eventSwaggerDocs = {
Expand Down
2 changes: 1 addition & 1 deletion src/lottery/routes/docs/transactions.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { eventConfig } = require("../../../../loadenv");
const { eventConfig } = require("@/loadenv");
const apiPrefix = `/events/${eventConfig?.mode}/transactions`;

const transactionsDocs = {};
Expand Down
2 changes: 1 addition & 1 deletion src/lottery/routes/globalState.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ const globalStateHandlers = require("../services/globalState");
router.get("/", globalStateHandlers.getUserGlobalStateHandler);

// 아래의 Endpoint 접근 시 로그인 및 시각 체크 필요
router.use(require("../../middlewares/auth"));
router.use(require("../../middlewares/auth").default);
router.use(require("../middlewares/timestampValidator"));

router.post(
Expand Down
2 changes: 1 addition & 1 deletion src/lottery/routes/invites.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ router.get(
);

// 아래의 Endpoint 접근 시 로그인, 차단 여부 및 시각 체크 필요
router.use(require("../../middlewares/auth"));
router.use(require("../../middlewares/auth").default);
router.use(require("../middlewares/checkBanned"));
router.use(require("../middlewares/timestampValidator"));

Expand Down
2 changes: 1 addition & 1 deletion src/lottery/routes/items.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ router.get(
);

// 아래의 Endpoint 접근 시 로그인, 차단 여부 및 시각 체크 필요
router.use(require("../../middlewares/auth"));
router.use(require("../../middlewares/auth").default);
router.use(require("../middlewares/checkBanned"));
router.use(require("../middlewares/timestampValidator"));

Expand Down
2 changes: 1 addition & 1 deletion src/lottery/routes/quests.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const { questsZod } = require("./docs/schemas/questsSchema");
const questsHandlers = require("../services/quests");

// 아래의 Endpoint 접근 시 로그인, 차단 여부 및 시각 체크 필요
router.use(require("../../middlewares/auth"));
router.use(require("../../middlewares/auth").default);
router.use(require("../middlewares/checkBanned"));
router.use(require("../middlewares/timestampValidator"));

Expand Down
2 changes: 1 addition & 1 deletion src/lottery/routes/transactions.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ const router = express.Router();
const transactionsHandlers = require("../services/transactions");

// 아래의 Endpoint 접근 시 로그인 필요
router.use(require("../../middlewares/auth"));
router.use(require("../../middlewares/auth").default);

router.get("/", transactionsHandlers.getUserTransactionsHandler);

Expand Down
2 changes: 1 addition & 1 deletion src/lottery/schedules/detectAbusingUsers.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const {
} = require("../modules/slackNotification");
const logger = require("../../modules/logger");

const { eventConfig } = require("../../../loadenv");
const { eventConfig } = require("@/loadenv");
const eventPeriod = eventConfig && {
startAt: new Date(eventConfig.period.startAt),
endAt: new Date(eventConfig.period.endAt),
Expand Down
4 changes: 2 additions & 2 deletions src/lottery/services/globalState.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ const { eventStatusModel } = require("../modules/stores/mongo");
const { userModel } = require("../../modules/stores/mongo");
const logger = require("../../modules/logger");
const { isLogin, getLoginInfo } = require("../../modules/auths/login");
const { nodeEnv } = require("../../../loadenv");
const { nodeEnv } = require("@/loadenv");

const { eventConfig } = require("../../../loadenv");
const { eventConfig } = require("@/loadenv");
const contracts = require("../modules/contracts");
const quests = Object.values(contracts.quests);

Expand Down
2 changes: 1 addition & 1 deletion src/lottery/services/invites.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ const { eventStatusModel } = require("../modules/stores/mongo");
const { userModel } = require("../../modules/stores/mongo");
const logger = require("../../modules/logger");

const { eventConfig } = require("../../../loadenv");
const { eventConfig } = require("@/loadenv");

const searchInviterHandler = async (req, res) => {
try {
Expand Down
2 changes: 1 addition & 1 deletion src/lottery/services/items.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ const { userModel } = require("../../modules/stores/mongo");
const { isLogin, getLoginInfo } = require("../../modules/auths/login");
const logger = require("../../modules/logger");

const { eventConfig } = require("../../../loadenv");
const { eventConfig } = require("@/loadenv");
const contracts = require("../modules/contracts");

const getItemsHandler = async (req, res) => {
Expand Down
2 changes: 1 addition & 1 deletion src/lottery/services/publicNotice.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const {
publicNoticePopulateOption,
} = require("../modules/populates/transactions");

const { eventConfig } = require("../../../loadenv");
const { eventConfig } = require("@/loadenv");

/**
* getValueRank 사용자의 상품 구매 내역 또는 경품 추첨 내역의 순위 결정을 위한 가치를 평가하는 함수
Expand Down
2 changes: 1 addition & 1 deletion src/routes/admin.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ const resources = [
taxiFareModel,
]
.map(buildResource())
.concat(/*require("@/lottery").resources*/ []);
.concat(require("@/lottery").resources);

// Create router for admin page
const adminJS = new AdminJS({ resources });
Expand Down
12 changes: 6 additions & 6 deletions src/services/notifications.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ const logger = require("@/modules/logger").default;
const { registerDeviceToken, validateDeviceToken } = require("@/modules/fcm");

// 이벤트 코드입니다.
// const { contracts } = require("@/lottery");
import { contracts } from "@/lottery";

const registerDeviceTokenHandler = async (req, res) => {
try {
Expand Down Expand Up @@ -111,11 +111,11 @@ const editOptionsHandler = async (req, res) => {
}

// 이벤트 코드입니다.
// await contracts?.completeAdPushAgreementQuest(
// req.userOid,
// req.timestamp,
// options.advertisement
// );
await contracts?.completeAdPushAgreementQuest(
req.userOid,
req.timestamp,
options.advertisement
);

res.status(200).json(updatedNotificationOptions);
} catch (err) {
Expand Down
Loading

0 comments on commit b7d9389

Please sign in to comment.