$request["name"], "email" => $request["email"], "password" => Hash::make($request["password"]), "lastname" => $request["lastname"], "validate" => 0, ]); return response()->json(['message' => 'User created successfully']); } public function delete(Request $request): JsonResponse { try { $user = User::find($request->user()->id); $user->delete(); return response()->json(['message' => 'User deleted successfully']); } catch(\Exception $e) { return response()->json(['message' => $e->getMessage()]); } } public function deleteById(Request $request, int $id): JsonResponse { if(!$this->isAdmin($request->user()->role)){ return response()->json(["message" => "Can't delete this user"], 403); } try { $user = User::find($id); if($user->role === 1) return response()->json(["message" => "Can't delete this user"], 403); $user->delete(); return response()->json(['message' => 'User deleted successfully']); } catch(\Exception $e) { return response()->json(['message' => $e->getMessage()]); } } public function getUser(Request $request, int $id): JsonResponse { try { $user = User::find($id); return response()->json([ 'id' => $user->id, 'name' => $user->name, 'lastname' => $user->lastname, 'email' => $user->email, 'phone' => $user->phone ? $user->phone : "null", 'validate' => $user->validate, 'role' => $user->role, ]); } catch(\Exception $e) { return response()->json(['message' => $e->getMessage()]); } } public function update(Request $request): JsonResponse { try { $user = User::find($request->user()->id); $user->name = $request["name"]; $user->lastname = $request["lastname"]; $user->phone = $request["phone"]; $user->save(); return response()->json(['message' => 'User updated successfully']); } catch(\Exception $e) { return response()->json(['message' => $e->getMessage()]); } } public function validate(Request $request, int $id): JsonResponse { if($request->user()->role != 1 || $request->user()->role == null){ return response()->json(["message" => "Can't validate this user"], 403); } try { $user = User::find($id); $user->validate = 1; $user->verified_at = now(); $user->save(); return response()->json(['message' => 'User validated successfully']); } catch(\Exception $e) { return response()->json(['message' => $e->getMessage()]); } } public function addRole(Request $request, int $id): JsonResponse { if(!$this->isAdmin($request->user()->role)){ return response()->json(["message" => "Can't add role to this user"], 403); } try { $user = User::find($id); $user->role = $request['role']; $user->save(); return response()->json(['message' => 'User role added successfully']); } catch(\Exception $e) { return response()->json(['message' => $e->getMessage()]); } } }