Advertisement
Guest User

Untitled

a guest
Feb 17th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.75 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Http\Controllers;
  4.  
  5. use Illuminate\Http\Request;
  6. use JWTAuth;
  7. use App\Usuario;
  8. use App\Endereco;
  9. use App\Perfil;
  10. use Illuminate\Support\Facades\Validator;
  11. use Image;
  12. use Illuminate\Support\Facades\Input;
  13. use Illuminate\Support\Facades\Storage;
  14.  
  15. class AuthController extends Controller
  16. {
  17.  
  18. /**
  19. * API Register
  20. *
  21. * @param Request $request
  22. * @return \Illuminate\Http\JsonResponse
  23. */
  24.  
  25. public function uploadFile(Request $request)
  26. {
  27. $file=Input::file('ionicfile');
  28. $path = Storage::disk('public')->putFile('fotos', $file);
  29.  
  30. return response()->json($path);
  31. }
  32.  
  33.  
  34. public function register(Request $request)
  35. {
  36. $rules = [
  37. 'name' => 'required|max:255',
  38. 'sobrenome' => 'required|max:255',
  39. 'data_nascimento' => 'required|date',
  40. 'email' => 'required|email|max:255|unique:usuarios',
  41. 'password' => 'required|min:6|confirmed',
  42. 'logradouro' => 'required|max:255',
  43. 'bairro' => 'required|max:255',
  44. 'cidade' => 'required|max:255',
  45. 'estado' => 'required|max:255',
  46. 'cep' => 'required|max:255',
  47. ];
  48. $registro = [
  49. 'name' => $request->nome,
  50. 'sobrenome' => $request->sobrenome,
  51. 'data_nascimento' => $request->data_nascimento,
  52. 'email' => $request->email,
  53. 'logradouro' => $request->logradouro,
  54. 'bairro' => $request->bairro,
  55. 'cidade' => $request->cidade,
  56. 'estado' => $request->estado,
  57. 'cep' => $request->cep,
  58. 'password' => $request->password,
  59. 'password_confirmation' =>$request->password_confirmation
  60. ];
  61.  
  62.  
  63. $validator = Validator::make($registro, $rules);
  64. if($validator->fails()) {
  65. return response()->json(['success'=> false, 'error'=> $validator->messages()]);
  66. }
  67.  
  68.  
  69. $endereco = new Endereco;
  70. $endereco->logradouro = $request->logradouro;
  71. $endereco->bairro = $request->bairro;
  72. $endereco->cidade = $request->cidade;
  73. $endereco->estado = $request->estado;
  74. $endereco->cep = $request->cep;
  75. $endereco->complemento = $request->complemento;
  76. $endereco->save();
  77.  
  78.  
  79. $perfil = new Perfil;
  80. $perfil->nome = $request->nome;
  81. $perfil->sobrenome = $request->sobrenome;
  82. $perfil->data_nascimento = $request->data_nascimento;
  83. $perfil->id_endereco = $endereco->id;
  84. $perfil->save();
  85.  
  86.  
  87. $usuario = new Usuario;
  88. $usuario->name = $request->nome;
  89. $usuario->password = bcrypt($request->password);
  90. $usuario->email = $request->email;
  91. $usuario->id_perfil = $perfil->id;
  92. $usuario->perfil_path = "images/padrao.jpg";
  93. $usuario->file = "images/padrao.jpg";
  94. $usuario->save();
  95. // $usuario->criarThumb("storage/".$path);
  96. // $usuario->criarThumb1("storage/".$path);
  97. // $usuario->criarThumb2("storage/".$path);
  98. // $usuario->criarThumb3("storage/".$path);
  99.  
  100.  
  101.  
  102. Image::make('images/padrao.jpg')->resize(350, null, function ($constraint) {
  103. $constraint->aspectRatio();
  104. })->crop(350, 350)->save('storage/fotos/thumbs1/padrao.jpg');
  105.  
  106. return response()->json($this->login($request));
  107. }
  108.  
  109. /**
  110. * API Login, on success return JWT Auth token
  111. *
  112. * @param Request $request
  113. * @return \Illuminate\Http\JsonResponse
  114. */
  115. public function login(Request $request)
  116. {
  117. $credentials = [
  118. 'email' => $request->email,
  119. 'password' => $request->password,
  120. ];
  121. try {
  122. // attempt to verify the credentials and create a token for the user
  123. if (! $token = JWTAuth::attempt($credentials)) {
  124. return response()->json(['success' => false, 'error' => 'We cant find an account with this credentials.'], 401);
  125. }
  126. } catch (JWTException $e) {
  127. // something went wrong whilst attempting to encode the token
  128. return response()->json(['success' => false, 'error' => 'Failed to login, please try again.'], 500);
  129. }
  130. // all good so return the token
  131. return response()->json(['success' => true, 'data'=> [ 'token' => $token ]]);
  132. }
  133. /**
  134. * Log out
  135. * Invalidate the token, so user cannot use it anymore
  136. * They have to relogin to get a new token
  137. *
  138. * @param Request $request
  139. */
  140. public function logout(Request $request) {
  141. $this->validate($request, ['token' => 'required']);
  142. try {
  143. JWTAuth::invalidate($request->input('token'));
  144. return response()->json(['success' => true]);
  145. } catch (JWTException $e) {
  146. // something went wrong whilst attempting to encode the token
  147. return response()->json(['success' => false, 'error' => 'Failed to logout, please try again.'], 500);
  148. }
  149. }
  150.  
  151. /**
  152. * API Recover Password
  153. *
  154. * @param Request $request
  155. * @return \Illuminate\Http\JsonResponse
  156. */
  157. public function recover(Request $request)
  158. {
  159. $user = Usuario::where('email', $request->email)->first();
  160. if (!$user) {
  161. $error_message = "Your email address was not found.";
  162. return response()->json(['success' => false, 'error' => ['email'=> $error_message]], 401);
  163. }
  164. try {
  165. Password::sendResetLink($request->only('email'), function (Message $message) {
  166. $message->subject('Your Password Reset Link');
  167. });
  168. } catch (\Exception $e) {
  169. //Return with error
  170. $error_message = $e->getMessage();
  171. return response()->json(['success' => false, 'error' => $error_message], 401);
  172. }
  173. return response()->json([
  174. 'success' => true, 'data'=> ['msg'=> 'A reset email has been sent! Please check your email.']
  175. ]);
  176. }
  177. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement