Your IP : 216.73.216.91


Current Path : /var/www/html/inatote/application/controllers/api/
Upload File :
Current File : /var/www/html/inatote/application/controllers/api/Inatote.php

<?php
require APPPATH . 'libraries/REST_Controller.php';
class Inatote extends REST_Controller {
    /**
     * Get All Data from this method.
     *
     * @return Response
    */
    public function __construct() {
       parent::__construct();
       header('Access-Control-Allow-Origin: *');
       header('Access-Control-Allow-Methods: GET, POST');
       header('Access-Control-Allow-Headers: Content-Type');
       $this->load->helper('language');
       $this->load->model('Api_model');
       $this->load->library('form_validation');
       $this->load->helper('string');
       $this->load->database();
    }
    /**
     * Get All Data from this method.
     *
     * @return Response
    */
 // Creating User 
  public function signup_post()
  {
    $rawData = json_decode(file_get_contents("php://input"));
    if(!empty($rawData)){
      $_POST = json_decode($this->input->raw_input_stream, true);
    }
    $this->form_validation->set_rules('token', 'Token', 'trim|required|callback_checkToken[token]');
    $this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email|is_unique[users.email]');
    $this->form_validation->set_rules('password', 'Password', 'trim|required|callback__userPassword[password]');
    $this->form_validation->set_rules('first_name', 'First Name', 'trim|required');
    $this->form_validation->set_rules('last_name', 'Last Name', 'trim|required');
    $this->form_validation->set_rules('invitation_code ', 'Invitation Code ', 'trim');
    $this->form_validation->set_rules('phone', 'Phone', 'trim|required');
    $data = array(
      'status' => false,
      'code' => -1,
      'msg' => 'Bad Request',
      'data' => null
    );
    if($this->form_validation->run() == TRUE )
      {
        $password = md5($this->input->post('password'));
        $userInfo = array(
          'email' => $this->input->post('email'),
          'password' => $password,
          'first_name' => $this->input->post('first_name'),
          'last_name' => $this->input->post('last_name'),
          'invitation_code' => $this->input->post('invitation_code'),
          'phone' => $this->input->post('phone')
        );
        $createUser = $this->Api_model->createUser($userInfo);
        if ($createUser === TRUE) {
          $data = array(
            'status' => true,
            'code' => 1,
            'msg' => 'success',
            'data' => 'User created'
          );
        }else{
          $data = array(
            'status' => 0,
            'code' => -2,
            'msg' => 'Something Went Wrong',
            'data' => 'Failed to create user'
          );
        }
      }else
      {
        $data['code'] = -1;
        $data['msg'] = strip_tags(validation_errors());
      }
      $this->response($data, REST_Controller::HTTP_OK);
    }

  // Login User 
  public function login_post()
  {
    $rawData = json_decode(file_get_contents("php://input"));
    if(!empty($rawData)){
      $_POST = json_decode($this->input->raw_input_stream, true);
    }
    $this->form_validation->set_rules('token', 'Token', 'trim|required|callback_checkToken[token]');
    $this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');
    $this->form_validation->set_rules('password', 'Password', 'trim|required');
    $data = array(
      'status' => false,
      'code' => -1,
      'msg' => 'Bad Request',
      'data' => null
    );
    if($this->form_validation->run() == TRUE )
      {
        $email = $this->input->post('email');
        $password = md5($this->input->post('password'));
        $checkUser = $this->Api_model->checkUserExist($email,$password);
        if (isset($checkUser) && !empty($checkUser)) {
          $data = array(
            'status' => true,
            'code' => 1,
            'msg' => 'success',
            'data' => $checkUser
          );
        }else{
          $data = array(
            'status' => false,
            'code' => -1,
            'msg' => 'Invalid Email And Password',
            'data' => null
          );
        }
      }else
      {
        $data['code'] = -1;
        $data['msg'] = strip_tags(validation_errors());
      }
      $this->response($data, REST_Controller::HTTP_OK);
    }
  // Login User End 

  // Get Store From Radius 
  public function stores_post()
  {
    $rawData = json_decode(file_get_contents("php://input"));
    if(!empty($rawData)){
      $_POST = json_decode($this->input->raw_input_stream, true);
    }
    $this->form_validation->set_rules('token', 'Token', 'trim|required|callback_checkToken[token]');
    $this->form_validation->set_rules('longitude', 'longitude', 'trim|required');
    $this->form_validation->set_rules('latitude', 'latitude', 'trim|required');
    $this->form_validation->set_rules('user_id', 'User id', 'trim|required');
    $data = array(
      'status' => false,
      'code' => -1,
      'msg' => 'Bad Request',
      'data' => null
    );
    if($this->form_validation->run() == TRUE )
      {
        $latitude = $this->input->post('latitude');
        $longitude = $this->input->post('longitude');
        $user_id = $this->input->post('user_id');
        $search = $this->input->post('search');
        $getStores = $this->Api_model->getStores($user_id,$latitude,$longitude,10,$search);
        $user_id = $this->input->post('user_id');
        if (isset($getStores) && !empty($getStores)) {
          $data = array(
            'status' => true,
            'code' => 1,
            'msg' => 'success',
            'data' => $getStores
          );
      }else{
          $data = array(
            'status' => true,
            'code' => 1,
            'msg' => 'no stores found',
            'data' => null
          );
        }
      }else
      {
        $data['code'] = -1;
        $data['msg'] = strip_tags(validation_errors());
      }
      $this->response($data, REST_Controller::HTTP_OK);
      }
  // Get Store From Radius End

 // Get Store From Radius 
  public function store_products_post()
  {
    $rawData = json_decode(file_get_contents("php://input"));
    if(!empty($rawData)){
      $_POST = json_decode($this->input->raw_input_stream, true);
    }
    $this->form_validation->set_rules('token', 'Token', 'trim|required|callback_checkToken[token]');
    $this->form_validation->set_rules('store_id', 'Store id', 'trim|required');
    $this->form_validation->set_rules('user_id', 'User id', 'trim|required');
    $data = array(
      'status' => false,
      'code' => -1,
      'msg' => 'Bad Request',
      'data' => null
    );
    if($this->form_validation->run() == TRUE )
      {
        $store_id = $this->input->post('store_id');
        $user_id = $this->input->post('user_id');
        $search = $this->input->post('search');
        $getStores = $this->Api_model->getStoresProducts($store_id,$user_id);
        if (isset($getStores) && !empty($getStores)) {
          $data = array(
            'status' => true,
            'code' => 1,
            'msg' => 'success',
            'data' => $getStores
          );
      }else{
          $data = array(
            'status' => true,
            'code' => 1,
            'msg' => 'no products found',
            'data' => null
          );
        }
      }else
      {
        $data['code'] = -1;
        $data['msg'] = strip_tags(validation_errors());
      }
      $this->response($data, REST_Controller::HTTP_OK);
      }
  // Get Store From Radius End

  // Insert Store To Favorite
  public function store_favorite_post()
  {
    $rawData = json_decode(file_get_contents("php://input"));
    if(!empty($rawData)){
      $_POST = json_decode($this->input->raw_input_stream, true);
    }
    $this->form_validation->set_rules('token', 'Token', 'trim|required|callback_checkToken[token]');
    $this->form_validation->set_rules('store_id', 'Store id', 'trim|required');
    $this->form_validation->set_rules('user_id', 'User id', 'trim|required');
    $data = array(
      'status' => false,
      'code' => -1,
      'msg' => 'Bad Request',
      'data' => null
    );
    if($this->form_validation->run() == TRUE )
      {
        $store_id = $this->input->post('store_id');
        $user_id = $this->input->post('user_id');
        $getStores = $this->Api_model->setFavoriteStore($store_id,$user_id);
        if (isset($getStores) && !empty($getStores)) {
          $data = array(
            'status' => true,
            'code' => 1,
            'msg' => 'success',
            'data' => $getStores
          );
      }else{
          $data = array(
            'status' => true,
            'code' => 1,
            'msg' => 'no favorite found',
            'data' => null
          );
        }
      }else
      {
        $data['code'] = -1;
        $data['msg'] = strip_tags(validation_errors());
      }
      $this->response($data, REST_Controller::HTTP_OK);
      }
  // Insert Store To Favorite End.

  // Insert Product To Favorite
  public function product_favorite_post()
  {
    $rawData = json_decode(file_get_contents("php://input"));
    if(!empty($rawData)){
      $_POST = json_decode($this->input->raw_input_stream, true);
    }
    $this->form_validation->set_rules('token', 'Token', 'trim|required|callback_checkToken[token]');
    $this->form_validation->set_rules('product_id', 'Product id', 'trim|required');
    $this->form_validation->set_rules('user_id', 'User id', 'trim|required');
    $data = array(
      'status' => false,
      'code' => -1,
      'msg' => 'Bad Request',
      'data' => null
    );
    if($this->form_validation->run() == TRUE )
      {
        $product_id = $this->input->post('product_id');
        $user_id = $this->input->post('user_id');
        $getStores = $this->Api_model->setFavoriteProduct($product_id,$user_id);
        if (isset($getStores) && !empty($getStores)) {
          $data = array(
            'status' => true,
            'code' => 1,
            'msg' => 'success',
            'data' => $getStores
          );
      }else{
          $data = array(
            'status' => true,
            'code' => 1,
            'msg' => 'no favorite found',
            'data' => null
          );
        }
      }else
      {
        $data['code'] = -1;
        $data['msg'] = strip_tags(validation_errors());
      }
      $this->response($data, REST_Controller::HTTP_OK);
      }
  // Insert Product To Favorite End


    // Insert Store To Rating
  public function store_rating_post()
  {
    $rawData = json_decode(file_get_contents("php://input"));
    if(!empty($rawData)){
      $_POST = json_decode($this->input->raw_input_stream, true);
    }
    $this->form_validation->set_rules('token', 'Token', 'trim|required|callback_checkToken[token]');
    $this->form_validation->set_rules('store_id', 'Store id', 'trim|required');
    $this->form_validation->set_rules('user_id', 'User id', 'trim|required');
    $this->form_validation->set_rules('rating', 'Rating', 'trim|required');
    $data = array(
      'status' => false,
      'code' => -1,
      'msg' => 'Bad Request',
      'data' => null
    );
    if($this->form_validation->run() == TRUE )
      {
        $store_id = $this->input->post('store_id');
        $user_id = $this->input->post('user_id');
        $rating = $this->input->post('rating');
        $getStores = $this->Api_model->setStoreRating($store_id,$user_id,$rating);
        if (isset($getStores) && !empty($getStores)) {
          $data = array(
            'status' => true,
            'code' => 1,
            'msg' => 'success',
            'data' => $getStores
          );
      }else{
          $data = array(
            'status' => true,
            'code' => 1,
            'msg' => 'no rating found',
            'data' => null
          );
        }
      }else
      {
        $data['code'] = -1;
        $data['msg'] = strip_tags(validation_errors());
      }
      $this->response($data, REST_Controller::HTTP_OK);
      }
  // Insert Store To Rating End

  // Insert Product To Rating
  public function product_rating_post()
  {
    $rawData = json_decode(file_get_contents("php://input"));
    if(!empty($rawData)){
      $_POST = json_decode($this->input->raw_input_stream, true);
    }
    $this->form_validation->set_rules('token', 'Token', 'trim|required|callback_checkToken[token]');
    $this->form_validation->set_rules('product_id', 'Product id', 'trim|required');
    $this->form_validation->set_rules('user_id', 'User id', 'trim|required');
    $this->form_validation->set_rules('rating', 'Rating', 'trim|required');
    $data = array(
      'status' => false,
      'code' => -1,
      'msg' => 'Bad Request',
      'data' => null
    );
    if($this->form_validation->run() == TRUE )
      {
        $product_id = $this->input->post('product_id');
        $user_id = $this->input->post('user_id');
        $rating = $this->input->post('rating');
        $getStores = $this->Api_model->setProductRating($product_id,$user_id,$rating);
        if (isset($getStores) && !empty($getStores)) {
          $data = array(
            'status' => true,
            'code' => 1,
            'msg' => 'success',
            'data' => $getStores
          );
      }else{
          $data = array(
            'status' => true,
            'code' => 1,
            'msg' => 'no rating found',
            'data' => null
          );
        }
      }else
      {
        $data['code'] = -1;
        $data['msg'] = strip_tags(validation_errors());
      }
      $this->response($data, REST_Controller::HTTP_OK);
      }
  // Insert Product To Rating End

   // Checking The Token If Valid
    public function checkToken($token)
    {
      if ($token == SECRET_TOKEN) {
        return true;
      }
      return false;
    }
    // Checking The Token If Valid End

    //Validation For User Password
    public function _userPassword($password) {
      if (preg_match('/^(?=.*[\w\d]).+/', $password ) ) 
      {
        return TRUE;
      } 
      else 
      {
        $this->form_validation->set_message('_userPassword', 'Password Must Contain Atleast One Alphabet');
        return FALSE;
      }
    }
    //Validation For User Password End
}