Files
WrenchBoradWeb/www-api/app/Controllers/Promo.php
T
CHIEFSOFT\ameye 6c467a7280 PromoAdmin
2024-11-17 07:55:00 -05:00

162 lines
7.0 KiB
PHP

<?php
namespace App\Controllers;
use CodeIgniter\API\ResponseTrait;
class Promo extends BaseController
{
use ResponseTrait;
public function promoStart(){
$raw_json = file_get_contents('php://input');
$in = json_decode($raw_json, true);
$out =[];
//$in["action"] = -1;
$in['action'] = WRENCHBOARD_MARKET_PLAN01_NEXT1;
$ret = $this->wrenchboard->wrenchboard_api($in, $out);
$out['internal_return'] = $ret;
// $in["promo"] = $promo;
// $in["promo_owner"] = $promoOwner;
log_message('critical', "Promo::promoStart ********* ALL ".serialize($in) );
// $in["loc"] = $_SERVER["REMOTE_ADDR"];
// $in['limit'] = 10;
// $out["firstname"] = "Firstname";
// $out["promo_title"] = "This is the promo title";
// $out["promo_description"] = "This is the promo description , This is the promo description ,This is the promo description ,This is the promo description ,This is the promo description ,This is the promo description ,This is the promo description ,";
$out["site_name"]= "WrenchBoard";
$out["server_name"]= "https://www.wrenchboard.com";
//$out['yyyy'] = '2024';
//$out['user_server_name'] = $this->getSiteConfigurations("system.server_name"); // 'https://dev-users.wrenchboard.com';
//log_message('critical', "Promo::user_server_name **** user_server_name ". $out["user_server_name"] );
log_message('critical', "Promo::promoStart ********* OUT ".serialize($out) );
$in['action'] = -1; // we dont need reformating on this data
return $this->respond( $this->summaryReturnData($in,$out), 200);
}
public function promoVerify(){
$raw_json = file_get_contents('php://input');
$in = json_decode($raw_json, true);
$out =[];
//$in["action"] = -1;
$in['action'] = WRENCHBOARD_MARKET_PLAN01_NEXT1;
$ret = $this->wrenchboard->wrenchboard_api($in, $out);
$out['internal_return'] = $ret;
// $in["promo"] = $promo;
// $in["promo_owner"] = $promoOwner;
log_message('critical', "Promo::promoStart ********* ALL ".serialize($in) );
$in["loc"] = $_SERVER["REMOTE_ADDR"];
$in['limit'] = 10;
// $out["firstname"] = "Firstname";
// $out["promo_title"] = "This is the promo title";
// $out["promo_description"] = "This is the promo description , This is the promo description ,This is the promo description ,This is the promo description ,This is the promo description ,This is the promo description ,This is the promo description ,";
$out["site_name"]= "WrenchBoard";
// $out["server_name"]= "https://www.wrenchboard.com";
$out['yyyy'] = '2024';
// $out['user_server_name'] = 'https://dev-users.wrenchboard.com';
log_message('critical', "***** ***** Promo::promoVerify Ret ");
return $this->respond( $this->summaryReturnData($in,$out), 200);
}
public function promoTask(){
$raw_json = file_get_contents('php://input');
$in = json_decode($raw_json, true);
$in["action"] = -1; // bad number - we dont want formating WRENCHBOARD_ACCOUNT_JOBLIST; dont send this line , the formater will be confused
$out=[];
$endpoint = "PROMO_JOBS-". $in["promo"];
$out = $this->getCache($endpoint);
$countItem = 0;
if( is_array($out)){
$countItem = count($out);
}
if ( $countItem == 0 ){
$local_url = "http://".$this->micro_service_net1.":3033/promojobs";
$out = $this->APIcall('GET', $local_url, $in);
// dont cache junk
if ( is_array($out) && is_array($out["result_list"]) && count($out["result_list"]) > 0){
$this->saveCache($endpoint,$out,3000);
}
$out['internal_return'] = 0; // just backwad comaptobility
log_message('critical', "***** ***** Promo::getJobsData Cache Done:::Ret ");
}
$endpoint = "WRENCH_JOB_INTEREST_COUNT";
$int_list = $this->getCache($endpoint)["result_list"];
$out["interest_list"] = ( isset($int_list) && is_array($int_list) ) ? $int_list : [];
log_message('critical', "***** ***** Promo::getJobsData Ret ");
return $this->respond( $this->summaryReturnData($in,$out), 200);
}
public function promoAuth(){
log_message('critical', "***** ***** promoAuth::userLogin ****" );
// $in = $this->request->getPostGet();
$raw_json = file_get_contents('php://input');
$in = json_decode($raw_json, true);
$in["action"] = WRENCHBOARD_PROMOADMIN_LOGIN;
if (!isset($in["login_mode"])){
$in["login_mode"] = MOBILE_LOGIN;
}
// make safe for redis
$outF["username"] = str_replace("@", "_", $in["username"]);
$outF["username"] = str_replace(".", "_", $outF["username"]);
$outF["original_username"] = $in["username"];
$outF["loc"] = $in["loc"];
$fail_endpoint = "PROMO-LOGIN_FAILED-".$outF["username"]."-";
//===================REDIS DATA IN CASE OF FAIL
$out_redis = $this->getCache($fail_endpoint); // try find in cache
if (isset($out_redis["fail_count"]) && $out_redis["fail_count"] > 2){
// we need stop here
log_message('critical', "Danger ***** ***** promoAuth::userLogin FAIL = ".$out_redis["fail_count"] );
}else{
$outF["fail_count"] = isset( $out_redis["fail_count"] ) ? $out_redis["fail_count"]+1:1;
}
$out=[];
$ret = $this->wrenchboard->wrenchboard_api($in, $out);
$out['internal_return'] = $ret;
log_message('critical', "***** ***** promoAuth::userLogin Ret = ".$ret );
if ( $out['internal_return'] == 100 ){
$endpoint = "PROMO-USER_SESSION-". str_pad($out["member_id"], 12, "0", STR_PAD_LEFT) ."-";
log_message('critical', "***** ***** promoAuth::promoAuth USER_SESSION = ".$endpoint );
$this->saveCache($endpoint,$out,15000);
}else
{
log_message('critical', "***** ***** WrenchAuth::userLogin USER_SESSION = ".$fail_endpoint );
$this->saveCache($fail_endpoint,$outF,15000);
}
return $this->respond( $this->summaryReturnData($in,$out), 200);
}
public function promoList(){
log_message('critical', "***** ***** Promo::promoList ****" );
// $in = $this->request->getPostGet();
$raw_json = file_get_contents('php://input');
$in = json_decode($raw_json, true);
$out = [];
return $this->respond( $this->summaryReturnData($in,$out), 200);
}
public function promoAddRef(){
log_message('critical', "***** ***** Promo::promoAddRef ****" );
// $in = $this->request->getPostGet();
$raw_json = file_get_contents('php://input');
$in = json_decode($raw_json, true);
$out = [];
return $this->respond( $this->summaryReturnData($in,$out), 200);
}
}