diff --git a/www-api/app/Config/Routes.php b/www-api/app/Config/Routes.php index c6d1b66f..6f07667d 100644 --- a/www-api/app/Config/Routes.php +++ b/www-api/app/Config/Routes.php @@ -39,7 +39,7 @@ $routes->get('/', 'Home::index'); $routes->get('/en/wrench/api/v1/test','Home::test'); - +$routes->post('/en/wrench/api/v1/playground', 'WrenchPlayGround::apigate'); $routes->post('/en/wrench/api/v1/authlogin', 'WrenchOauth::apigate'); $routes->post('/en/wrench/api/v1/authstart', 'WrenchOauth::apigate'); diff --git a/www-api/app/Controllers/BaseController.php b/www-api/app/Controllers/BaseController.php index 9be46432..5ceacd23 100644 --- a/www-api/app/Controllers/BaseController.php +++ b/www-api/app/Controllers/BaseController.php @@ -212,6 +212,7 @@ abstract class BaseController extends Controller 'myfiles' => ['POST'], 'reqdel' => ['POST'], 'recentactivities' => ['POST'], + 'playground' => ['POST'], ]; return $endpoints; } diff --git a/www-api/app/Controllers/WrenchPlayGround.php b/www-api/app/Controllers/WrenchPlayGround.php new file mode 100644 index 00000000..0c2f851b --- /dev/null +++ b/www-api/app/Controllers/WrenchPlayGround.php @@ -0,0 +1,517 @@ +request = $request = \Config\Services::request(); + } + + public function apigate(){ + log_message('critical', "WrenchPlayGround->0001"); + header('Access-Control-Allow-Origin: *'); + log_message('critical', "WrenchPlayGround 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']; + if ($method == "OPTIONS") { + header("HTTP/1.1 200 OK CORS"); + log_message('critical', " apigate()-> OPTIONS DIE*****" ); + die(); + } + + //$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-GATE URI -> ".$uri ); + $pieces = explode('/', $uri); + $psc = count($pieces); + + $endpoint = $psc > 0 ? $pieces[$psc - 1] : ''; + log_message('critical', "Enpoint-> ".$endpoint ); + + $endpoints = $this->endPointList(); + $out = array(); + $res1 = []; + if (array_key_exists($endpoint, $endpoints)) { + } else { + http_response_code(404); + // tell the user product does not exist + echo json_encode([ + 'message' => 'Endpoint not found.', + 'URI' => $uri, + ]); + } + + // 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"] == "POST") { // if upload lets modify all the data + if ( $endpoint == 'uploads'){ + // we will not + } + if (isset($_FILES) && is_array($_FILES) && count($_FILES)>0) { + $raw_array = array_merge($_POST,$_FILES); + } + } + + if ($_SERVER['REQUEST_METHOD'] == 'GET') { + log_message('critical', "Enpoint LOC2 HERE -> ".$endpoint ); + $get_param = $_GET['reqData'] ?? null; + $raw_array = ($get_param!=null) ? json_decode($get_param, true):[]; + } + //$in = $raw_array; + log_message('critical', "wrenchboard_api-CALL RAW DATA".serialize($raw_array) ); + //-- move to another module start + + + $in["loc"] = $_SERVER["REMOTE_ADDR"]; + $in = $this->prepareEndPointData($endpoint, $raw_array,$call_backend,$local_out); + log_message('critical', "wrenchboard_api-CALL PREPARE DATA".serialize($in) ); + + $ecludedEndpoints = $this->sessionExcludedList(); + $out = array(); + $res1 = []; + if (!array_key_exists($endpoint, $ecludedEndpoints)) { + // we need to check session now + if ( $this->sessionCheck($in["sessionid"],$in["member_id"]) != PHP_API_OK){ + // $call_backend = false; + // $local_out["status_msg"] = "invalid_session_msg"; + // $out['internal_return'] = PHP_INVALID_SESSION; + } + } + + + + if ( $call_backend == true && $in["action"] !='' ){ + $wrenchboard = new \App\Models\BackendModel(); + $ret = $wrenchboard->wrenchboard_api($in, $out); + $out['internal_return'] = $ret; + } + else + { + $out = $local_out; + } + + $this->doCacheStep($in, $out); + return json_encode( ( new \App\Models\ResultFormatter() )->processOutJson($in, $out)); + + } + private function prepareEndPointData($endpoint, $in, &$call_backend=true,&$local_out=[]){ + switch ($endpoint) { + case 'myfiles': + $in["action"] = WRENCHBOARD_MYFILES_LIST; + break; + case 'setaccsettings': + $in["action"] = WRENCHBOARD_USER_SETTINGS; + break; + case 'getaccsettings': + $in["action"] = WRENCHBOARD_GETUSER_SETTINGS; + break; + + case 'mynotifications': + $in["action"] = WRENCHBOARD_ACCOUNT_NOTIFICATIONS; + break; + case 'payprevcard': + $in["action"] = WRENCHBOARD_USER_USESAVEDCC; + break; + case 'paynewcard': + $in["action"] = WRENCHBOARD_USER_ADNEWCC; + break; + case 'paylistcard': + $in["action"] = WRENCHBOARD_USER_CARDLIST; + break; + case 'payremcard': + $in["action"] = WRENCHBOARD_USER_CARDREMV; + break; + case 'offerinterestmsg': + $in["action"] = WRENCHBOARD_JOB_MRKTINT_QUEST; + break; + case 'offerinterestlistmsg': + $in["action"] = WRENCHBOARD_JOB_INT_QUESTLST; + break; + case 'offersinterestproc': + $in = $this->procOfferInterest($in); + break; + case 'offersinterestlist': + $in["action"] = WRENCHBOARD_JOB_OFFER_INTLIST; + break; + case 'activejobstatus': + case 'activetaskstatus': + $in = $this->processJobStatus($in); + break; + case 'marketmessage': + $in["action"] = WRENCHBOARD_JOB_SEND_QUESTION; + break; + + case 'marketinterest': + $in["action"] = WRENCHBOARD_JOB_SEND_INTEREST; + break; + + case 'assigntask': + $in["action"] = WRENCHBOARD_JOB_OFFER_SYSTEM; + break; + + case 'pendingjobextend': + $in["action"] = WRENCHBOARD_JOB_EXTEND_EXPIRE; + break; + + case 'pendingjobsendtome': + $in["action"] = WRENCHBOARD_JOB_RESEND_MESSAGE; + break; + + case 'pendingjobcancel': + $in["action"] = WRENCHBOARD_JOB_CANCEL_OFFER; + break; + case 'familysampletasks': + $in["action"] = WRENCHBOARD_FAMILY_SAMPLETASKS; + break; + case 'familysuggesttasks': + if (!isset($in["banner"])){ + $in["banner"] = 'default.jpg'; + } + $in["action"] = WRENCHBOARD_FAMILY_SGGESTTASKS; + break; + case 'familywaitingtasks': + $in["action"] = WRENCHBOARD_FAMILY_SGGESTWAITING; + break; + case 'familysuggestlist': + $in["action"] = WRENCHBOARD_FAMILY_SGGESTLIST; + break; + CASE 'suggeststatus': + $in["action"] = WRENCHBOARD_FAMILY_SGGESTSTATUS; + break; + case 'familylist': + $in["action"] = WRENCHBOARD_FAMILY_LIST; + break; + + case 'activetaskslist': + $in["action"] = WRENCHBOARD_JOB_USERACTIVE; + break; + + case 'familyadd': + $in["action"] = WRENCHBOARD_FAMILY_ADD; + break; + + case 'familyupdate': + $in["action"] = WRENCHBOARD_FAMILY_UPDATE; + break; + + case 'familymanage': + $in["action"] = WRENCHBOARD_FAMILY_MANAGE; + break; + case 'jobmanageractive': + $in["job_mode"] = $in["job_mode"] ?? "ACTIVE"; + $in["action"] = WRENCHBOARD_JOB_ACTIVE; + break; + case 'jobmanagercreatejob': + $in["action"] = WRENCHBOARD_JOB_CREATEJOB; + $in["job_mode"] = ADD_JOB; + break; + case 'jobmanagerupdatejob': + $in["action"] = WRENCHBOARD_JOB_CREATEJOB; + $in["job_mode"] = UPDATE_JOB; + break; + case 'jobmanagerdeletejob': + $in["action"] = WRENCHBOARD_JOB_DELETEJOB; + break; + case 'jobmanageroffers': + $in["action"] = WRENCHBOARD_JOB_OFFERS; + break; + case 'stepresetpass': + if($in['step']==300){ + $in["action"] = WRENCHBOARD_COMPLETE_PASSWORDRESET; + } + if($in['step']==200){ + $in["action"] = WRENCHBOARD_VERIFY_PASSWD_RESETLINK; + } + break; + case 'starttopup': + $in["action"] = WRENCHBOARD_ACCOUNT_PREPARE_TOPUP; + break; + case 'topupresult': + $in["action"] = WRENCHBOARD_ACCOUNT_TOPUP_RESULT; + break; + case 'profilepasschange': + $in["action"] = WRENCHBOARD_PROFILE_RESETPASS; + break; + case 'addrecipient': + $in["action"] = WRENCHBOARD_ACCOUNT_ADD_RECIPEINT; + break; + case 'jobmanageragree': + $in["action"] = WRENCHBOARD_JOB_POSTAGREE; + break; + case 'jobmanagerlist': + $in["action"] = WRENCHBOARD_JOB_LISTJOBS; + break; + case 'homebanners': + $in["action"] = WRENCHBOARD_ACCOUNT_HOMEBANNERS ; + break; + case 'verifysignuplink': + $in["action"] = WRENCHBOARD_VERIFY_PENDING_LINK ; + break; + case 'disableaccount': + $in['action'] = WRENCHBOARD_USER_DELETEACC; + break; + case 'replyinterestmessage': + $in["action"] = WRENCHBOARD_JOB_REPLY_QUESTION; + break; + case 'sendinterestmessage': + // $in['offer_code'] = $this->input->get('offer_code'); + $in['yourmessage'] = $in["question"]; + //$in['member_id'] = $_SESSION['member_id']; // just maing sure + $in['msg_type'] = 'JOB'; + // $in['action'] = WRENCHBOARD_JOB_SEND_QUESTION; + + $in["action"] = WRENCHBOARD_JOB_SEND_QUESTION; + break; + case 'couponredeem': + $in["action"] = WRENCHBOARD_COUPON_REDEEM; + break; + case 'couponpending': + $in["action"] = WRENCHBOARD_COUPON_PENDLIST; + break; + case 'couponhx': + $in["action"] = WRENCHBOARD_COUPON_MEMLIST; + break; + case 'signupcountry': + // checi if in cache if not read + $local_out = [ + 'result'=>'100', + 'signup_country'=>[ + ['NG', 'Nigeria'], + ['US', 'United States'] + ] + ]; + $call_backend = false; + break; + case 'blogitem': + $blogData = (new \App\Models\ResultFormatter() )->getBlogItem(); + $local_out = [ + 'result'=>'100', + 'blog_data'=> $blogData + ]; + $call_backend = false; + break; + case 'blogdata': + $blogData = (new \App\Models\ResultFormatter() )->getBlogData(); + $local_out = [ + 'result'=>'100', + 'blog_data'=> $blogData + ]; + $call_backend = false; + break; + case 'userscards': + $in["action"] = WRENCHBOARD_CARDS_GETCARDLIST; + $local_out = [ + 'result'=>'100', + 'result_list'=>[ + ['title'=>'This is your coupon', + 'description'=>'This is the description of the description', + 'card_type'=>'COUPON', + 'card_style' =>'card1', + 'card_icon' =>'icon1', + 'assign_id'=> 0, + 'Nigeria'], + ['title'=>'A Recommended Story', + 'description'=>'This is the description of the description', + 'card_type'=>'BLOG', + 'card_style' =>'card2', + 'card_icon' =>'icon1', + 'assign_id'=> 0, + 'United States'], + ['title'=>'You have a new task sent to you', + 'description'=>'This is the description of the description', + 'card_type'=>'NEWTASK', + 'card_style' =>'card1', + 'card_icon' =>'icon1', + 'assign_id'=> 0, + 'United States'], + ['title'=>'You just Earned some token', + 'description'=>'This is the description of the description', + 'card_type'=>'TOKEN', + 'card_style' =>'card2', + 'card_icon' =>'icon1', + 'assign_id'=> 0, + 'United States'] + ] + ]; + // $call_backend = false; + + break; + case 'myjobs': $in["action"] = WRENCHBOARD_ACCOUNT_JOBLIST; + break; + case 'sitecontact': + $local_out = ['result'=>'100','msg'=>'Received']; + $call_backend = false; + break; + case 'generics': + case 'apigate': + //$in["action"] = WRENCHBOARD_ACCOUNT_LOGIN; + break; + case 'startjoblist': $in["action"] = WRENCHBOARD_START_JOBLIST; + if (!array_key_exists("limit",$in)) $in["limit"] = 10; + if (!array_key_exists("page",$in)) $in["page"] = 1; + break; + + case 'createmobileuser': $in["action"] = WRENCHBOARD_CREATE_MOBILEUSER; + $in["loc"] = $_SERVER["REMOTE_ADDR"]; + $in["news"] = 0; + $in["terms"] = 1; + $in["mobile"] = "MOBILE"; + break; + case 'completesignuplink': $in["action"] = WRENCHBOARD_COMPLETE_MOBILEUSER; + $in["loc"] = $_SERVER["REMOTE_ADDR"]; + $in["news"] = 0; + $in["terms"] = 1; + $in["mobile"] = "WEB"; + break; + case 'completemobileuser': $in["action"] = WRENCHBOARD_COMPLETE_MOBILEUSER; + $in["loc"] = $_SERVER["REMOTE_ADDR"]; + break; + + case 'startresetpasword': + $in["action"] = WRENCHBOARD_RESET_PASSWORD; + break; + case 'createuser': $in["action"] = WRENCHBOARD_ACCOUNT_PENDING; + $in["street1"] = $in["streetaddress"]; + $in["zipcode"] = $in["zip"]; + if (!isset($in["country"]) || $in["country"]==""){ + $in["country"] = "US"; + } + $in["loc"] = $_SERVER["REMOTE_ADDR"]; + $in["mobile"] = "MOBILE"; + break; + case 'activejoblist': $in["action"] = WRENCHBOARD_MOBILE_ACTIVEJOB; + break; + case 'message': $in["action"] = WRENCHBOARD_MOBILE_MESSAGE; + + break; + case 'paymenthx': $in["action"] = WRENCHBOARD_MOBILE_PAYMENTHX; + + break; + case 'purchasehx': $in["action"] = WRENCHBOARD_MOBILE_PURCHASEHX; + break; + case 'getjobsdata': $in["action"] = WRENCHBOARD_ACCOUNT_JOBLIST; + break; + + case 'qrlogin': + $in["action"] = WRENCHBOARD_ACCOUNT_QRLOGIN; + $in["login_mode"] = MOBILE_LOGIN; + $pieces = explode("@", $in['username']); + if ( count($pieces) == 3 ){ + $in['member_uid'] = $pieces[0]; + $in['member_username'] = $pieces[1]; + $in['family_uid'] = $pieces[2]; + } + log_message('critical', "************************ qrlogin 0001 ".$in['member_uid']); + break; + case 'userlogin': $in["action"] = WRENCHBOARD_ACCOUNT_LOGIN; + if (!isset($in["login_mode"])){ + $in["login_mode"] = MOBILE_LOGIN; + } + break; + case 'authstart': + $externalOAuth2 = new \App\Models\ExternalOAuth2Model(); + $in["loc"] = $_SERVER["REMOTE_ADDR"]; + $in = $externalOAuth2->prepareOauthEndPointData($endpoint, $in, $call_backend, $local_out); + // $in["action"] must be set by prepareOauthEndPointData call + break; + case 'dashdata': $in["action"] = WRENCHBOARD_ACCOUNT_DASHDATA; + break; + case 'offerslist': $in["action"] = WRENCHBOARD_MOBILE_OFFERSLIST; + break; + + case 'offersresponse': $in["action"] = WRENCHBOARD_MOBILE_OFFERSRESP; + break; + + case 'loadprofile': $in["action"] = WRENCHBOARD_MOBILE_LOADPROFILE; + break; + case 'updateprofile': $in["action"] = WRENCHBOARD_MOBILE_UPDATEPROFILE; + break; + case 'account': $in["action"] = WRENCHBOARD_MOBILE_ACCOUNT; + break; + case 'getpendingjobs': + $in["action"] = WRENCHBOARD_ACCOUNT_PENDJOB; + break; + case 'pendingjob': + + break; + case 'getjob': + + break; + + case 'mybanklist':$in["action"] = WRENCHBOARD_USER_GETBANKLIST; + break; + case 'sendmoney':$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"]; + break; + case 'sendinterest':$in["action"] = WRENCHBOARD_USER_SENDJOBINT; + $out["internal_return"] = 0; + break; + case 'waitinginterest': + $in["action"] = WRENCHBOARD_JOB_WAITING_INT; + break; + case 'sendmoneyfee': $in["action"] = WRENCHBOARD_SMONEY_PROCFEE; + break; + case 'taskmessage': $in["action"] = WRENCHBOARD_MOBILE_TASKMESSAGE; + break; + case 'sendtaskmessage': $in["action"] = WRENCHBOARD_MOBILE_SENDTASKMESSAGE; + break; + case 'activejobmsglist': + $in["action"] = WRENCHBOARD_CONTRACT_MSGLIST; + break; + case 'getwallets': $in["action"] = WRENCHBOARD_ACCOUNT_WALLETS; + break; + case WRENCHBOARD_ACCOUNT_PRICE_COMBO: break ; // 11171); + case WRENCHBOARD_ACCOUNT_JOBPOST_DURATION: break ; //11173); + case 'recipients': $in["action"] = WRENCHBOARD_ACCOUNT_USER_RECIPEINT; break; // 11175); + case 'accounttypes': $in["action"] = WRENCHBOARD_ACCOUNT_ACCOUNT_TYPES; break ; // 11177); + case WRENCHBOARD_ACCOUNT_COUNTRY_COMBO: break ; // 11179); + case WRENCHBOARD_ACCOUNT_JOB_COUNTRY: break ; // 11181); + case 'sendreferral': $in["action"] =WRENCHBOARD_ACCOUNT_SENDREFER; break; + case 'refferhx': $in["action"] =WRENCHBOARD_ACCOUNT_REFFERHX; break; + case 'countrybanks': $in["action"] =WRENCHBOARD_ACCOUNT_COUNTRY_BANKS; break; + case 'reqdel': + // some actions + break; + case 'recentactivities': + $in["action"] = WRENCHBOARD_ACCOUNT_RECENTS; + break; + } + $in["pid"] = 100; + return $in; + } + +} diff --git a/www-api/app/Models/ResultFormatter.php b/www-api/app/Models/ResultFormatter.php index 9e6142a0..f790bc15 100644 --- a/www-api/app/Models/ResultFormatter.php +++ b/www-api/app/Models/ResultFormatter.php @@ -65,6 +65,10 @@ class ResultFormatter extends Model } return $banner_str; } + + private function taskFileLink(){ + return 'file_link_will_be_here'; + } public function fixtags($text){ $text = htmlspecialchars($text); $text = preg_replace("/=/", "=\"\"", $text); @@ -371,6 +375,7 @@ class ResultFormatter extends Model "msg_firstname" => $out["msg_firstname_${key}"], "msg_id" => $out["msg_id_${key}"], "msg_type" => $out["msg_type_${key}"], + "file_link" => $this->taskFileLink(), "who" => $out["who_${key}"], "msg_uid" => $out["msg_uid_${key}"], );