first commit
This commit is contained in:
414
adapter/employeeadapter.js
Normal file
414
adapter/employeeadapter.js
Normal file
@ -0,0 +1,414 @@
|
||||
const db=require('../config/dbproc.js');
|
||||
const Adapter=require('./dbadapter.js');
|
||||
const MainAdapter = require('./mainadapter.js');
|
||||
const mainadapter = new MainAdapter();
|
||||
const jwt = require('jsonwebtoken');
|
||||
const request = require('request');
|
||||
const baseldap="https://mw.telkomcel.tl/tcel/v1/portal/";
|
||||
const basetokenldap="https://mw.telkomcel.tl/tcel/v1/portal/tokenLDAP/";
|
||||
// const Controller = require('../../WebServicesWakepo/controllers/controller.js');
|
||||
|
||||
class EmployeeAdapter extends Adapter{
|
||||
constructor(){
|
||||
super();
|
||||
}
|
||||
|
||||
|
||||
async queryEmployeeAuth(req,callback){
|
||||
try {
|
||||
var apires = this.getApiResultDefined();
|
||||
let resuri={
|
||||
'method': 'post',
|
||||
'url': baseldap+'loginLDAP',
|
||||
'headers': {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
'Authorization': 'Bearer isadjoijoij87y123jkj912839u1201932'
|
||||
},
|
||||
form: {
|
||||
"nik":req.body.nik,
|
||||
"pass":req.body.pass,
|
||||
"app":"e-Procurement"
|
||||
},
|
||||
};
|
||||
|
||||
//console.log(resuri);
|
||||
request(resuri, function (error, response) {
|
||||
if (error) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = error.toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
else
|
||||
{
|
||||
var res = JSON.parse(response.body);
|
||||
var token = res['data']['data']['token'];
|
||||
// console.log(token);
|
||||
// console.log(res['data']['status']);
|
||||
if(res['data']['status']=='success'){
|
||||
// if(200==200){
|
||||
resuri={
|
||||
'method': 'post',
|
||||
'url': basetokenldap,
|
||||
'headers': {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
'Authorization': 'Bearer isadjoijoij87y123jkj912839u1201932'
|
||||
},
|
||||
form: {
|
||||
"nik":req.body.nik,
|
||||
"token":token,
|
||||
"otp":1
|
||||
}
|
||||
}
|
||||
// console.log(resuri);
|
||||
request(resuri, function (error, resp1) {
|
||||
if (error) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = error.toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
else
|
||||
{
|
||||
var res=JSON.parse(resp1.body);
|
||||
console.log(res);
|
||||
if(res['data']['status']=='error'){
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = res['data']['message'].toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
else{
|
||||
mainadapter.queryGetToken(req,function(err,data){
|
||||
let statusCode = data!=null ? data.meta.code : 200 ;
|
||||
let message = data.meta.message;
|
||||
let success = true;
|
||||
// console.log(data);
|
||||
if(err) {
|
||||
statusCode = 500;
|
||||
success = false;
|
||||
}
|
||||
apires.meta.code = statusCode;
|
||||
apires.meta.message = message;
|
||||
apires.success = success;
|
||||
apires.data = data.data;
|
||||
// console.log(apires);
|
||||
callback(null,apires);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
else{
|
||||
apires.meta.code = 201;
|
||||
apires.meta.message = "Get token failed or LDAP authentication not authorize";
|
||||
callback(null, apires);
|
||||
}
|
||||
}
|
||||
});
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
}
|
||||
|
||||
async queryEmployeeWithoutAuth(req,callback){
|
||||
try {
|
||||
var apires = this.getApiResultDefined();
|
||||
let resuri={
|
||||
'method': 'post',
|
||||
'url': baseldap+'loginLDAP',
|
||||
'headers': {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
'Authorization': 'Bearer isadjoijoij87y123jkj912839u1201932'
|
||||
},
|
||||
form: {
|
||||
"nik":req.body.nik,
|
||||
"pass":req.body.pass,
|
||||
"app":"e-Procurement"
|
||||
},
|
||||
};
|
||||
|
||||
// console.log(resuri);
|
||||
// request(resuri, function (error, response) {
|
||||
// if (error) {
|
||||
// apires.meta.code = 500;
|
||||
// apires.meta.message = error.toString();
|
||||
// callback('error',apires);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// console.log(response.body);
|
||||
// var res = JSON.parse(response.body);
|
||||
// console.log(res);
|
||||
// console.log(res['data']['res']);
|
||||
// if(res['data']['res']==200){
|
||||
if(200==200){
|
||||
mainadapter.queryGetToken(req,function(err,data){
|
||||
let statusCode = data!=null ? data.meta.code : 200 ;
|
||||
let message = data.meta.message;
|
||||
let success = true;
|
||||
// console.log(data);
|
||||
if(err) {
|
||||
statusCode = 500;
|
||||
success = false;
|
||||
}
|
||||
apires.meta.code = statusCode;
|
||||
apires.meta.message = message;
|
||||
apires.success = success;
|
||||
apires.data = data.data;
|
||||
// console.log(apires);
|
||||
callback(null,apires);
|
||||
});
|
||||
|
||||
}
|
||||
else{
|
||||
apires.meta.code = 201;
|
||||
apires.meta.message = "Get token failed or LDAP authentication not authorize";
|
||||
callback(null, apires);
|
||||
}
|
||||
// }
|
||||
// });
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
}
|
||||
|
||||
async queryEmployeeAccessibility(req, callback){
|
||||
try {
|
||||
var apires = this.getApiResultDefined();
|
||||
var nik = req.body.nik;
|
||||
// let qry = "select * from vw_menusaccessibility where nik='"+nik+"'";
|
||||
let qry = "select ifnull(t._idx,n._idx) _idx,ifnull(t.menutext,n.menutext) menutext,";
|
||||
qry = qry +"ifnull(t.sort, n.sort) sort,ifnull(t.idemployee,0) idemployee,ifnull(t.nik,'') nik,ifnull(t.isactivated,0) isactivated from ";
|
||||
qry = qry +"tbl_menus n left join (select * from vw_menusaccessibility where nik='"+nik+"') t on n._idx=t._idx or t._idx is null";
|
||||
|
||||
// console.log(qry);
|
||||
db.query(qry,[],function(err,result,fields){
|
||||
if(err){
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('err',apires);
|
||||
}
|
||||
else
|
||||
{
|
||||
let resultJson = JSON.stringify(result);
|
||||
resultJson = JSON.parse(resultJson);
|
||||
apires.success = true;
|
||||
apires.data = resultJson;
|
||||
callback(null,apires);
|
||||
}
|
||||
});
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
}
|
||||
|
||||
async queryEmployeeSetMenuAccessibility(req, callback){
|
||||
try {
|
||||
var apires = this.getApiResultDefined();
|
||||
var idemployee = req.body.idemployee;
|
||||
var nik = req.body.nik;
|
||||
var datamenu = JSON.parse(req.body.datamenu);
|
||||
var userby = req.body.userby;
|
||||
|
||||
// console.log(datamenu);return false;
|
||||
var dataRows = datamenu.length;
|
||||
Object.keys(datamenu).forEach(function(key){
|
||||
var idxmenu =datamenu[key]['idxmenu'];
|
||||
var isactivated = datamenu[key]['isactivated'];
|
||||
let qrym="insert into tbl_employee_accessibility ";
|
||||
qrym=qrym+"set idemployee='"+idemployee+"',nik='"+nik+"',idxmenu='"+idxmenu+"',isactivated='"+isactivated+"',";
|
||||
qrym=qrym+"iby='"+userby+"',idt=now()";
|
||||
|
||||
let qry="select _idx from tbl_employee_accessibility where nik='"+nik+"' and idxmenu='"+idxmenu+"' and isdeleted=0 order by _idx asc limit 1";
|
||||
db.query(qry,[],function(err,result,fields){
|
||||
if(err){
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('err',apires);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(result.length>0){
|
||||
qrym="update tbl_employee_accessibility ";
|
||||
qrym=qrym+"set isactivated='"+isactivated+"',uby='"+userby+"',udt=now()";
|
||||
qrym=qrym+"where _idx='"+result[0]['_idx']+"'";
|
||||
}
|
||||
|
||||
// console.log(qrym);
|
||||
db.query(qrym,[],function(err,result,fields){
|
||||
if(err){
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('err',apires);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(0 === --dataRows){
|
||||
apires.success = true;
|
||||
apires.data = "Data Has been Saved";
|
||||
callback(null,apires);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
// console.log(qry);
|
||||
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
}
|
||||
|
||||
async queryListEmployee(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let qry = "select * from vw_employee order by id asc";
|
||||
|
||||
// console.log(qry);
|
||||
db.query(qry,[],function(err,result,fields){
|
||||
if(err){
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('err',apires);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(result.length>0){
|
||||
apires.success = true;
|
||||
apires.data = JSON.parse(JSON.stringify(result));
|
||||
}
|
||||
else{
|
||||
apires.meta.code = 200;
|
||||
apires.meta.message = "Record Not Found";
|
||||
}
|
||||
callback(null, apires);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
}
|
||||
|
||||
async queryEmployeeMenus(req,callback){
|
||||
try {
|
||||
let apires = this.getApiResultDefined();
|
||||
let nik = req.body.nik;
|
||||
let qry = "select * from vw_emp_accessibility where nik='" + nik + "' and menutype<>'D' order by sort,name asc";
|
||||
// console.log(qry);
|
||||
db.query(qry,[],function(err,result,fields){
|
||||
if(err){
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('err',apires);
|
||||
}
|
||||
else
|
||||
{
|
||||
let menusRows = result.length;
|
||||
if(menusRows>0){
|
||||
Object.keys(result).forEach(function(key){
|
||||
qry = "select * from vw_emp_accessibility where menuheader='"+result[key]['_idx']+"' and nik='" + nik + "' and menutype='D' order by _idx asc";
|
||||
db.query(qry,[],function(err,resultsubmenus,fields){
|
||||
if(err){
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback(apires,null);
|
||||
}
|
||||
else{
|
||||
// result[key]['submenus'] = [];
|
||||
if(resultsubmenus.length>0){
|
||||
// result[key]['countSubmenus'] = resultsubmenus.length;
|
||||
Object.keys(resultsubmenus).forEach(function(key){
|
||||
delete resultsubmenus[key]['_idx'];
|
||||
delete resultsubmenus[key]['menuid'];
|
||||
delete resultsubmenus[key]['menuheader'];
|
||||
delete resultsubmenus[key]['isactivated'];
|
||||
delete resultsubmenus[key]['nik'];
|
||||
delete resultsubmenus[key]['menutype'];
|
||||
delete resultsubmenus[key]['class'];
|
||||
delete resultsubmenus[key]['icon'];
|
||||
})
|
||||
result[key]['submenu'] = JSON.parse(JSON.stringify(resultsubmenus));
|
||||
}
|
||||
if(result[key]['menutype']=='H'){
|
||||
delete result[key]['_idx'];
|
||||
delete result[key]['menuid'];
|
||||
delete result[key]['menuheader'];
|
||||
delete result[key]['isactivated'];
|
||||
delete result[key]['nik'];
|
||||
delete result[key]['menutype'];
|
||||
}
|
||||
if(result[key]['menutype']=='H1'){
|
||||
result[key]['navheader']=result[key]['name'];
|
||||
delete result[key]['_idx'];
|
||||
delete result[key]['menuid'];
|
||||
delete result[key]['menuheader'];
|
||||
delete result[key]['isactivated'];
|
||||
delete result[key]['nik'];
|
||||
delete result[key]['menutype'];
|
||||
delete result[key]['i18n'];
|
||||
delete result[key]['class'];
|
||||
delete result[key]['url'];
|
||||
delete result[key]['slug'];
|
||||
delete result[key]['name'];
|
||||
}
|
||||
|
||||
if(result[key]['menutype']=='S'){
|
||||
delete result[key]['_idx'];
|
||||
delete result[key]['menuid'];
|
||||
delete result[key]['menuheader'];
|
||||
delete result[key]['isactivated'];
|
||||
delete result[key]['nik'];
|
||||
delete result[key]['menutype'];
|
||||
}
|
||||
if(0 === --menusRows){
|
||||
|
||||
let resultJson = JSON.stringify(result);
|
||||
resultJson = JSON.parse(resultJson);
|
||||
apires.success = true;
|
||||
apires.data = resultJson;
|
||||
callback(null,apires);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
else{
|
||||
apires.meta['message'] = "Menu not found for nik "+nik;
|
||||
apires.meta['code'] = 201;
|
||||
callback('err',apires);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error', apires);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
module.exports = EmployeeAdapter;
|
||||
Reference in New Issue
Block a user