<?php 
    require_once("Rest.inc.php"); 
     
    class API extends REST { 
        public $data = ""; 
        public function __construct(){ 
            parent::__construct();                // Init parent contructor 
        } 
 
        protected function register(){ 
            // Cross validation if the request method is POST else it will return "Not Acceptable" status 
            if($this->get_request_method() != "POST"){ 
                $this->response('',406); 
            } 
             
            if(!empty($this->_request['email']) && !empty($this->_request['password'])){ 
 
                $check_info = array( 
                        'fields'=>'user_id,email', 
                        'where'=>'email like "'.$this->_request['email'].'"' 
                    ); 
                $exist_email = $this->GetSingleRecord("user_master",$check_info); 
 
                if(count($exist_email)>0) { 
                    $response_array['status']='fail'; 
                    $response_array['message']='Email already exists.'; 
                    $response_array['data']=''; 
                    $this->response($this->json($response_array), 200); 
                 } else { 
                    $info_array = array( 
                            'firstname'=>$this->_request['firstname'], 
                            'lastname'=>$this->_request['lastname'], 
                            'email'=>$this->_request['email'], 
                            'password'=>$this->MakePassword($this->_request['password']), 
                            'register_date'=>date("Y-m-d H:i:s"), 
                            'register_ipaddress'=>$_SERVER['REMOTE_ADDR'] 
                        ); 
                    //$this->response($this->json($info_array), 200);         
                    $user_id = $this->InsertRecord("user_master",$info_array); 
 
                    if($user_id>0) { 
                        $response_array['status']='success'; 
                        $response_array['message']='register successfully.'; 
                        $response_array['data']=array('user_id'=>$user_id); 
                        $this->response($this->json($response_array), 200); 
                    } else { 
                        $response_array['status']='fail'; 
                        $response_array['message']='insufficient data.'; 
                        $response_array['data']=''; 
                        $this->response($this->json($response_array), 204); 
                    } 
                } 
            } 
        } 
 
        protected function login(){ 
            // Cross validation if the request method is POST else it will return "Not Acceptable" status 
            if($this->get_request_method() != "POST"){ 
                $this->response('',406); 
            } 
             
            $email = $this->_request['email'];         
            $password = $this->_request['password']; 
 
            if(!empty($email) && !empty($password) && $this->validate($email,'email')){ 
 
                $info_array = array( 
                        "fields"=>"user_id,firstname,lastname,email,active_status", 
                        "where"=>"email = '".$email."' and password = '".$this->MakePassword($password)."'" 
                    ); 
                $user_data = $this->GetSingleRecord("user_master",$info_array); 
 
                if(count($user_data)>0) { 
                    $response_array['status']='success'; 
                    $response_array['message']='logged in successfully.'; 
                    $response_array['data']=$user_data; 
                    $this->response($this->json($response_array), 200); 
                } else { 
                    $response_array['status']='fail'; 
                    $response_array['message']='invalid email or password.'; 
                    $response_array['data']=''; 
                    $this->response($this->json($response_array)); 
                } 
            } 
             
            // If invalid inputs "Bad Request" status message and reason 
            $error = array('status' => "Failed", "msg" => "Invalid data"); 
            $this->response($this->json($error), 400); 
        } 
         
        protected function users(){     
            // Cross validation if the request method is GET else it will return "Not Acceptable" status 
            if($this->get_request_method() != "GET"){ 
                $this->response('',406); 
            } 
 
            $info_array = array( 
                        "fields"=>"user_id,firstname,lastname,email,active_status" 
                    ); 
            $user_data = $this->GetRecord("user_master",$info_array); 
 
            if(count($user_data)>0) { 
                $response_array['status']='success'; 
                $response_array['message']='Total '.count($user_data).' record(s) found.'; 
                $response_array['total_record']= count($user_data); 
                $response_array['data']=$user_data; 
                $this->response($this->json($response_array), 200); 
            } else { 
                $response_array['status']='fail'; 
                $response_array['message']='Record not found.'; 
                $response_array['data']=''; 
                $this->response($this->json($response_array), 204); 
            } 
        } 
 
        protected function deleteuser(){ 
            // Cross validation if the request method is DELETE else it will return "Not Acceptable" status 
            if($this->get_request_method() != "DELETE"){ 
                $this->response('',406); 
            } 
            $id = (int)$this->_request['id']; 
            if($id > 0){ 
                $where = "user_id = '".$id."'"; 
                $delete = $this->DeleteRecord("user_master",$where); 
 
                if($delete>0) { 
                    $response_array['status']='success'; 
                    $response_array['message']='Total '.count($delete).' record(s) Deleted.'; 
                    $response_array['data']=$delete; 
                    $this->response($this->json($response_array), 200); 
                } else { 
                    $response_array['status']='fail'; 
                    $response_array['message']='no record deleted'; 
                    $response_array['data']=''; 
                    $this->response($this->json($response_array), 200); 
                } 
            } else { 
                $this->response('',204);    // If no records "No Content" status 
            } 
        } 
    } 
    // Initiiate Library 
    $api = new API(); 
    $api->processApi(); 
?>
 
 |