Files
elcaribe/desarrollo2/app/Http/Controllers/UserController.php
2023-08-23 17:33:44 -04:00

167 lines
6.5 KiB
PHP

<?php
/* by joan 5-08-2023 */
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Support\Str;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Session;
use App\Notifications\UserCredentialsNotification;
use App\Notifications\EmailVerificationNotification;
class UserController extends Controller
{
// public function register_email(Request $request)
// {
// // Validar los datos recibidos en la solicitud
// $request->validate([
// 'email' => 'required|email',
// ]);
// // Buscar el usuario por su dirección de correo electrónico
// $user = User::where('email', $request->email)->first();
// if ($user && $user->email_verified_at != NULL) {
// // Si el usuario ya existe y su campo "verification_code" es verdadero, no enviar nuevamente
// return response()->json(['message' => 'La cuenta ya existe'], 400);
// }
// if (!$user) {
// // Si el usuario no existe, generar un código de verificación aleatorio de 6 dígitos numéricos
// $verificationCode = rand(10000, 99999);
// // Crear un nuevo usuario con el correo electrónico y el código de verificación
// $user = User::create([
// 'email' => $request->email,
// 'verification_code' => $verificationCode,
// ]);
// // Guardar el correo en sesión
// session(['registered_email' => $request->email]);
// } else {
// // Si el usuario ya existe pero no se ha enviado el código, generar un nuevo código
// $verificationCode = rand(10000, 99999);
// // Actualizar el código de verificación y el campo "verification_code"
// $user->verification_code = $verificationCode;
// $user->save();
// }
// // Enviar la notificación al correo del usuario con el código de verificación
// $user->notify(new EmailVerificationNotification($verificationCode));
// // Devolver una respuesta (opcional)
// return response()->json(['message' => 'Usuario creado correctamente'], 201);
// }
/* // Validar los datos recibidos en la solicitud
$request->validate([
'email' => 'required|email',
]);
// Buscar el usuario por su dirección de correo electrónico
$user = User::where('email', $request->email)->first();
// Si el usuario ya existe, reenviar el código de verificación existente
if ($user) {
$verificationCode = $user->verification_code;
} else {
// Generar un código de verificación aleatorio de 6 dígitos numéricos
$verificationCode = rand(100000, 999999);
// Crear un nuevo usuario con el correo electrónico y el código de verificación
$user = User::create([
'email' => $request->email,
'verification_code' => $verificationCode,
]);
}
// Enviar la notificación al correo del usuario con el código de verificación
$user->notify(new EmailVerificationNotification($verificationCode));
// Devolver una respuesta (opcional)
return response()->json(['message' => 'Usuario creado correctamente'], 201); */
// public function verify_code(Request $request)
// {
// // Validar el correo electrónico
// $request->validate([
// 'email' => 'required|email',
// 'codes' => 'required'
// ]);
// // Verificar si el correo electrónico coincide con el almacenado en la sesión
// /* if ($request->email !== session('registered_email')) {
// return response()->json(['message' => 'Correo no coincide'], 400);
// } */
// // Buscar el usuario por su dirección de correo electrónico
// $user = User::where('email', $request->email)->first();
// // Verificar si el usuario y el código coinciden
// if ($user && $user->verification_code === $request->codes) {
// // Cambiar la lógica aquí para redireccionar o retornar otro mensaje
// $user->email_verified_at = now();
// $temporaryPassword = Str::random(8);
// $user->password = Hash::make($temporaryPassword);
// if ($request->account_type == "seller") {
// $user->user_type = "seller";
// }
// $user->save();
// // Enviar la notificación con las credenciales
// $user->notify(new UserCredentialsNotification($temporaryPassword));
// return response()->json(['message' => 'Código verificado correctamente']);
// } else {
// return response()->json(['message' => 'Código no coincide'], 400);
// }
// }
}
/* public function register_email(Request $request)
{
dd("si");
// Validar los datos recibidos en la solicitud
$request->validate([
'email' => 'required|email',
]);
// Buscar el usuario por su dirección de correo electrónico
$user = User::where('email', $request->email)->first();
if ($user && $user->verification_code == "true") {
// Si el usuario ya existe y su campo "verification_code" es verdadero, no enviar nuevamente
return response()->json(['message' => 'La cuenta ya existe'], 400);
}
if (!$user) {
// Si el usuario no existe, generar un código de verificación aleatorio de 6 dígitos numéricos
$verificationCode = rand(100000, 999999);
// Crear un nuevo usuario con el correo electrónico y el código de verificación
$user = User::create([
'email' => $request->email,
'verification_code' => $verificationCode,
]);
} else ($user && !$user->verification_code) {
// Si el usuario ya existe pero no se ha enviado el código, generar un nuevo código
$verificationCode = rand(100000, 999999);
// Actualizar el código de verificación y el campo "verification_code"
$user->verification_code = $verificationCode;
$user->save();
}
// Enviar la notificación al correo del usuario con el código de verificación
$user->notify(new EmailVerificationNotification($verificationCode));
// Devolver una respuesta (opcional)
return response()->json(['message' => 'Usuario creado correctamente'], 201);
} */