유명현

ADD: cron message + clean-up unessential message

...@@ -10,12 +10,6 @@ sequelize ...@@ -10,12 +10,6 @@ sequelize
10 .sync({ force: false }) 10 .sync({ force: false })
11 .then(() => { 11 .then(() => {
12 console.log("database connection complete"); 12 console.log("database connection complete");
13 - database.addKeyword("rtx3060", "junseok");
14 - database.getKeywordsByUserId("junseok");
15 - database.deleteKeyword("phobyjun", "rtx3080");
16 - database.getAllUsers();
17 - database.getUsersByKeyword("rtx3060");
18 - database.getAllKeywords();
19 }) 13 })
20 .catch((err) => { 14 .catch((err) => {
21 console.log("database connection failed"); 15 console.log("database connection failed");
......
1 +const { marketMultiSearch } = require("../search/marketSearch");
2 +const setCarouselMessage = require("../message/setCarouselMessage");
3 +// Database APIs
4 +const db = require("../../apis/database");
5 +// API List
6 +// database.addKeyword = async function(keyword, userId)
7 +// database.deleteKeyword = async function(userId, keyword)
8 +// database.getKeywordsByUserId = async function(userId)
9 +// database.getUsersByKeyword = async function(keyword)
10 +// database.getAllUsers = async function()
11 +// database.getAllKeywords = async function()
12 +
13 +const checkMamul = (client) => {
14 + db.getAllKeywords().then((keywords) => {
15 + for (let i = 0, pending = Promise.resolve(); i < keywords.length; i++) {
16 + pending = db.getUsersByKeyword(keywords[i]).then((userIds) => {
17 + marketMultiSearch(keywords[i]).then((res) => {
18 + client.multicast(userIds, [setCarouselMessage(res)]);
19 + });
20 + });
21 + }
22 + });
23 +};
24 +
25 +module.exports = { checkMamul };
...@@ -15,6 +15,12 @@ const { marketMultiSearch } = require("./search/marketSearch"); ...@@ -15,6 +15,12 @@ const { marketMultiSearch } = require("./search/marketSearch");
15 // File search - Will be deleted (Unused) 15 // File search - Will be deleted (Unused)
16 const fs = require("fs"); 16 const fs = require("fs");
17 17
18 +// Cron for Mamul Notification
19 +const schedule = require("node-schedule");
20 +const job = schedule.scheduleJob("0 */1 * * *", () => {
21 + checkMamul(client);
22 +});
23 +
18 // Database APIs 24 // Database APIs
19 const db = require("../apis/database"); 25 const db = require("../apis/database");
20 // API List 26 // API List
...@@ -32,6 +38,10 @@ const config = { ...@@ -32,6 +38,10 @@ const config = {
32 channelSecret: process.env.channelSecret, 38 channelSecret: process.env.channelSecret,
33 }; 39 };
34 40
41 +// Cron for Mamul Notification
42 +const { checkMamul } = require("./checkMamul/checkMamul");
43 +
44 +// Line chat bot client & event
35 const client = new line.Client(config); 45 const client = new line.Client(config);
36 46
37 let waitNewMamulList = []; // 매물 키워드 입력 기다리는 목록 47 let waitNewMamulList = []; // 매물 키워드 입력 기다리는 목록
......
This diff is collapsed. Click to expand it.
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
20 "dotenv": "^16.0.1", 20 "dotenv": "^16.0.1",
21 "express": "^4.18.1", 21 "express": "^4.18.1",
22 "mysql2": "^2.3.3", 22 "mysql2": "^2.3.3",
23 + "node-schedule": "^2.1.0",
23 "nodemon": "^2.0.16", 24 "nodemon": "^2.0.16",
24 "sequelize": "^6.20.0" 25 "sequelize": "^6.20.0"
25 } 26 }
......