Status function change to auto update

This commit is contained in:
ZacTohZY
2024-08-12 19:06:26 +08:00
parent d89a58f809
commit 80a9e9edd3
7 changed files with 119 additions and 72 deletions

View File

@@ -1,22 +1,32 @@
module.exports = (sequelize, DataTypes) => {
const Schedule = sequelize.define("Schedule", {
dateTime: {
type: DataTypes.DATE,
allowNull: false
const { DataTypes } = require("sequelize");
module.exports = (sequelize) => {
const Schedule = sequelize.define(
"Schedule",
{
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
allowNull: false,
primaryKey: true,
},
dateTime: {
type: DataTypes.DATE,
allowNull: false
},
location: {
type: DataTypes.TEXT,
allowNull: false
},
postalCode: {
type: DataTypes.INTEGER(6),
allowNull: false
},
status: {
type: DataTypes.TEXT,
allowNull: false
},
},
location: {
type: DataTypes.TEXT,
allowNull: false
},
postalCode: {
type: DataTypes.INTEGER(6),
allowNull: false
},
status: {
type: DataTypes.TEXT,
allowNull: false
},
},
{
tableName: "schedule"
});

View File

@@ -14,6 +14,7 @@
"axios": "^1.7.2",
"bad-words": "^3.0.4",
"cors": "^2.8.5",
"dayjs": "^1.11.12",
"dotenv": "^16.4.5",
"express": "^4.19.2",
"jsonwebtoken": "^9.0.2",

8
server/pnpm-lock.yaml generated
View File

@@ -20,6 +20,9 @@ importers:
cors:
specifier: ^2.8.5
version: 2.8.5
dayjs:
specifier: ^1.11.12
version: 1.11.12
dotenv:
specifier: ^16.4.5
version: 16.4.5
@@ -327,6 +330,9 @@ packages:
resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==}
engines: {node: '>= 0.10'}
dayjs@1.11.12:
resolution: {integrity: sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==}
debug@2.6.9:
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
peerDependencies:
@@ -1229,6 +1235,8 @@ snapshots:
object-assign: 4.1.1
vary: 1.1.2
dayjs@1.11.12: {}
debug@2.6.9:
dependencies:
ms: 2.0.0

View File

@@ -3,6 +3,7 @@ const router = express.Router();
const { Schedule } = require('../models');
const { Op } = require("sequelize");
const yup = require("yup");
const dayjs = require('dayjs');
router.post("/", async (req, res) => {
let data = req.body;
@@ -104,5 +105,27 @@ router.delete("/:id", async (req, res) => {
}
});
router.patch("/:id/status", async (req, res) => {
try {
const { id } = req.params;
const schedule = await Schedule.findByPk(id);
if (!schedule) {
return res.status(404).json({ message: 'Schedule not found' });
}
const now = dayjs();
const scheduleDateTime = dayjs(schedule.dateTime);
const newStatus = scheduleDateTime.isAfter(now) ? "Up coming" : "Ended";
schedule.status = newStatus;
await schedule.save();
res.status(200).json(schedule);
} catch (error) {
console.error("Error updating status:", error); // Log the error
res.status(500).json({ message: error.message });
}
});
module.exports = router;