chore: configura o prettier para formatacao do codigo
This commit is contained in:
@@ -63,12 +63,7 @@
|
||||
"example": "2026-04-28T12:00:00.000Z"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"id",
|
||||
"email",
|
||||
"created_at",
|
||||
"updated_at"
|
||||
]
|
||||
"required": ["id", "email", "created_at", "updated_at"]
|
||||
},
|
||||
"TokenResponse": {
|
||||
"type": "object",
|
||||
@@ -93,12 +88,7 @@
|
||||
"example": 900
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"access_token",
|
||||
"refresh_token",
|
||||
"token_type",
|
||||
"expires_in"
|
||||
]
|
||||
"required": ["access_token", "refresh_token", "token_type", "expires_in"]
|
||||
},
|
||||
"ErrorResponse": {
|
||||
"type": "object",
|
||||
@@ -112,19 +102,14 @@
|
||||
"example": "Email é obrigatório"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"statusCode",
|
||||
"message"
|
||||
]
|
||||
"required": ["statusCode", "message"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"paths": {
|
||||
"/api/auth/register": {
|
||||
"post": {
|
||||
"tags": [
|
||||
"Auth"
|
||||
],
|
||||
"tags": ["Auth"],
|
||||
"summary": "Registrar novo usuário",
|
||||
"description": "Cria uma conta nova. A senha é armazenada como hash scrypt — nunca em plaintext.",
|
||||
"operationId": "authRegister",
|
||||
@@ -134,10 +119,7 @@
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"email",
|
||||
"password"
|
||||
],
|
||||
"required": ["email", "password"],
|
||||
"properties": {
|
||||
"email": {
|
||||
"type": "string",
|
||||
@@ -200,9 +182,7 @@
|
||||
},
|
||||
"/api/auth/login": {
|
||||
"post": {
|
||||
"tags": [
|
||||
"Auth"
|
||||
],
|
||||
"tags": ["Auth"],
|
||||
"summary": "Login",
|
||||
"description": "Autentica o usuário e retorna um par de tokens (access + refresh).",
|
||||
"operationId": "authLogin",
|
||||
@@ -212,10 +192,7 @@
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"email",
|
||||
"password"
|
||||
],
|
||||
"required": ["email", "password"],
|
||||
"properties": {
|
||||
"email": {
|
||||
"type": "string",
|
||||
@@ -271,9 +248,7 @@
|
||||
},
|
||||
"/api/auth/refresh": {
|
||||
"post": {
|
||||
"tags": [
|
||||
"Auth"
|
||||
],
|
||||
"tags": ["Auth"],
|
||||
"summary": "Renovar tokens",
|
||||
"description": "Troca um refresh token válido por um novo par de tokens. O token antigo é revogado imediatamente (rotação).",
|
||||
"operationId": "authRefresh",
|
||||
@@ -283,9 +258,7 @@
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"refresh_token"
|
||||
],
|
||||
"required": ["refresh_token"],
|
||||
"properties": {
|
||||
"refresh_token": {
|
||||
"type": "string",
|
||||
@@ -337,9 +310,7 @@
|
||||
},
|
||||
"/api/auth/forgot-password": {
|
||||
"post": {
|
||||
"tags": [
|
||||
"Auth"
|
||||
],
|
||||
"tags": ["Auth"],
|
||||
"summary": "Solicitar reset de senha",
|
||||
"description": "Gera um token de reset para o email informado. A resposta é sempre genérica para não revelar se o email existe (proteção contra enumeração). Em produção, o token seria enviado por email; aqui é retornado no body para fins de teste.",
|
||||
"operationId": "authForgotPassword",
|
||||
@@ -349,9 +320,7 @@
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"email"
|
||||
],
|
||||
"required": ["email"],
|
||||
"properties": {
|
||||
"email": {
|
||||
"type": "string",
|
||||
@@ -414,9 +383,7 @@
|
||||
},
|
||||
"/api/auth/reset-password": {
|
||||
"post": {
|
||||
"tags": [
|
||||
"Auth"
|
||||
],
|
||||
"tags": ["Auth"],
|
||||
"summary": "Redefinir senha",
|
||||
"description": "Aplica a nova senha usando o token de reset. O token é de uso único — após utilizado, é marcado como consumido.",
|
||||
"operationId": "authResetPassword",
|
||||
@@ -426,10 +393,7 @@
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"token",
|
||||
"new_password"
|
||||
],
|
||||
"required": ["token", "new_password"],
|
||||
"properties": {
|
||||
"token": {
|
||||
"type": "string",
|
||||
@@ -493,9 +457,7 @@
|
||||
},
|
||||
"/profile/me": {
|
||||
"get": {
|
||||
"tags": [
|
||||
"Profile"
|
||||
],
|
||||
"tags": ["Profile"],
|
||||
"summary": "Perfil do usuário autenticado",
|
||||
"description": "Retorna os dados do usuário identificado pelo access token JWT.",
|
||||
"operationId": "profileMe",
|
||||
@@ -544,9 +506,7 @@
|
||||
},
|
||||
"/dashboard": {
|
||||
"get": {
|
||||
"tags": [
|
||||
"Dashboard"
|
||||
],
|
||||
"tags": ["Dashboard"],
|
||||
"summary": "Dashboard (orquestração A→B)",
|
||||
"description": "Endpoint protegido que demonstra orquestração entre serviços: chama /profile/me internamente e agrega os resultados de duas APIs (A e B), verificando que o `sub` do JWT é consistente entre elas.",
|
||||
"operationId": "dashboard",
|
||||
@@ -599,4 +559,4 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user