Skywalkr08

My Rest API

Mar 24th, 2018
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.25 KB | None | 0 0
  1. <?php
  2. require 'config.php';
  3. require 'Slim/Slim.php';
  4.  
  5. \Slim\Slim::registerAutoloader();
  6. $app = new \Slim\Slim();
  7.  
  8. $app->post('/login','login'); /* User login */
  9. $app->post('/signup','signup'); /* User Signup  */
  10. $app->get('/getFeed','getFeed'); /* User Feeds  */
  11. $app->post('/feed','feed'); /* User Feeds  */
  12. $app->post('/feedUpdate','feedUpdate'); /* User Feeds  */
  13. $app->post('/feedDelete','feedDelete'); /* User Feeds  */
  14. $app->post('/getImages', 'getImages');
  15.  
  16.  
  17. $app->run();
  18.  
  19. /************************* USER LOGIN *************************************/
  20. /* ### User login ### */
  21. function login() {
  22.    
  23.     $request = \Slim\Slim::getInstance()->request();
  24.     $data = json_decode($request->getBody());
  25.    
  26.     try {
  27.        
  28.         $db = getDB();
  29.         $userData ='';
  30.         $sql = "SELECT user_id, name, email, username FROM users WHERE (username=:username or email=:username) and password=:password ";
  31.         $stmt = $db->prepare($sql);
  32.         $stmt->bindParam("username", $data->username, PDO::PARAM_STR);
  33.         $password=hash('sha256',$data->password);
  34.         $stmt->bindParam("password", $password, PDO::PARAM_STR);
  35.         $stmt->execute();
  36.         $mainCount=$stmt->rowCount();
  37.         $userData = $stmt->fetch(PDO::FETCH_OBJ);
  38.        
  39.         if(!empty($userData))
  40.         {
  41.             $user_id=$userData->user_id;
  42.             $userData->token = apiToken($user_id);
  43.         }
  44.        
  45.         $db = null;
  46.          if($userData){
  47.                $userData = json_encode($userData);
  48.                 echo '{"userData": ' .$userData . '}';
  49.             } else {
  50.                echo '{"error":{"text":"Bad request wrong username and password"}}';
  51.             }
  52.  
  53.            
  54.     }
  55.     catch(PDOException $e) {
  56.         echo '{"error":{"text":'. $e->getMessage() .'}}';
  57.     }
  58. }
  59.  
  60.  
  61. /* ### User registration ### */
  62. function signup() {
  63.     $request = \Slim\Slim::getInstance()->request();
  64.     $data = json_decode($request->getBody());
  65.     $email=$data->email;
  66.     $name=$data->name;
  67.     $username=$data->username;
  68.     $password=$data->password;
  69.    
  70.     try {
  71.        
  72.         $username_check = preg_match('~^[A-Za-z0-9_]{3,20}$~i', $username);
  73.         $email_check = preg_match('~^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$~i', $email);
  74.         $password_check = preg_match('~^[A-Za-z0-9!@#$%^&*()_]{6,20}$~i', $password);
  75.        
  76.        // echo $email_check.'<br/>'.$email;
  77.        
  78.         if (strlen(trim($username))>0 && strlen(trim($password))>0 && strlen(trim($email))>0 && $email_check>0 && $username_check>0 && $password_check>0)
  79.         {
  80.             //echo 'here';
  81.             $db = getDB();
  82.             $userData = '';
  83.             $sql = "SELECT user_id FROM users WHERE username=:username or email=:email";
  84.             $stmt = $db->prepare($sql);
  85.             $stmt->bindParam("username", $username,PDO::PARAM_STR);
  86.             $stmt->bindParam("email", $email,PDO::PARAM_STR);
  87.             $stmt->execute();
  88.             $mainCount=$stmt->rowCount();
  89.             $created=time();
  90.             if($mainCount==0)
  91.             {
  92.                
  93.                 /*Inserting user values*/
  94.                 $sql1="INSERT INTO users(username,password,email,name)VALUES(:username,:password,:email,:name)";
  95.                 $stmt1 = $db->prepare($sql1);
  96.                 $stmt1->bindParam("username", $username,PDO::PARAM_STR);
  97.                 $password=hash('sha256',$data->password);
  98.                 $stmt1->bindParam("password", $password,PDO::PARAM_STR);
  99.                 $stmt1->bindParam("email", $email,PDO::PARAM_STR);
  100.                 $stmt1->bindParam("name", $name,PDO::PARAM_STR);
  101.                 $stmt1->execute();
  102.                
  103.                 $userData=internalUserDetails($email);
  104.                
  105.             }
  106.            
  107.             $db = null;
  108.          
  109.  
  110.             if($userData){
  111.                $userData = json_encode($userData);
  112.                 echo '{"userData": ' .$userData . '}';
  113.             } else {
  114.                echo '{"error":{"text":"Enter valid data"}}';
  115.             }
  116.  
  117.            
  118.         }
  119.         else{
  120.             echo '{"error":{"text":"Enter valid data"}}';
  121.         }
  122.     }
  123.     catch(PDOException $e) {
  124.         echo '{"error":{"text":'. $e->getMessage() .'}}';
  125.     }
  126. }
  127. ?>
Add Comment
Please, Sign In to add comment