Files
rekam_medis/server/routes/login_router.js
2022-05-04 00:44:09 +08:00

155 lines
3.8 KiB
JavaScript

// create express router
const express = require('express');
const router = express.Router()
const db = require('../database/index.js')
const tb_admin = db.admin
const tb_dokter = db.dokter
const tb_login = db.login
const tb_jadwal_dokter = db.jadwal_dokter
const Op = db.Sequelize.Op
var ironSession = require("iron-session/express").ironSession;
var session = ironSession({
cookieName: "myapp_cookiename",
// password: process.env.SECRET_COOKIE_PASSWORD,
password: 'complex_password_at_least_32_characters_long',
cookieOptions: {
secure: process.env.NODE_ENV === "production",
},
});
// create get request
// router.get('/', async (req, res) => {
// try {
// const admin = {
// nik: 214280224,
// nama: "aran",
// role: 'admin'
// }
// // find if admin with nik exists
// const admin_exist = await tb_admin.findByPk(admin.nik)
// console.log(admin_exist);
// // if admin exist
// if (admin_exist) {
// return res.status(400).send({status: false, message: `Admin dengan nik ${admin.nik} sudah ada`})
// }
// after_create_admin = await tb_admin.create(admin)
// const login = {
// username: 'kicap92',
// password: '5c188ab394811451656f8c7f33680127',
// role: 'admin',
// id_admin: 214280224
// }
// await tb_login.create(login)
// res.send({ status: true, message: "ini login get router" })
// } catch (error) {
// res.status(500).send({ status: false, message: error.message })
// }
// })
// create get request
router.get('/', session, async (req, res) => {
try {
const username = req.query.username
const password = req.query.password
const role = req.query.role
// console.log(username, password, role);
let cek_login = await tb_login.findOne({
where: {
username: username,
password: password,
role: role
}
})
// console.log(cek_login);
if (!cek_login) {
return res.status(400).send({ status: false, message: 'Username dan password salah' })
}
let cek_data;
if (role == 'Admin') {
cek_data = await tb_admin.findOne({
where: {
nik: cek_login.id_admin
}
})
} else if (role == 'Dokter') {
cek_data = await tb_dokter.findOne({
where: {
nik: cek_login.id_dokter
}
})
}
// add role to cek_data
// cek_data.role = role;
cek_data = cek_data.dataValues;
// console.log(req.session.user);
// session data
req.session.user = {
username: username,
password: password,
role: role,
nik: cek_data.nik,
};
await req.session.save();
res.send({ status: true, message: "ini login post router", data: cek_data })
} catch (error) {
res.status(500).send({ status: false, message: error.message })
}
})
// create /logout get request
router.get('/logout', session, async (req, res) => {
try {
// console.log(req.session.user);
req.session.destroy();
res.send({ status: true, message: "logout success" })
} catch (error) {
res.status(500).send({ status: false, message: error.message })
}
})
// create /jadwal_dokter get request
router.get('/jadwal_dokter', async (req, res) => {
console.log("sini untuk jadwal get")
try {
let today_date = new Date();
let days = ['Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu'];
let hari_ini = days[today_date.getDay()];
let all_jadwal = await tb_jadwal_dokter.findAll({
where: {
hari: hari_ini
},
include: {
model: tb_dokter,
attributes: ['nama', 'spesialis']
}
})
res.status(200).send({ status: true, data: all_jadwal })
} catch (err) {
console.log(err)
res.status(500).send({ status: false, message: "internal server error" })
}
})
module.exports = router