Skip to content

Commit

Permalink
v2
Browse files Browse the repository at this point in the history
  • Loading branch information
mvdcreativo committed Nov 9, 2020
1 parent 04006e0 commit 425d856
Show file tree
Hide file tree
Showing 89 changed files with 6,034 additions and 6,257 deletions.
95 changes: 95 additions & 0 deletions app/Http/Controllers/API/Auth/AuthController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
<?php

namespace App\Http\Controllers\Api\Auth;

use App\User;
use Carbon\Carbon;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Str;

use Illuminate\Support\Facades\Auth;

class AuthController extends Controller
{
///REGISTRO
public function signup(Request $request)
{
$request->validate([
'name' => 'required|string',
'last_name'=> 'required|string',
'email' => 'required|string|email|unique:users',
'slug' => 'required|string|unique:users',
'password' => 'required|string|confirmed',
]);
$user = new User([
'name' => $request->name,
'email' => $request->email,
'last_name'=> $request->last_name,
'password' => bcrypt($request->password),
'slug' => $request->slug
]);
$user->save();
if($user){

$newUser = $this->login($request);
};
return response()->json([
'user' => $newUser->original,
'message' => 'Successfully created user!'], 201);
}

//LOGIN
public function login(Request $request)
{
$request->validate([
'email' => 'required|string|email',
'password' => 'required|string',
// 'remember_me' => 'boolean',
]);
$credentials = request(['email', 'password']);
if (!Auth::attempt($credentials)) {
return response()->json([
'message' => 'Unauthorized'], 401);
}
$user = $request->user();
$tokenResult = $user->createToken('Personal Access Token');
$token = $tokenResult->token;
//
$remember_me = true;
//
if ($remember_me) {
$token->expires_at = Carbon::now()->add(1,'minute');
}
$token->save();
// dd($tokenResult);

return response()->json([
'token' => $tokenResult->accessToken,
// 'refresh_token' => $tokenResult->refreshToken,
'token_type' => 'Bearer',
'expires_at' => Carbon::parse(
$tokenResult->token->expires_at)
->toDateTimeString(),
'user' => $user
]);
}

//LOGOUT
public function logout(Request $request)
{
$request->user()->token()->revoke();
return response()->json(['message' =>
'Successfully logged out']);
}

//USUARIO
public function user(Request $request)
{
// $user = $request->user();
$user = Auth::user()->load('account');

return response()->json($user);
// return User::all();
}
}
145 changes: 145 additions & 0 deletions app/Http/Controllers/API/Auth/PasswordResetController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
<?php

namespace App\Http\Controllers\Api\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Carbon\Carbon;

use App\Notifications\PasswordResetSuccess;
use App\User;
use App\PasswordReset;
use App\Mail\Notificaciones;
USE Illuminate\Support\Facades\Mail;
use Illuminate\Support\Str;



class PasswordResetController extends Controller
{




/**
* Create token password reset
*
* @param [string] email
* @return [string] message
*/
public function create(Request $request)
{
$request->validate([
'email' => 'required|string|email',
]);
$user = User::where('email', $request->email)->first();
if (!$user){
return response()->json([
"message" => "No podemos encontrar un usuario con esa dirección de correo electrónico."
], 404);
}
$passwordReset = PasswordReset::updateOrCreate(
['email' => $user->email],
[
'email' => $user->email,
'token' => Str::random(60)
]
);
if ($user && $passwordReset){

$mail_destino = $user->email;
$msg = [
'subject' => 'Nueva Era - Restablecimiento de contraseña',
'title' => 'Cambiamos tu contraseña?',
'paragraph' => 'Enviamos este correo electrónico porque recibimos una solicitud de restablecimiento de contraseña para su cuenta. Esta solicitud es válida por 12hs.',
'button' => [
'button_name' => 'Crear contraseña',
'button_link' => url('/api/password/find/'.$passwordReset->token)
]
];

// Mail::to($mail_destino)->queue(new Notificaciones($msg));
// // $user->notify(
// // new PasswordResetRequest($passwordReset->token)
// // );

// return response()->json([
// 'message' => '¡Hemos enviado un enlace por correo electrónico!'
// ]);
}
}





/**
* Find token password reset
*
* @param [string] $token
* @return [string] message
* @return [json] passwordReset object
*/
public function find($token)
{
$passwordReset = PasswordReset::where('token', $token)->first();
if (!$passwordReset)
return redirect()->away("https://nuevaerauruguay.com/acceder?error='Este token de restablecimiento de contraseña no es válido.'");
// return response()->json([
// 'message' => 'Este token de restablecimiento de contraseña no es válido.'
// ], 404);
if (Carbon::parse($passwordReset->updated_at)->addMinutes(720)->isPast()) {
$passwordReset->delete();
return redirect()->away("https://nuevaerauruguay.com/acceder?error='Este token de restablecimiento de contraseña no es válido.'");

// return response()->json([
// 'message' => 'Este token de restablecimiento de contraseña no es válido.'
// ], 404);
}
return redirect()->away("https://nuevaerauruguay.com/acceder?email=".$passwordReset->email."&token=".$passwordReset->token);
// return response()->json($passwordReset);
}




/**
* Reset password
*
* @param [string] email
* @param [string] password
* @param [string] password_confirmation
* @param [string] token
* @return [string] message
* @return [json] user object
*/
public function reset(Request $request)
{
$request->validate([
'email' => 'required|string|email',
'password' => 'required|string|confirmed',
'token' => 'required|string'
]);
$passwordReset = PasswordReset::where([
['token', $request->token],
['email', $request->email]
])->first();
if (!$passwordReset)
return response()->json([
'message' => 'Este token de restablecimiento de contraseña no es válido.'
], 404);
$user = User::where('email', $passwordReset->email)->first();
if (!$user)
return response()->json([
'message' => 'No podemos encontrar un usuario con esa dirección de correo electrónico.'
], 404);
$user->password = bcrypt($request->password);
$user->save();
$passwordReset->delete();
// $user->notify(new PasswordResetSuccess($passwordReset));
return response()->json([
'message' => 'Contraseña actualizada correctamente.'
], 200);
// return response()->json($user);
}
}
21 changes: 18 additions & 3 deletions app/Http/Controllers/API/CityAPIController.php
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,23 @@ public function index(Request $request)
if ($request->get('limit')) {
$query->limit($request->get('limit'));
}
if ($request->get('per_page')) {
$per_page = $request->get('per_page');
}else{
$per_page = 20;
};

$cities = $query->get();
if ($request->get('sort')) {
$sort = $request->get('sort');
}else{
$sort = "desc";
}

$cities = $query
->with('province','municipalities' )
->filter($request->get('filter'))
->orderBy('id', $sort)
->paginate($per_page);

return $this->sendResponse($cities->toArray(), 'Cities retrieved successfully');
}
Expand Down Expand Up @@ -110,7 +125,7 @@ public function store(CreateCityAPIRequest $request)

/** @var City $city */
$input['slug'] = Str::slug($request->name);
$city->slug = Str::slug($request->name);
$city = City::create($input);

return $this->sendResponse($city->toArray(), 'City saved successfully');
}
Expand Down Expand Up @@ -222,9 +237,9 @@ public function update($id, UpdateCityAPIRequest $request)

$city->fill($request->all());
$city->slug = Str::slug($request->name);

$city->save();


return $this->sendResponse($city->toArray(), 'City updated successfully');
}

Expand Down
Loading

0 comments on commit 425d856

Please sign in to comment.