File: //home/cafsindia/hrms_cafsinfotech_in/api_test/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_text = file_get_contents('php://input');
// $json = $this->functions->encDec($raw_text);
$raw_json = json_decode($raw_text);
$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";
}
}
$pass_arr = array("curPass" => "Current Password","newPass" => "New Password","conPass" => "Confirm Password");
foreach($api_keys_arr as $k => $v){
if(!in_array($v,$keysFromObject)){
if(in_array($pass_arr[$v],$pass_arr)){
$validation_arr[$v] = $pass_arr[$v]." Is Required";
}else{
$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($frm === "checkIn" || $frm === "checkOut"){
$static_validation = false;
}
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);
}
}
}
?>