const db = require("../config/db"); class HistoryEntranceService { getHistoryEntrance(entrance_id) { return new Promise((res, rej) => { let sql = ` SELECT * FROM entrance_history WHERE entrance_history.entrance_id = '${entrance_id}' ORDER BY entrance_history.date_start `; db.all(sql, (err, rows) => { if (err) { console.error(err.message); return res(false); } else { let data = rows.map((row) => { return { "id": Number(row.id), "entrance_id": Number(row.entrance_id), "name": row.name, "group_id": Number(row.group_id), "sheep_id": Number(row.sheep_id), "working": Number(row.working) == 0 ? false : true, "date": { "start": Number(row.date_start), "end": row.date_end ? Number(row.date_end) : null } } }) return res(data); } }); }); } createHistoryEntrance(entrance_id, data) { return new Promise((res, rej) => { let sql = 'INSERT INTO entrance_history(entrance_id, name, date_start, group_id, sheep_id, working) VALUES (?, ?, ?, ?, ?, ?)'; db.run(sql, [ entrance_id, data.name, Math.floor(new Date(Date.now()).getTime()), Number(data.group_id), Number(data.sheep_id), 1 ], function(err) { if (err) { console.error(err.message); return res(false); } else if (this.changes === 0) { return res(false); } else { res({ "create": "ok", "id": this.lastID }); } }); }); } updateHistoryEntrance(entrance_id) { return new Promise((res, rej) => { console.log(Number(entrance_id)); let sql = 'UPDATE entrance_history SET date_end = ?, working = ? WHERE id = ?'; db.run(sql, [ Math.floor(new Date(Date.now()).getTime()), 0, Number(entrance_id) ], function(err) { if (err) { console.error(err.message); return res(false); } else if (this.changes === 0) { return res(false); } else { res({ "update": "ok", "id": entrance_id }); } }); }); } deleteHistoryEntrance(entrance_id) { return new Promise((res, rej) => { db.run('DELETE FROM entrance_history WHERE id = ?', [Number(entrance_id)], function(err) { if (err) { console.error(err.message); return res(false); } else if (this.changes === 0) { return res(false); } else { res({ "delete": "ok", "id": entrance_id }); } }); }); } } module.exports = new HistoryEntranceService();