Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /var/www/html/wincloud_gateway/checking/ drwxr-xr-x | |
| Viewing file: Select action/file-type: 'use strict';
const {sanitizeEntity} = require('strapi-utils');
var { client } = require('./redisClient');
const bull_queue = require('./queue');
const vendor= require('./vendor');
const check_Balance = require('./balance');
///balance check start
module.exports = {
get_result: async function(header,api_name,request_method,request_ip,query){
function findAndReplace(object, value, replacevalue){
for(var x in object){
if(typeof object[x] == typeof {}){
findAndReplace(object[x], value, replacevalue);
}
if(object[x] == value){
object["keyWord"] = replacevalue;
// break; // uncomment to stop after first replacement
}
}
}
var keyWord_data=query.keyWord;
var keyWord=keyWord_data.substring(0, keyWord_data.indexOf('/') + 0);
findAndReplace(query, keyWord_data, keyWord);
var keywordData = keyWord_data.split("/");
var trans_id=keywordData[3];
var type=keywordData[4];
var return_data = await bull_queue.request_Queue(header,api_name,request_method,request_ip,query);
// var return_data=await check_Balance.balance(header,api_name,request_method,request_ip,query);
var apiName=api_name.replace("/",'').slice(0, -1);
var condition=return_data[0];
var rate= parseFloat(return_data[1]).toFixed(2);
if(condition=="no balance")
{
return 'you don`t have sufficient balance.....';
}
else if (condition=="exceed") {
return 'Too many attempts, please try again in a minute.';
}
else if(condition=="not valid"){
return 'Your ip address is not valid for make request';
}
else
{
var api_data= "strapi.services."+apiName+".find(query)";
const entity = await eval(api_data);
var api_model= "strapi.models."+apiName;
var partner_data=sanitizeEntity(entity, { model: eval(api_model)});
// var transId=uuid();
vendor.notifyVendor(keyWord_data,partner_data[0],trans_id,header);
//balance deduction by api rate
await client.hgetallAsync(header).then(function(object) {
client.hmset(header, {r_balance: parseFloat(object.r_balance).toFixed(2)-rate});
});
// console.log(partner_data[0]);
var nowDate = new Date();
var hi=nowDate.getFullYear()+'-'+(nowDate.getMonth()+1)+'-'+nowDate.getDate()+'T'+nowDate.getHours()+':'+nowDate.getMinutes()+':'+nowDate.getSeconds();
const data={
partner_name : partner_data[0].partner.name,
vendor : String(partner_data[0].vendor.username),
rate : parseFloat(rate).toFixed(2),
operator : partner_data[0].operator,
keyWord : partner_data[0].keyWord,
serviceId : partner_data[0].serviceId,
tx_id : String(trans_id),
msisdn: String(keywordData[1]),
serviceTier: partner_data[0].serviceTier,
billerType: 'API',
cronDate: null,
type:type,
// created_at_gmt: nowDate.getFullYear()+'-'+(nowDate.getMonth()+1)+'-'+nowDate.getDate(),
};
await strapi.entityService.create({data},{ model: "plugins::billing.records" });
if(partner_data[0].serviceTier==='Subscription'){
switch(true) {
case partner_data[0].keyWord.toLowerCase().includes("start"):
// console.log(new Date().toISOString('en-US', { timeZone: 'Asia/Dhaka' }));
subscriptionStatus();
break;
case partner_data[0].keyWord.toLowerCase().includes("stop"):
await strapi.query('subscription-status').delete({msisdn :String(keywordData[1]), serviceId : partner_data[0].serviceId});
break;
case partner_data[0].keyWord.toLowerCase().includes("pending"):
var checkMsisdn =await strapi.query('subscription-status').find({msisdn :String(keywordData[1]), serviceId : partner_data[0].serviceId });
(checkMsisdn.length>0) ? subscriptionStatus(): console.log('new pending');
break;
}
}
async function subscriptionStatus(){
var checkMsisdn =await strapi.query('subscription-status').find({msisdn :String(keywordData[1]), serviceId : partner_data[0].serviceId });
if(checkMsisdn.length>0){
await strapi.query('subscription-status').update({msisdn :String(keywordData[1]), serviceId : partner_data[0].serviceId }, { status:(partner_data[0].keyWord.toLowerCase().includes("pending")) ? 'P' : 'A'});
}else{
const data={
vendor : String(partner_data[0].vendor.username),
serviceId : partner_data[0].serviceId,
msisdn: String(keywordData[1]),
status: (partner_data[0].keyWord.toLowerCase().includes("pending")) ? 'P' : 'A',
};
await strapi.entityService.create({data},{ model: 'subscription-status' });
}
}
return "Successfully Returned...";
}
}
}
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.004 ]-- |