File: //home/cafsindia/uds.cafsinfotech.in/api/index.php
<?php
include('./functions.php');
session_start();
new api();
class api{
private $functions;
public function __construct(){
$this->functions = new functions();
$this->functions->db_connect();
$this->open_api();
}
# API VALIDATION
public function open_api(){
$raw_json = json_decode(file_get_contents('php://input'));
$frm = $raw_json->frm;
$mandate_keys = json_decode(file_get_contents('mandate_keys.json'), true);
$api_keys_arr = $mandate_keys[$frm];
$validation_arr = array();
$keysFromObject = array_keys(get_object_vars($raw_json));
if(!$frm){
$validation_arr['frm'] = "frm is required";
echo $this->functions->returnResult(False, 'Validation Failed', [], $validation_arr);
exit(0);
}else{
if($frm === "leaveStatus" && (int)$raw_json->request_type === 1 ){
if(!(int)$raw_json->leave_type){
$validation_arr['leave_type'] = "Leave Type is required";
}
}
foreach($api_keys_arr as $k => $v){
if(!in_array($v,$keysFromObject)){
$validation_arr[$v] = "$v is required";
}
}
if(count($validation_arr) > 0){
echo $this->functions->returnResult(False, 'Validation Failed', [], $validation_arr);
exit(0);
}
$this->handle_request($raw_json);
}
}
# API REQUEST
private function handle_request($raw_json){
$frm = $raw_json->frm;
$dynamic_validation_arr = array('addRequest'); # For Dynamic Validation
if(!in_array($frm,$dynamic_validation_arr)){
$static_validation = $this->functions->static_validation($raw_json);
}
if(!$static_validation){
$api_routes = json_decode(file_get_contents('api_routes.json'), true);
if($api_routes[$frm]){
$methods = $api_routes[$frm];
$rslt = $this->functions->$methods($raw_json);
$encode = $this->functions->encryptData($rslt); # Encryption
echo $rslt;
}else{
echo json_encode(['sts' => False,'msg' => 'Failed - Unknown Api']);
exit(0);
}
}else{
echo $static_validation;
exit(0);
}
}
}
?>