You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

146 lines
4.6 KiB

4 years ago
  1. <?php
  2. $app->group('/user', function () use ($app) {
  3. $app->get('/', function () use ($app) {
  4. $data = json_decode($app->request->getBody(), true);
  5. $results = [];
  6. $results["user"] = [];
  7. $results["success"]= "false";
  8. if (validatedKey($data["user"]["id"], $data["user"]["key"])) {
  9. $user = user::where('id', '=', $data["user"]["id"])->first();
  10. $results["user"] = $user;
  11. $results["success"]= "true";
  12. } else {
  13. $results["success"]= "false";
  14. $results["error"]= "No auth";
  15. }
  16. echo json_encode($results);
  17. });
  18. $app->post('/photo', function () use ($app) {
  19. $data = json_decode($_POST['data'], true);
  20. $results = [];
  21. $results["success"]= "false";
  22. if (validatedKey($data['user'])) {
  23. if($_FILES['file']['name'] != ""){ // El campo foto contiene una imagen...
  24. // Primero, hay que validar que se trata de un JPG/GIF/PNG
  25. $allowedExts = array("jpg", "jpeg", "gif", "png", "JPG", "GIF", "PNG");
  26. $ext = end(explode(".", $_FILES["file"]["name"]));
  27. if ((($_FILES["file"]["type"] == "image/gif")
  28. || ($_FILES["file"]["type"] == "image/jpeg")
  29. || ($_FILES["file"]["type"] == "image/png")
  30. || ($_FILES["file"]["type"] == "image/pjpeg"))
  31. && in_array($ext, $allowedExts)) {
  32. $ext = end(explode('.', $_FILES['file']['name']));
  33. $photo = substr(md5(uniqid(rand())),0,10).".".$ext;
  34. $dir = dirname(__FILE__).'/../../public/img/users'; // directorio de tu elección
  35. if(move_uploaded_file($_FILES['file']['tmp_name'], $dir.'/'.$photo)){
  36. $user = User::find($data['user']['id']);
  37. $user->img = "img/users/".$photo;
  38. $user->save();
  39. $img = new Imagick($dir.'/'.$photo);
  40. $img->cropThumbnailImage(50, 50);
  41. $img->writeImage ($dir.'/'.$photo);
  42. $results['img'] = "img/users/".$photo;
  43. $results["success"]= "true";
  44. }
  45. } else {
  46. $results["error"]= "Invalid format";
  47. }
  48. } else {
  49. $results["error"]= "Not exist file";
  50. }
  51. } else {
  52. $results["success"]= "false";
  53. $results["error"]= "No auth";
  54. }
  55. echo json_encode($results);
  56. });
  57. $app->post('/new', function () use ($app) {
  58. $data = json_decode($app->request->getBody(), true);
  59. $results = [];
  60. $results["success"]= "false";
  61. if(!User::where('email', '=', $data["user"]["email"])->exists()){
  62. $user = new User();
  63. $user->email = $data["user"]["email"];
  64. $user->password = hash('sha512',$data["user"]["password"]);
  65. $user->save();
  66. $encriptedKey = hash('sha512', $user->id.$user->email.$user->created_at);
  67. $results["id"] = $user->id;
  68. $results["email"] = $user->email;
  69. $results["isAdmin"] = $user->isAdmin;
  70. $results["key"] = $encriptedKey;
  71. $results["success"]= "true";
  72. }
  73. echo json_encode($results);
  74. });
  75. $app->post('/login', function () use ($app) {
  76. $data = json_decode($app->request->getBody(), true);
  77. $results = [];
  78. $results["success"]= "false";
  79. $veri = User::where('email', '=', $data['user']['email'])->where('email', '=', $data['user']['email'])->where('password', '=', hash('sha512', $data['user']['password']))->first();
  80. if(User::where('email', '=', $data['user']['email'])->where('password', '=', hash('sha512', $data['user']['password']))->exists()){
  81. $results["id"] = $veri->id;
  82. $results["email"] = $veri->email;
  83. $results["isAdmin"] = $veri->isAdmin;
  84. $results["key"] = hash('sha512', $veri->id.$veri->email.$veri->created_at);
  85. $results["success"]= "true";
  86. }
  87. echo json_encode($results);
  88. });
  89. $app->get('/list', function () use ($app) {
  90. $users = User::all();
  91. $results["users"] = $users;
  92. echo json_encode($results);
  93. });
  94. $app->post('/social', function () use ($app) {
  95. $data = json_decode($app->request->getBody(), true);
  96. $pass = hash('sha512', $data['social']."-".$data['user']['email']."-".hash('sha512', $data['user']['name']));
  97. $results = [];
  98. $results["success"]= "false";
  99. if($data['social'] =="twitter"){
  100. $data["user"]["email"] = "@".$data["user"]["alias"];
  101. }
  102. $query = User::where('email', '=', $data["user"]["email"])->where('password', '=', $pass);
  103. //print_s($pass);
  104. if($query->exists()){
  105. $user = $query->first();
  106. }else{
  107. $user = new User();
  108. $user->email = $data["user"]["email"];
  109. $user->password = $pass;
  110. $user->img = $data["user"]["avatar"];
  111. $user->social = $data["social"];
  112. $user->save();
  113. }
  114. $encriptedKey = hash('sha512', $user->id.$user->email.$user->created_at);
  115. $results["id"] = $user->id;
  116. $results["email"] = $user->email;
  117. $results["isAdmin"] = $user->isAdmin;
  118. $results["img"] = $user->img;
  119. $results["social"] = $user->social;
  120. $results["key"] = $encriptedKey;
  121. $results["success"]= "true";
  122. echo json_encode($results);
  123. });
  124. });