diff --git a/runscript.sh b/runscript.sh new file mode 100644 index 0000000..2126bf7 --- /dev/null +++ b/runscript.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +docker build -t lasertag-backend . +# Start your containers with docker-compose +docker-compose up -d + +# Wait for all containers to be healthy (customize as needed) +docker-compose ps | grep ' Up ' | wc -l | while read -r count; do + if [ "$count" -lt $(docker-compose ps | grep ' Up ' | wc -l) ]; then + sleep 1 + else + break + fi +done + +# Run your post-startup commands here +echo "All containers are up and running. Running post-startup commands..." + diff --git a/src/controllers/createdatacontroller.js b/src/controllers/createdatacontroller.js deleted file mode 100644 index 91ed9f6..0000000 --- a/src/controllers/createdatacontroller.js +++ /dev/null @@ -1,101 +0,0 @@ -import Slot from "../models/slotModel.js"; -import User from "../models/userModel.js"; -import catchAsync from "../helpers/catchAsync.js"; -import Logger from "../initializers/logger.js"; -import moment from "moment-timezone"; - -const CreateDataController = catchAsync( - async (req, res) => { - User.deleteMany({}); - Slot.deleteMany({}); - User.create([ - { - regno: "22BCE2700", - phoneno: "7483555328", - email: "yoswal99@gmail.com", - scope: "ADMIN" - }, - { - regno: "22BKT0060", - email: "manaslaud@hotmail.com", - scope: "ADMIN" - }, - { - email: "anubhav.aryan02@gmail.com" - }, - { - email: "ansu.banerjee2022@vitstudent.ac.in" - }, - { - email: "ojas.tapadia2022@vitstudent.ac.in" - }, - { - email: "aaryan.narang2022@vitstudent.ac.in" - }, - { - email: "sourishgupta02@gmail.com" - }, - { - email: "alishabandyopadhyay07@gmail.com" - } - ]) - .then((createdUser) => { - console.log("User Created: " + createdUser); - }) - .catch((err) => { - console.log("Unable to create User: " + err); - }); - - Slot.create([ - { - startTime: new moment.tz("2023-09-22T08:00:00", 'Asia/Kolkata').utc().toDate(), - endTime: new moment.tz("2023-09-22T08:10:00", 'Asia/Kolkata').utc().toDate(), - day: 1, - isCarry: true - }, - { - startTime: new moment.tz("2023-09-22T08:15:00", 'Asia/Kolkata').utc().toDate(), - endTime: new moment.tz("2023-09-22T08:25:00", 'Asia/Kolkata').utc().toDate(), - day: 1, - isCarry: true - }, - { - startTime: new moment.tz("2023-09-22T08:30:00", 'Asia/Kolkata').utc().toDate(), - endTime: new moment.tz("2023-09-22T08:40:00", 'Asia/Kolkata').utc().toDate(), - day: 1, - isCarry: true - }, - { - startTime: new moment.tz("2023-09-22T08:45:00", 'Asia/Kolkata').utc().toDate(), - endTime: new moment.tz("2023-09-22T08:55:00", 'Asia/Kolkata').utc().toDate(), - day: 1, - isCarry: false - }, - { - startTime: new moment.tz("2023-09-22T09:00:00", 'Asia/Kolkata').utc().toDate(), - endTime: new moment.tz("2023-09-22T09:10:00", 'Asia/Kolkata').utc().toDate(), - day: 1, - isCarry: false - }, - { - startTime: new moment.tz("2023-09-17T08:00:00", 'Asia/Kolkata').utc().toDate(), - endTime: new moment.tz("2023-09-17T08:10:00", 'Asia/Kolkata').utc().toDate(), - day: 1, - isCarry: false - }, - { - startTime: new moment.tz("2023-09-17T22:00:00", 'Asia/Kolkata').utc().toDate(), - endTime: new moment.tz("2023-09-17T22:10:00", 'Asia/Kolkata').utc().toDate(), - day: 1, - isCarry: false - } - ]) - .then(() => {console.log("Slot successfully created.")}) - .catch((err) => {console.log("Slot unable to be created." + err)}); - - Logger.info("Dummy data created."); - return res.status(200).json({message: "Dummy data succesfully created."}); - } -); - -export default CreateDataController; \ No newline at end of file diff --git a/src/controllers/createslotdatacontroller.js b/src/controllers/createslotdatacontroller.js new file mode 100644 index 0000000..0b8c31f --- /dev/null +++ b/src/controllers/createslotdatacontroller.js @@ -0,0 +1,54 @@ +import Slot from "../models/slotModel.js"; +import catchAsync from "../helpers/catchAsync.js"; +import moment from "moment-timezone"; + +const year = 2023; +const month = 9; +const monthDays = [22, 23, 24]; +const hours = [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]; +const mins = [0, 10, 15, 25, 30, 40, 45, 55]; +const curTimezone = 'Asia/Kolkata'; +const targetTimezone = 'UTC'; + +const CreateSlotDataController = catchAsync( + async () => { + for (let dy of monthDays) { + let carrySlotTime = new moment.tz([year, month, dy, 8, 30, 0], curTimezone).tz(targetTimezone).toDate(); + for (let hr of hours) { + for (let mn = 0; mn < mins.length; mn += 2) { + let startTime = new moment.tz([year, month, dy, hr, mins[mn], 0], curTimezone).tz(targetTimezone).toDate(); + let endTime = new moment.tz([year, month, dy, hr, mins[mn + 1], 0], curTimezone).tz(targetTimezone).toDate(); + let day = 1; + let isCarry = false; + if (dy == 22) { + day = 1; + } + else if (dy == 23) { + day = 2; + } + else { + day = 3; + } + if (hr == 8) { + if (startTime.getTime() <= carrySlotTime.getTime()) { + isCarry = true; + } + } + + let newSlot = { + startTime: startTime, + endTime: endTime, + day: day, + isCarry: isCarry + }; + + Slot.create([newSlot]) + .catch((err) => { + console.log(`Slot unable to be created: ${err}`); + }); + } + } + } +}); + +export default CreateSlotDataController; \ No newline at end of file diff --git a/src/controllers/createuserdatacontroller.js b/src/controllers/createuserdatacontroller.js new file mode 100644 index 0000000..6e7c0f8 --- /dev/null +++ b/src/controllers/createuserdatacontroller.js @@ -0,0 +1,54 @@ +import Slot from "../models/slotModel.js"; +import User from "../models/userModel.js"; +import catchAsync from "../helpers/catchAsync.js"; +import Logger from "../initializers/logger.js"; +import moment from "moment-timezone"; + +const CreateUserDataController = catchAsync( + async (req, res) => { + User.deleteMany({}); + Slot.deleteMany({}); + User.create([ + { + regno: "22BCE2700", + phoneno: "7483555328", + email: "yoswal99@gmail.com", + scope: "ADMIN" + }, + { + regno: "22BKT0060", + email: "manaslaud@hotmail.com", + scope: "ADMIN" + }, + { + email: "anubhav.aryan02@gmail.com" + }, + { + email: "ansu.banerjee2022@vitstudent.ac.in" + }, + { + email: "ojas.tapadia2022@vitstudent.ac.in" + }, + { + email: "aaryan.narang2022@vitstudent.ac.in" + }, + { + email: "sourishgupta02@gmail.com" + }, + { + email: "alishabandyopadhyay07@gmail.com" + } + ]) + .then((createdUser) => { + console.log("User Created: " + createdUser); + }) + .catch((err) => { + console.log("Unable to create User: " + err); + }); + + Logger.info("Dummy data created."); + return res.status(200).json({message: "Dummy data succesfully created."}); + } +); + +export default CreateUserDataController; \ No newline at end of file diff --git a/src/index.js b/src/index.js index 5f7d221..4b80993 100644 --- a/src/index.js +++ b/src/index.js @@ -12,7 +12,8 @@ import cancelslot from "./routes/cancelslot.js"; import adminslotinfo from "./routes/adminslotinfo.js"; import admincancelslot from "./routes/admincancelslot.js"; import adminassignslot from "./routes/adminassignslot.js"; -import createdata from "./routes/createdata.js"; +import createuserdata from "./routes/createuserdata.js"; +import createslotdata from "./routes/createslotdata.js"; import cors from "cors"; import adminscan from "./routes/adminscan.js"; @@ -35,8 +36,9 @@ app.use("/cancel-slot", cancelslot); app.use("/admin-slot-info", adminslotinfo); app.use("/admin-cancel-slot", admincancelslot); app.use("/admin-assign-slot", adminassignslot); -app.use("/create-data", createdata); +app.use("/create-user-data", createuserdata); app.use("/admin-scan", adminscan); +app.use("/create-slot-data", createslotdata); app.listen(port, () => { console.log(`Server running at http://localhost:${port}`); diff --git a/src/routes/createdata.js b/src/routes/createdata.js deleted file mode 100644 index ec3371f..0000000 --- a/src/routes/createdata.js +++ /dev/null @@ -1,8 +0,0 @@ -import express from "express"; -import CreateDataController from "../controllers/createdatacontroller.js"; - -const createdata = express.Router(); - -createdata.post("/", CreateDataController); - -export default createdata; \ No newline at end of file diff --git a/src/routes/createslotdata.js b/src/routes/createslotdata.js new file mode 100644 index 0000000..d3e9f1d --- /dev/null +++ b/src/routes/createslotdata.js @@ -0,0 +1,8 @@ +import express from "express"; +import CreateSlotDataController from "../controllers/slotdata.js"; + +const createslotdata = express.Router(); + +createslotdata.post("/", CreateSlotDataController); + +export default createslotdata; \ No newline at end of file diff --git a/src/routes/createuserdata.js b/src/routes/createuserdata.js new file mode 100644 index 0000000..307ee63 --- /dev/null +++ b/src/routes/createuserdata.js @@ -0,0 +1,8 @@ +import express from "express"; +import CreateUserDataController from "../controllers/createuserdatacontroller.js"; + +const createuserdata = express.Router(); + +createuserdata.post("/", CreateUserDataController); + +export default createuserdata; \ No newline at end of file