File manager - Edit - /var/www/html/pcadigital/api/app/Http/Controllers/UserController.php
Back
<?php namespace App\Http\Controllers; use App\Http\Services\AuthService; use Exception; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\Http; /** * @OA\Tag( * name="User", * description="Gerenciamento de Users" * ) * * @OA\PathItem( * path="/api/user" * ) */ class UserController extends Controller { private AuthService $authService; public function __construct() { $this->authService = new AuthService(); } /** * @OA\Get( * path="/api/user", * summary="Lista Users do aplicativo atual", * operationId="IndexUser", * tags={"User"}, * security={{"bearerAuth":{}}}, * @OA\Response(response=200, description="Users retornados com sucesso") * ) */ public function index(Request $request) { $response = Http::withHeaders([ 'Accept' => 'application/json', 'App' => env('CLIENT_APP_KEY'), 'Authorization' => 'Bearer ' . $request->bearerToken(), ])->get(env('AUTH_SERVICE_URL') . '/api/user?like=app_id,' . env('CLIENT_APP_KEY')); return response($response->json(), $response->status()); } /** * @OA\Post( * path="/api/user", * summary="Registra um novo User", * operationId="StoreUser", * tags={"User"}, * @OA\RequestBody( * required=true, * @OA\JsonContent( * @OA\Property(property="cpf", type="string"), * @OA\Property(property="email", type="string", format="email"), * @OA\Property(property="password", type="string") * ) * ), * @OA\Response(response=201, description="User criado com sucesso"), * @OA\Response(response=500, description="Erro interno do servidor") * ) */ public function store(Request $request) { try { $response = $this->authService->register($request); return response()->json($response->json(), $response->status()); } catch (Exception $e) { return response()->json( [$e->getMessage()], JsonResponse::HTTP_INTERNAL_SERVER_ERROR ); } } /** * @OA\Post( * path="/api/user/external", * summary="Registra User externo", * operationId="StoreExternalUser", * tags={"User"}, * @OA\RequestBody( * required=true, * @OA\JsonContent( * @OA\Property(property="name", type="string"), * @OA\Property(property="email", type="string", format="email"), * @OA\Property(property="cpf", type="string") * ) * ), * @OA\Response(response=201, description="User externo criado com sucesso"), * @OA\Response(response=500, description="Erro interno do servidor") * ) */ public function storeExternal(Request $request) { try { $request->merge([ 'user_type_id' => 2, 'first_access' => 0, ]); $response = $this->authService->register($request); return response()->json($response->json(), $response->status()); } catch (Exception $e) { return response()->json( [$e->getMessage()], JsonResponse::HTTP_INTERNAL_SERVER_ERROR ); } } /** * @OA\Get( * path="/api/user/{user}", * summary="Mostra User por ID", * operationId="ShowUser", * tags={"User"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="user", * in="path", * required=true, * @OA\Schema(type="string", format="uuid") * ), * @OA\Response(response=200, description="User retornado com sucesso"), * @OA\Response(response=404, description="User não encontrado") * ) */ public function show(Request $request, $id) { $response = Http::withHeaders([ 'Accept' => 'application/json', 'Authorization' => 'Bearer ' . $request->bearerToken(), 'App' => env('CLIENT_APP_KEY'), ])->get(env('AUTH_SERVICE_URL') . '/api/user/' . $id); return response($response->json(), $response->status()); } /** * @OA\Put( * path="/api/user/{user}", * summary="Atualiza User por ID", * operationId="UpdateUser", * tags={"User"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="user", * in="path", * required=true, * @OA\Schema(type="string", format="uuid") * ), * @OA\Response(response=200, description="User atualizado com sucesso") * ) */ public function update(Request $request, $id) { $url = env('AUTH_SERVICE_URL') . '/api/user/' . $id; $response = Http::withHeaders([ 'Accept' => 'application/json', 'Authorization' => 'Bearer ' . $request->bearerToken(), 'App' => env('CLIENT_APP_KEY'), ])->put($url, $request->all()); return response($response->json(), $response->status()); } /** * @OA\Delete( * path="/api/user/{user}", * summary="Remove User por ID", * operationId="DeleteUser", * tags={"User"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="user", * in="path", * required=true, * @OA\Schema(type="string", format="uuid") * ), * @OA\Response(response=204, description="User removido com sucesso") * ) */ public function destroy(Request $request, $id) { $url = env('AUTH_SERVICE_URL') . '/api/user/' . $id; $response = Http::withHeaders([ 'Accept' => 'application/json', 'Authorization' => 'Bearer ' . $request->bearerToken(), 'App' => env('CLIENT_APP_KEY'), ])->delete($url); return response([], $response->status()); } /** * @OA\Put( * path="/api/user/{id}/status", * summary="Altera status de User", * operationId="ChangeUserStatus", * tags={"User"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="id", * in="path", * required=true, * @OA\Schema(type="string", format="uuid") * ), * @OA\RequestBody( * required=true, * @OA\JsonContent( * required={"status"}, * @OA\Property(property="status", type="boolean") * ) * ), * @OA\Response(response=200, description="Status alterado com sucesso") * ) */ public function changeStatus(Request $request, string $id) { $url = env('AUTH_SERVICE_URL') . '/api/user/' . $id . '/status'; $response = Http::withHeaders([ 'Accept' => 'application/json', 'Authorization' => 'Bearer ' . $request->bearerToken(), 'App' => env('CLIENT_APP_KEY'), ])->put($url, $request->all()); return response($response->json(), $response->status()); } /** * @OA\Post( * path="/api/user/modifyPassword", * summary="Modifica senha no primeiro acesso", * operationId="FirstAccessModifyPassword", * tags={"User"}, * security={{"bearerAuth":{}}}, * @OA\RequestBody( * required=true, * @OA\JsonContent( * required={"new_password","new_password_confirmation","code"}, * @OA\Property(property="new_password", type="string", minLength=6), * @OA\Property(property="new_password_confirmation", type="string", minLength=6), * @OA\Property(property="code", type="string", maxLength=6) * ) * ), * @OA\Response(response=200, description="Senha modificada com sucesso") * ) */ public function firstAccessModifyPassword(Request $request) { $url = env('AUTH_SERVICE_URL') . '/api/user/modifyPassword'; $response = Http::withHeaders([ 'Accept' => 'application/json', 'Authorization' => 'Bearer ' . $request->bearerToken(), 'App' => env('CLIENT_APP_KEY'), ])->post($url, $request->all()); return response($response->json(), $response->status()); } /** * @OA\Get( * path="/api/user/app/{id}/", * summary="Lista Users por aplicativo", * operationId="IndexUserByApp", * tags={"User"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="id", * in="path", * required=true, * @OA\Schema(type="string") * ), * @OA\Response(response=200, description="Users retornados com sucesso") * ) */ public function indexByApp(Request $request, string $id) { $url = env('AUTH_SERVICE_URL') . '/api/user/app/' . $id . '/'; $response = Http::withHeaders([ 'Accept' => 'application/json', 'Authorization' => 'Bearer ' . $request->bearerToken(), 'App' => env('CLIENT_APP_KEY'), ])->get($url); return response($response->json(), $response->status()); } /** * @OA\Get( * path="/api/user/{user}/reset/passwordDefault", * summary="Usuário reseta senha padrão", * operationId="ResetPasswordDefault", * tags={"User"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="user", * in="path", * required=true, * @OA\Schema(type="string") * ), * @OA\Response(response=200, description="Requisição de reset executada com sucesso") * ) */ public function resetPasswordDefault(Request $request, string $id) { $url = env('AUTH_SERVICE_URL') . '/api/user/app/' . env('CLIENT_APP_KEY') . '/'; $response = Http::withHeaders([ 'Accept' => 'application/json', 'Authorization' => 'Bearer ' . $request->bearerToken(), 'App' => env('CLIENT_APP_KEY'), ])->get($url); return response($response->json(), $response->status()); } /** * @OA\Post( * path="/api/user/{id}/sync-permissions", * summary="Sincroniza permissões de User", * operationId="SyncUserPermissions", * tags={"User"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="id", * in="path", * required=true, * @OA\Schema(type="string") * ), * @OA\RequestBody( * required=true, * @OA\JsonContent( * required={"permissions"}, * @OA\Property( * property="permissions", * type="array", * @OA\Items(type="integer") * ) * ) * ), * @OA\Response(response=200, description="Permissões sincronizadas com sucesso") * ) */ public function syncPermissions(Request $request, string $id) { $url = env('AUTH_SERVICE_URL') . '/api/user/' . $id . '/sync-permissions'; $response = Http::withHeaders([ 'Accept' => 'application/json', 'Authorization' => 'Bearer ' . $request->bearerToken(), 'App' => env('CLIENT_APP_KEY'), ])->post($url, $request->all()); return response($response->json(), $response->status()); } /** * @OA\Post( * path="/api/user/{id}/sync-roles", * summary="Sincroniza roles de User", * operationId="SyncUserRoles", * tags={"User"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="id", * in="path", * required=true, * @OA\Schema(type="string") * ), * @OA\RequestBody( * required=true, * @OA\JsonContent( * required={"roles"}, * @OA\Property( * property="roles", * type="array", * @OA\Items(type="integer") * ) * ) * ), * @OA\Response(response=200, description="Roles sincronizadas com sucesso") * ) */ public function syncRoles(Request $request, string $id) { $url = env('AUTH_SERVICE_URL') . '/api/user/' . $id . '/sync-roles'; $response = Http::withHeaders([ 'Accept' => 'application/json', 'Authorization' => 'Bearer ' . $request->bearerToken(), 'App' => env('CLIENT_APP_KEY'), ])->post($url, $request->all()); return response($response->json(), $response->status()); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings