440 lines
18 KiB
PHP
440 lines
18 KiB
PHP
<?php
|
|
|
|
namespace App\Controllers;
|
|
|
|
use CodeIgniter\API\ResponseTrait;
|
|
|
|
class WrenchWallet extends BaseController
|
|
{
|
|
protected \App\Models\WrenchWalletModel $wrenchWalletModel;
|
|
|
|
use ResponseTrait;
|
|
|
|
public function __construct()
|
|
{
|
|
log_message('critical', "WrenchWallet Path GATE 001");
|
|
$this->request = $request = \Config\Services::request();
|
|
$this->wrenchWalletModel = new \App\Models\WrenchWalletModel();
|
|
}
|
|
|
|
|
|
public function sendMoney(){
|
|
|
|
$raw_json = file_get_contents('php://input');
|
|
$in = json_decode($raw_json, true);
|
|
|
|
$in["action"] = WRENCHBOARD_USER_SENDMONEY;
|
|
$out["internal_return"] = 0;
|
|
$in["InitiatingChannel"] = 7;
|
|
$in["InitiatingPaymentMethodCode"] = "CA";
|
|
$in["InitiatingCurrencyCode"] = '566'; // 566 - NRN - Naira
|
|
$in["InitiatingEntityCode"] = "MBA";
|
|
$in["transaction_id"] = "T" . rand(120000, 999999);
|
|
$in["TerminatingPaymentMethodCode"] = "AC";
|
|
$in["TerminatingCurrencyCode"] = '566'; // 566 - NRN - Naira
|
|
$in["TerminatingCountryCode"] = 'NG'; // NG - Nigeria
|
|
$in["bankid"] = $in["recipientid"];
|
|
$in["InitiatingAmount"] = $in["amount"];
|
|
$in["TerminatingAmount"] = $in["amount"];
|
|
|
|
$out=[];
|
|
|
|
$ret = $this->wrenchboard->wrenchboard_api($in, $out);
|
|
$out['internal_return'] = $ret;
|
|
log_message('critical', "***** ***** WrenchWallet::sendMoney Ret = ".$ret );
|
|
if ( isset($out['internal_return']) && isset( $out['confirmation']) ){
|
|
$endpoint = "SENDMONEY_".$in["assign_mode"]."-". $out["confirmation"];
|
|
log_message('critical', "***** ***** WrenchWallet::sendMoney SENDMONEY_ = ".$endpoint );
|
|
$this->saveCache($endpoint,$out,25000);
|
|
$local_url = "http://".$this->micro_service_net1.":3037/eventSendMoney";
|
|
$outX = $this->APIcall('POST', $local_url, ["message"=>$out]);
|
|
|
|
}else
|
|
{
|
|
$fail_endpoint = "SENDMONEY_FAIL_".strtoupper( date("FDYjGis") );
|
|
log_message('critical', "***** ***** WrenchWallet::sendMoney FAIL_OFFER = ".$fail_endpoint );
|
|
$this->saveCache($fail_endpoint,$in,25000);
|
|
}
|
|
return $this->respond( $this->summaryReturnData($in,$out), 200);
|
|
}
|
|
|
|
public function index()
|
|
{
|
|
return [];
|
|
}
|
|
|
|
public function requestVirtualCard(){
|
|
log_message('critical', "WrenchWallet::requestVirtualCard Path GATE ***");
|
|
$raw_json = file_get_contents('php://input');
|
|
$in = json_decode($raw_json, true);
|
|
$in["action"] = WRENCHBOARD_VIRTUAL_CARDADD;
|
|
$out=[];
|
|
$ret = $this->wrenchboard->wrenchboard_api($in, $out);
|
|
$out['internal_return'] = $ret;
|
|
log_message('critical', "requestVirtualCard ********* ALL ".serialize($out) );
|
|
|
|
// concluded need to register user card
|
|
if ( $out['request_id'] !='' && $out['request_uid'] !=''){
|
|
$local_url = "http://".$this->micro_service_net1.":3038/create";
|
|
$out = $this->APIcall('POST', $local_url, $out);
|
|
}
|
|
log_message('critical', "WrenchWallet::requestVirtualCard ********* ALL ".serialize($out) );
|
|
return $this->respond( $this->summaryReturnData($in,$out), 200);
|
|
}
|
|
public function redeemOptions(){
|
|
log_message('critical', "redeemOptions 0001");
|
|
header('Access-Control-Allow-Origin: *');
|
|
log_message('critical', "WrenchWallet Path GATE 001");
|
|
$call_backend = true;
|
|
|
|
header("Access-Control-Allow-Headers: Origin, X-API-KEY, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method, Access-Control-Allow-Headers, Authorization, observe, enctype, Content-Length, X-Csrf-Token");
|
|
log_message('critical', "0003");
|
|
header("Access-Control-Allow-Methods: GET, PUT, POST, DELETE, PATCH, OPTIONS");
|
|
header("Access-Control-Allow-Credentials: true");
|
|
header("Access-Control-Max-Age: 3600");
|
|
header('content-type: application/json; charset=utf-8');
|
|
$method = $_SERVER['REQUEST_METHOD'];
|
|
|
|
$ip_loc = $this->getIpData();
|
|
|
|
|
|
|
|
if ($method == "OPTIONS") {
|
|
header("HTTP/1.1 200 OK CORS");
|
|
log_message('critical', " WrenchJobs()-> OPTIONS DIE*****" );
|
|
die();
|
|
}
|
|
log_message('critical', "WrenchWallet Path GATE 003");
|
|
//$request = service('request');
|
|
// what is the endpoint
|
|
$uri = urldecode(current_url(true));
|
|
$findme = '?';
|
|
$pos = strpos($uri, $findme);
|
|
if ($pos > 5) {
|
|
$uri = substr($uri, 0, $pos);
|
|
}
|
|
log_message('critical', "API-WrenchWallet URI -> ".$uri );
|
|
$pieces = explode('/', $uri);
|
|
$psc = count($pieces);
|
|
|
|
$endpoint = $psc > 0 ? $pieces[$psc - 1] : '';
|
|
log_message('critical', "Endpoint-> ".$endpoint );
|
|
|
|
$endpoints = $this->endPointList();
|
|
$out = array();
|
|
$res1 = [];
|
|
|
|
$current_env = $this->getSiteConfigurations("system.live");
|
|
$primary_image_sever = $this->getSiteConfigurations("system.primary_image_sever");
|
|
$server_tag = $this->getSiteConfigurations("system.server_tag");
|
|
$micro_service_net1 = $this->getSiteConfigurations("system.micro_service_net1"); //"10.10.10.120";
|
|
|
|
// echo "EXYTACT INPUT DATA HERE";
|
|
$raw_json = file_get_contents('php://input');
|
|
$raw_array = json_decode($raw_json, true);
|
|
$local_out =[];
|
|
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
|
|
log_message('critical', "Endpoint LOC2 HERE -> ".$endpoint );
|
|
$get_param = $_GET['reqData'] ?? null;
|
|
$raw_array = ($get_param!=null) ? json_decode($get_param, true):[];
|
|
}
|
|
|
|
$in = $raw_array;
|
|
|
|
$in["loc"] = $_SERVER["REMOTE_ADDR"];
|
|
$out = array();
|
|
|
|
|
|
$res1 = [];
|
|
if (!array_key_exists($endpoint, $this->sessionExcludedList())) {
|
|
// TOKEN VERIFICATION WILL GAPPEN
|
|
}
|
|
|
|
switch($endpoint) {
|
|
case 'redeemoptions':
|
|
$in["action"] = 'redeemoptions'; //WRENCHBOARD_ACCOUNT_JOBLIST;
|
|
break;
|
|
}
|
|
$in["action"] = 'redeemoptions'; //WRENCHBOARD_ACCOUNT_JOBLIST;
|
|
|
|
if ( $call_backend == true && $in["action"] !='' ){
|
|
$local_url = "http://".$micro_service_net1.":3037/redeemoptions";
|
|
$out = $this->APIcall('GET', $local_url, $in);
|
|
}
|
|
else
|
|
{
|
|
$out = $local_out;
|
|
}
|
|
|
|
|
|
|
|
$this->doCacheStep($in, $out);
|
|
$final_out = $out; // start from all out
|
|
$final_out["environment"] = $current_env + 0; // force convert to interger = $this->getSiteConfigurations("system.live");
|
|
$final_out["session_image_server"] = $primary_image_sever; // ( $final_out["environment"] > 0 )? 'https://apigate.nebula.g1.wrenchboard.com/en/wrench/api/v1/getmedia/' : "https://apigate.lotus.g1.wrenchboard.com/en/wrench/api/v1/getmedia/";
|
|
$final_out["server_tag"] = $server_tag;
|
|
$final_out["language"] = "en";
|
|
$final_out["ip_loc"] = $ip_loc;
|
|
return json_encode( $final_out );
|
|
}
|
|
|
|
private function getSettings($settingkey, $defaultVal=''){
|
|
$raw_json = file_get_contents('php://input');
|
|
$in = json_decode($raw_json, true);
|
|
$out=[];
|
|
$endpoint = "SETTINGS";
|
|
$out = $this->getCache($endpoint);
|
|
if (!is_array($out) || count($out)==0 ) {
|
|
$local_url = "http://".$this->micro_service_net1.":3037/settings";
|
|
$out = $this->APIcall('GET', $local_url, $in);
|
|
if (count($out['result_list']) > 0 ){ // dont cache empty
|
|
$this->saveCache($endpoint,$out,55500);
|
|
}
|
|
}
|
|
|
|
if (is_array($out) && count($out['result_list']) > 0 ) {
|
|
return (isset($out['result_list'][$settingkey])) ? $out['result_list'][$settingkey]: $defaultVal;
|
|
}
|
|
return $defaultVal;
|
|
}
|
|
//getKidWallet from parent side
|
|
public function getKidWallet(){
|
|
log_message('critical', "0001");
|
|
// header('Access-Control-Allow-Origin: *');
|
|
log_message('critical', "WrenchWallet Path getKidWallet 001");
|
|
$raw_json = file_get_contents('php://input');
|
|
$in = json_decode($raw_json, true);
|
|
$out=[];
|
|
$endpoint = "WALLETS-USERS_KIDS-". str_replace('-','_', $in["family_uid"]);
|
|
$in["loc"] = $_SERVER["REMOTE_ADDR"];
|
|
log_message('critical', "IN ARRAY for call 0001 -> ".serialize($in));
|
|
$in["action"] = 'getkidswallets'; //WRENCHBOARD_ACCOUNT_JOBLIST;
|
|
//log_message('critical', "before APIN call 0001");
|
|
$out = $this->getCache($endpoint);
|
|
if (!is_array($out) || count($out)==0 ){
|
|
// if ( $in["action"] !='' ){
|
|
$local_url = "http://".$this->micro_service_net1.":3037/getkidswallets";
|
|
$out = $this->APIcall('GET', $local_url, $in);
|
|
if (count($out['result_list']) > 0 ){ // dont cache empty
|
|
$this->saveCache($endpoint,$out,1500);
|
|
}
|
|
}
|
|
$extraWallet = $this->wrenchWalletModel->kidsExtraWallet();
|
|
|
|
$out["result_list"][] = $extraWallet;
|
|
// [
|
|
// "amount" => 0,
|
|
// "id" => 1,
|
|
// "code" => "USD",
|
|
// "description" => "Add Virtual Debit Card",
|
|
// "symbol" => "$",
|
|
// "action_type" => "AC_AD_VIRTUAL_CARD",
|
|
// "lorder" => 0,
|
|
// "country" => "",
|
|
// "processor" => 9010,
|
|
// "current_balance" => 0,
|
|
// "transfer_limit" => 0,
|
|
// "wallet_uid" => "",
|
|
// "escrow" => 0,
|
|
// "status" => 1,
|
|
// "show_balance" => false,
|
|
// "rt_action_text" => "Add Card",
|
|
// "banner" => 'https://www.wrenchboard.com/assets/images/apps/wallet/wallet-card.jpg',
|
|
// "icon" => 'https://www.wrenchboard.com/assets/images/apps/wallet/icon/cards.png'
|
|
// ];
|
|
/* */
|
|
$out["wallet_cards"] = [];
|
|
return $this->respond( $this->summaryReturnData($in,$out), 200);
|
|
}
|
|
public function getWallet(){
|
|
$raw_json = file_get_contents('php://input');
|
|
$in = json_decode($raw_json, true);
|
|
$in["action"] = 'getwallets';
|
|
$out=[];
|
|
$endpoint = "WALLETS-USERS-". str_replace('-','_', $in["uid"]);
|
|
|
|
$out = $this->getCache($endpoint);
|
|
if (!is_array($out) || count($out)==0 ){
|
|
$local_url = "http://".$this->micro_service_net1.":3037/getwallets";
|
|
$out = $this->APIcall('GET', $local_url, $in);
|
|
if (count($out['result_list']) > 0 ){ // dont cache empty
|
|
$this->saveCache($endpoint,$out,1500);
|
|
}
|
|
}
|
|
|
|
if ( count($out["result_list"])> 0 ){
|
|
$owner_country = $out["result_list"][0]['owner_country'];
|
|
// $wallet_country = $first_names = array_column($owner_country , 'country');;
|
|
$auxWallet = $this->auxiliaryWallets($owner_country);
|
|
foreach ($auxWallet as $item){
|
|
$out["result_list"][] = $item;
|
|
}
|
|
}
|
|
log_message('critical', "***** ***** WrenchJobs::getWallet Ret ");
|
|
return $this->respond( $this->summaryReturnData($in,$out), 200);
|
|
}
|
|
|
|
private function auxiliaryWallets( $owner_country ): array {
|
|
$auxWallet = [
|
|
[
|
|
"wallet_country" => ['US'],
|
|
"amount" => 0,
|
|
"id" => 1,
|
|
"code" => "USD",
|
|
"description" => "Add Virtual Debit Card",
|
|
"symbol" => "$",
|
|
"action_type" => "AC_AD_VIRTUAL_CARD",
|
|
"lorder" => 0,
|
|
"country" => "",
|
|
"processor" => 9010,
|
|
"current_balance" => 0,
|
|
"transfer_limit" => 0,
|
|
"wallet_uid" => "",
|
|
"escrow" => 0,
|
|
"status" => $this->getSettings('ENABLE_EXTRA_WALLET', 0),
|
|
"show_balance" => false,
|
|
"rt_action_text" => "Add Card",
|
|
"banner" => 'https://www.wrenchboard.com/assets/images/apps/wallet/wallet-card.jpg',
|
|
"icon" => 'https://www.wrenchboard.com/assets/images/apps/wallet/icon/cards.png'
|
|
],
|
|
[
|
|
"wallet_country" => [],
|
|
"amount" => 0,
|
|
"id" => 1,
|
|
"code" => "USD",
|
|
"description" => "Wrench Token",
|
|
"symbol" => "$",
|
|
"action_type" => "AC_AD_WR_TOKEN",
|
|
"lorder" => 0,
|
|
"country" => "",
|
|
"processor" => 9012,
|
|
"current_balance" => 0,
|
|
"transfer_limit" => 0,
|
|
"wallet_uid" => "",
|
|
"escrow" => 0,
|
|
"status" => $this->getSettings('ENABLE_EXTRA_WALLET', 0),
|
|
"show_balance" => true,
|
|
"rt_action_text" => "View",
|
|
"banner" => 'https://www.wrenchboard.com/assets/images/apps/wallet/wallet-token.jpg',
|
|
"icon" => 'https://www.wrenchboard.com/assets/images/apps/wallet/icon/token.png'
|
|
],
|
|
[
|
|
"wallet_country" => [],
|
|
"amount" => 0,
|
|
"id" => 1,
|
|
"code" => "USD",
|
|
"description" => "Wrench Points",
|
|
"symbol" => "$",
|
|
"action_type" => "AC_AD_WR_POINTS",
|
|
"lorder" => 0,
|
|
"country" => "",
|
|
"processor" => 9014,
|
|
"current_balance" => 0,
|
|
"transfer_limit" => 0,
|
|
"wallet_uid" => "",
|
|
"escrow" => 0,
|
|
"status" => $this->getSettings('ENABLE_EXTRA_WALLET', 0),
|
|
"show_balance" => true,
|
|
"rt_action_text" => "Redeem",
|
|
"banner" => 'https://www.wrenchboard.com/assets/images/apps/wallet/wallet-point.jpg',
|
|
"icon" => 'https://www.wrenchboard.com/assets/images/apps/wallet/icon/point.png'
|
|
]
|
|
];
|
|
|
|
$retArr=[];
|
|
foreach ( $auxWallet as $item){
|
|
if ( in_array( $owner_country, $item['wallet_country']) && $item['status'] == 00 ){
|
|
log_message('critical', "***** ***** auxiliaryWallets::ITEM ". serialize($item));
|
|
$retArr[] =$item;
|
|
}
|
|
}
|
|
|
|
return $retArr;
|
|
}
|
|
public function getEscrols(){
|
|
log_message('critical', "0001");
|
|
header('Access-Control-Allow-Origin: *');
|
|
log_message('critical', "WrenchWallet Path GATE 001");
|
|
$call_backend = true;
|
|
|
|
header("Access-Control-Allow-Headers: Origin, X-API-KEY, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method, Access-Control-Allow-Headers, Authorization, observe, enctype, Content-Length, X-Csrf-Token");
|
|
log_message('critical', "0003");
|
|
header("Access-Control-Allow-Methods: GET, PUT, POST, DELETE, PATCH, OPTIONS");
|
|
header("Access-Control-Allow-Credentials: true");
|
|
header("Access-Control-Max-Age: 3600");
|
|
header('content-type: application/json; charset=utf-8');
|
|
$method = $_SERVER['REQUEST_METHOD'];
|
|
|
|
$ip_loc = $this->getIpData();
|
|
|
|
|
|
|
|
if ($method == "OPTIONS") {
|
|
header("HTTP/1.1 200 OK CORS");
|
|
log_message('critical', " WrenchJobs()-> OPTIONS DIE*****" );
|
|
die();
|
|
}
|
|
log_message('critical', "WrenchWallet Path GATE 003");
|
|
//$request = service('request');
|
|
// what is the endpoint
|
|
$uri = urldecode(current_url(true));
|
|
$findme = '?';
|
|
$pos = strpos($uri, $findme);
|
|
if ($pos > 5) {
|
|
$uri = substr($uri, 0, $pos);
|
|
}
|
|
log_message('critical', "API-WrenchWallet URI -> ".$uri );
|
|
$pieces = explode('/', $uri);
|
|
$psc = count($pieces);
|
|
|
|
$endpoint = $psc > 0 ? $pieces[$psc - 1] : '';
|
|
log_message('critical', "Endpoint-> ".$endpoint );
|
|
|
|
$endpoints = $this->endPointList();
|
|
$out = array();
|
|
$res1 = [];
|
|
|
|
$current_env = $this->getSiteConfigurations("system.live");
|
|
$primary_image_sever = $this->getSiteConfigurations("system.primary_image_sever");
|
|
$server_tag = $this->getSiteConfigurations("system.server_tag");
|
|
$micro_service_net1 = $this->getSiteConfigurations("system.micro_service_net1"); //"10.10.10.120";
|
|
|
|
// echo "EXYTACT INPUT DATA HERE";
|
|
$raw_json = file_get_contents('php://input');
|
|
$raw_array = json_decode($raw_json, true);
|
|
$local_out =[];
|
|
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
|
|
log_message('critical', "Endpoint LOC2 HERE -> ".$endpoint );
|
|
$get_param = $_GET['reqData'] ?? null;
|
|
$raw_array = ($get_param!=null) ? json_decode($get_param, true):[];
|
|
}
|
|
|
|
$in = $raw_array;
|
|
|
|
$in["loc"] = $_SERVER["REMOTE_ADDR"];
|
|
|
|
$in["action"] = 'getescrows'; //WRENCHBOARD_ACCOUNT_JOBLIST;
|
|
|
|
if ( $call_backend == true && $in["action"] !='' ){
|
|
$local_url = "http://".$micro_service_net1.":3037/getescrows";
|
|
$out = $this->APIcall('GET', $local_url, $in);
|
|
}
|
|
else
|
|
{
|
|
$out = $local_out;
|
|
}
|
|
|
|
|
|
|
|
$this->doCacheStep($in, $out);
|
|
$final_out = $out; // start from all out
|
|
$final_out["environment"] = $current_env + 0; // force convert to interger = $this->getSiteConfigurations("system.live");
|
|
$final_out["session_image_server"] = $primary_image_sever; // ( $final_out["environment"] > 0 )? 'https://apigate.nebula.g1.wrenchboard.com/en/wrench/api/v1/getmedia/' : "https://apigate.lotus.g1.wrenchboard.com/en/wrench/api/v1/getmedia/";
|
|
$final_out["server_tag"] = $server_tag;
|
|
$final_out["language"] = "en";
|
|
$final_out["ip_loc"] = $ip_loc;
|
|
return json_encode( $final_out );
|
|
}
|
|
|
|
|
|
} |