request = $request = \Config\Services::request(); } public function index() { return []; } private function prepareEndPointData($endpoint, $in, &$call_backend=true,&$local_out=[]){ switch ($endpoint) { 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 '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; } break; case 'starttopup': $in["action"] = WRENCHBOARD_ACCOUNT_PREPARE_TOPUP; 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 'userlogin': $in["action"] = WRENCHBOARD_ACCOUNT_LOGIN; if (!isset($in["login_mode"])){ $in["login_mode"] = MOBILE_LOGIN; } 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; } $in["pid"] = 100; return $in; } public function apigate(){ log_message('critical', "0001"); header('Access-Control-Allow-Origin: *'); log_message('critical', "0002"); $call_backend = true; /* //header("Access-Control-Allow-Origin: http://localhost:9057 "); header('Access-Control-Expose-Headers: Access-Control-Allow-Origin'); //header('Access-Control-Allow-Credentials: true '); //header("Access-Control-Allow-Headers: Cache-Control, Pragma, Origin, Authorization, Content-Type, X-Requested-With"); 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'); header('Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS'); header('Content-type: application/json'); */ 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'){ log_message('critical', "ENDPOINT TESTING UPLOAD-> ".$endpoint ); $local_out=["test_msg"=>'Yes the upload endpoint was hit********']; $call_backend = false; // will be decided after file is saved //$fl_in=[]; $raw_json = file_get_contents('php://input'); $raw_array = json_decode($raw_json, true); $raw_array["call_backend"] = $call_backend; $raw_array["system_primary_uploads"] = $this->getSiteConfigurations("system.primary_uploads"); $out = ( new \App\Models\UploadManager() )->reciveUpload($raw_array, $local_out); $call_backend = $out["call_backend"]; $raw_array["message"] = $out["message"]; } 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) ); 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)); } }