196 lines
5.5 KiB
JavaScript
196 lines
5.5 KiB
JavaScript
const nodemailer = require('nodemailer');
|
|
const request = require('request');
|
|
var baseurlsms="https://mw.telkomcel.tl/tcel/v1/portal/sms/";
|
|
|
|
class Controller{
|
|
constructor(){
|
|
|
|
}
|
|
|
|
getApiResultDefined(){
|
|
return {
|
|
success: false,
|
|
meta :{
|
|
code: 200,
|
|
message: "",
|
|
|
|
},
|
|
// meta:{
|
|
// table: objectname,
|
|
// type: typeobject,
|
|
// total: 0
|
|
// },
|
|
data:[]
|
|
};
|
|
}
|
|
|
|
getPagination(datalength, limit){
|
|
let pagination = datalength / limit;
|
|
if(!Number.isInteger(pagination)){
|
|
pagination=(Math.floor(datalength / limit))+1;
|
|
}
|
|
return pagination;
|
|
}
|
|
|
|
getErrorDefined(errcode, msg){
|
|
if(errcode=='404'){
|
|
return {
|
|
code : 404,
|
|
message : msg!='' ? msg : "Record Not Found"
|
|
}
|
|
}
|
|
}
|
|
|
|
static getResultJson(results){
|
|
let resultJson = JSON.stringify(results);
|
|
resultJson = JSON.parse(resultJson);
|
|
return resultJson;
|
|
}
|
|
|
|
sendResponse(statusCode, data, res){
|
|
// res.append("responseData", JSON.stringify(data));
|
|
// res.status(statusCode).json(data);
|
|
res.status(statusCode).json(data);
|
|
}
|
|
|
|
static decodeBase64Image(dataString) {
|
|
var matches = dataString.match(/^data:([A-Za-z-+\/]+);base64,(.+)$/),
|
|
response = {};
|
|
|
|
if (matches.length !== 3) {
|
|
return new Error('Invalid input string');
|
|
}
|
|
|
|
response.type = matches[1];
|
|
response.data = new Buffer.from(matches[2], 'base64');
|
|
|
|
return response;
|
|
}
|
|
|
|
|
|
getToken(){
|
|
try {
|
|
var n1=Math.floor(Math.random() * 9) + 0;
|
|
var n2=Math.floor(Math.random() * 9) + 0;
|
|
var n3=Math.floor(Math.random() * 9) + 0;
|
|
var n4=Math.floor(Math.random() * 9) + 0;
|
|
var n5=Math.floor(Math.random() * 9) + 0;
|
|
var n6=Math.floor(Math.random() * 9) + 0;
|
|
var otp=n1.toString()+n2.toString()+n3.toString()+n4.toString()+n5.toString()+n6.toString();
|
|
// console.log(otp);
|
|
return otp;
|
|
} catch (error) {
|
|
return error;
|
|
}
|
|
}
|
|
|
|
static sentMail(emailto,subject,msg,callback){
|
|
console.log(process.env.EMAIL_KEY);
|
|
var transporter = nodemailer.createTransport({
|
|
service: 'gmail',
|
|
auth: {
|
|
user: 'mitrasejatipangan2021@gmail.com',
|
|
pass: process.env.EMAIL_KEY
|
|
}
|
|
});
|
|
|
|
var mailOptions = {
|
|
from: 'MSP <mitrasejatipangan2021@gmail.com>',
|
|
to: emailto,
|
|
subject: subject,
|
|
text: msg
|
|
};
|
|
|
|
transporter.sendMail(mailOptions, function(error, info){
|
|
console.log(error);
|
|
if (error) {
|
|
console.log(error);
|
|
callback(error,null);
|
|
} else {
|
|
callback(null,info);
|
|
}
|
|
});
|
|
}
|
|
|
|
static sendSMS(header,msisdn,msg,callback){
|
|
try {
|
|
var msisdnnew = msisdn.length==8 ? '670'+msisdn : msisdn;
|
|
let resuri={
|
|
'method': 'GET',
|
|
// 'url': baseurl+'signon',
|
|
'url': baseurlsms+'?msisdn='+msisdnnew+'&content='+msg+'&header='+header,
|
|
'headers': {
|
|
'Content-Type': 'application/json',
|
|
},
|
|
// form: formjson,
|
|
};
|
|
// console.log(resuri);
|
|
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
|
|
request(resuri, function (error, response) {
|
|
if (error) {
|
|
// console.log(error);
|
|
callback(error,null);
|
|
}
|
|
else
|
|
{
|
|
// console.log(response);
|
|
callback(null,response);
|
|
}
|
|
|
|
});
|
|
} catch (error) {
|
|
callback(error,null);
|
|
}
|
|
}
|
|
|
|
static sendSMSold(header,msisdn,msg,callback)
|
|
{
|
|
|
|
request.post(
|
|
'http://150.242.111.251:81/tlstream/index/api',
|
|
{
|
|
json: {
|
|
views:'vwsentsms',
|
|
task:'sentmessage',
|
|
header: header,
|
|
msisdn: msisdn,
|
|
msg : msg
|
|
}
|
|
},
|
|
(error, res, body) => {
|
|
if (error) {
|
|
console.error(error)
|
|
callback(null,error);
|
|
return
|
|
}
|
|
// console.log(`statusCode: ${res.statusCode}`)
|
|
// console.log(body);
|
|
callback(null,body);
|
|
}
|
|
)
|
|
}
|
|
|
|
static getYmD(){
|
|
var dates= new Date();
|
|
var today=dates.getFullYear()+"-"+dates.getMonth()+"-"+dates.getDate()+" "+dates.getHours()+":"+dates.getMinutes()+":"+dates.getSeconds();
|
|
//console.log(today);
|
|
return today;
|
|
}
|
|
|
|
static getmonth(){
|
|
var dates= new Date();
|
|
//console.log(dates.getMonth());
|
|
return dates.getMonth()+1;
|
|
}
|
|
static getyears(){
|
|
var dates= new Date();
|
|
return dates.getFullYear();
|
|
}
|
|
static getday(){
|
|
var dates= new Date();
|
|
return dates.getDate();
|
|
}
|
|
}
|
|
|
|
module.exports = Controller;
|