Initial commit

This commit is contained in:
meusinfirmary
2025-04-22 14:31:37 +07:00
commit b7e852126c
115 changed files with 23188 additions and 0 deletions

View File

@ -0,0 +1,37 @@
const Helper = require('../library/LibHelper');
const DriversModels = require('../models/DriversModels');
const LibJwt = require('../library/LibJwt');
const response = require('../config/response');
class AuthDriverMiddleware {
static async initialize(req, res, next) {
let apiRes = {};
try {
const tokenData = await LibJwt.verifyToken(req.headers['x-api-key']);
if (tokenData.type !== 'success') {
apiRes = JSON.parse(JSON.stringify(response[401]));
apiRes.meta.message += Helper.setErrMsg(': ' + tokenData.message);
return res.status(200).json(apiRes);
}
const phoneDevice = await DriversModels.getDeviceByImei(tokenData.data.device_id);
if (phoneDevice.length < 1) {
apiRes = JSON.parse(JSON.stringify(response[401]));
apiRes.meta.message += Helper.setErrMsg(': your session has expired');
return res.status(200).json(apiRes);
}
if (phoneDevice[0].is_login !== DriversModels.IS_LOGIN) {
apiRes = JSON.parse(JSON.stringify(response[401]));
apiRes.meta.message += Helper.setErrMsg(': your session has expired');
return res.status(200).json(apiRes);
}
req.auth = JSON.parse(JSON.stringify(tokenData.data));
next();
} catch (e) {
apiRes = JSON.parse(JSON.stringify(response[401]));
apiRes.meta.message += Helper.setErrMsg(': ' + e.message);
return res.status(200).json(apiRes);
}
}
}
module.exports = AuthDriverMiddleware.initialize;

View File

@ -0,0 +1,26 @@
const Helper = require('../library/LibHelper');
// const DriversModels = require('../models/DriversModels');
const LibJwt = require('../library/LibJwt');
const response = require('../config/response');
class AuthDriverMiddlewareNotStrict {
static async initialize(req, res, next) {
let apiRes = {};
try {
const tokenData = await LibJwt.verifyToken(req.headers['x-api-key']);
if (tokenData.type !== 'success') {
apiRes = JSON.parse(JSON.stringify(response[401]));
apiRes.meta.message += Helper.setErrMsg(': ' + tokenData.message);
return res.status(200).json(apiRes);
}
req.auth = JSON.parse(JSON.stringify(tokenData.data));
next();
} catch (e) {
apiRes = JSON.parse(JSON.stringify(response[401]));
apiRes.meta.message += Helper.setErrMsg(': ' + e.message);
return res.status(200).json(apiRes);
}
}
}
module.exports = AuthDriverMiddlewareNotStrict.initialize;

View File

@ -0,0 +1,32 @@
const Helper = require('../library/LibHelper');
// const UsersModels = require('../models/UsersModels');
const LibJwt = require('../library/LibJwt');
const response = require('../config/response');
class AuthMiddleware {
static async initialize(req, res, next) {
let apiRes = {};
try {
const tokenData = await LibJwt.verifyToken(req.headers['x-api-key']);
if (tokenData.type !== 'success') {
apiRes = JSON.parse(JSON.stringify(response[401]));
apiRes.meta.message += Helper.setErrMsg(': ' + tokenData.message);
return res.status(200).json(apiRes);
}
req.jwt = tokenData.data;
// const getUser = await UsersModels.find(req.jwt.uid);
// if (getUser.length < 1) {
// apiRes = JSON.parse(JSON.stringify(response[401]));
// return res.status(200).json(apiRes);
// }
req.jwt.hub_id = getUser[0].hub_id;
next();
} catch (e) {
apiRes = JSON.parse(JSON.stringify(response[401]));
apiRes.meta.message += Helper.setErrMsg(': ' + e.message);
return res.status(200).json(apiRes);
}
}
}
module.exports = AuthMiddleware.initialize;

View File

@ -0,0 +1,17 @@
const morgan = require('morgan');
const LibWinston = require('../library/LibWinston');
const customFormat = "{remoteAddr:':remote-addr', remoteUser:':remote-user', date:':date[iso]', method:':method', url:':url', http:'HTTP/:http-version', statusCode:':status', contentLength:':res[content-length]', referrer:':referrer', userAgent:':user-agent'}";
class MorganMiddleware {
static initialize() {
return morgan(customFormat, {
stream: {
write: (msg) => LibWinston.http(msg),
},
// skip: (req, res) => res.statusCode < 400,
});
}
}
module.exports = MorganMiddleware.initialize();