| Current Path : /var/www/html/inatote/application/controllers/api/ |
| 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
}