diff --git a/itu-minitwit-node/src/model/Latest.js b/itu-minitwit-node/src/model/Latest.js new file mode 100644 index 00000000..00b081ba --- /dev/null +++ b/itu-minitwit-node/src/model/Latest.js @@ -0,0 +1,17 @@ +const { DataTypes } = require('sequelize'); +const sequelize = require('../db/sequelize'); + +const Latest = sequelize.define('latest', { + latest_id: { + type: DataTypes.INTEGER.UNSIGNED, + primaryKey: true, + allowNull: false, + autoIncrement: false + }, +},{ + tableName: 'latest', + timestamps: false + }) + + +module.exports = Latest; \ No newline at end of file diff --git a/itu-minitwit-node/src/routes/simulator.js b/itu-minitwit-node/src/routes/simulator.js index 692ee915..2cc6e224 100644 --- a/itu-minitwit-node/src/routes/simulator.js +++ b/itu-minitwit-node/src/routes/simulator.js @@ -22,7 +22,8 @@ const getFollowersFromUser = new GetFollowersFromUser(); //Routing router.get('/latest', async function (req, res) { - res.send({ latest: latestService.getLatest() }); + const latest = await latestService.getLatestSeq() + res.send({ latest }); }) router.post("/register", async function (req, res, next) { @@ -44,7 +45,7 @@ router.post("/register", async function (req, res, next) { //Updates Latest var latest = req.query.latest; if (latest !== undefined && !isNaN(parseInt(latest))) { - await latestService.updateLatest(parseInt(latest)); + await latestService.updateLatestSeq(parseInt(latest)); } //Checks if username is taken diff --git a/itu-minitwit-node/src/services/LatestService.js b/itu-minitwit-node/src/services/LatestService.js index 02933f2d..d6da898d 100644 --- a/itu-minitwit-node/src/services/LatestService.js +++ b/itu-minitwit-node/src/services/LatestService.js @@ -1,8 +1,18 @@ -const database = require('../db/dbService') +const database = require('../db/dbService'); +const Latest = require('../model/Latest'); module.exports = class LatestService { constructor() { } + + async getLatestSeq() { + const latest = await Latest.findOne(); + return new Promise((resolve, reject) => { + latest ? resolve(latest.latest_id) : reject(new Error("No rows found")); + }); + } + + /* async getLatest() { const query = "SELECT latest_id FROM latest;"; return new Promise((resolve, reject) => { @@ -15,8 +25,20 @@ module.exports = class LatestService { } }); }) + }*/ + + async updateLatestSeq(value){ + const latest = await Latest.findOne() + const update = await Latest.update( + { latest_id: value }, + { where: { latest_id: latest.latest_id }} + ) + return new Promise((resolve, reject) => { + update ? resolve() : reject(update) + }) } + /* async updateLatest(value) { return new Promise((resolve, reject) => { const query = "UPDATE latest SET latest_id = ?;"; @@ -28,6 +50,7 @@ module.exports = class LatestService { } }); }); - } + */ + }