Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
045234c
fix/common: atualiza endpoint de auth filter e converte uniqueviolati…
kv-aliaga Sep 20, 2026
8dd2f73
fix/ciclo: atualiza validações para mesmo ciclo
kv-aliaga Sep 20, 2026
16a80e3
fix/conversor: melhor checks de null e mensagens de exceção nos métod…
kv-aliaga Sep 20, 2026
52d6105
feat/swagger: adiciona anotações personalizadas para documentação da …
kv-aliaga Sep 20, 2026
8e88926
feat/swagger: implementa interface CicloOpenapi e adapta CicloControl…
kv-aliaga Sep 20, 2026
dbd7f4c
feat/swagger: adiciona interfaces de documentação do Swagger para Hea…
kv-aliaga Sep 20, 2026
a856420
feat/swagger: adiciona interfaces OpenAPI para gerenciamento de usuár…
kv-aliaga Sep 20, 2026
3bf43bd
feat/swagger: adiciona interfaces OpenAPI para gerenciamento de taref…
kv-aliaga Sep 20, 2026
a52aaa6
feat/swagger: adiciona interfaces OpenAPI para gerenciamento de probl…
kv-aliaga Sep 20, 2026
8bdaf5b
feat/swagger: adiciona descrições da OpenAPI para gerenciamento de ci…
kv-aliaga Sep 20, 2026
3e53bb4
feat/swagger: adiciona interfaces OpenAPI para gerenciamento de prior…
kv-aliaga Sep 20, 2026
acaa165
feat/swagger: adiciona interfaces OpenAPI para gerenciamento de alert…
kv-aliaga Sep 20, 2026
55e8b17
feat/swagger: adiciona interfaces OpenAPI para gerenciamento de e-mai…
kv-aliaga Sep 20, 2026
ee5b7e0
refactor/openapi: Altera anotações da openapi juntando casos onde mui…
kv-aliaga Sep 20, 2026
ab1adc4
feat/swagger: adiciona exemplos de respostas de erro para autenticaçã…
kv-aliaga Sep 20, 2026
375b8dd
docs/swagger: melhora documentação da api, ampliando para documentaçã…
kv-aliaga Sep 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,8 @@ src/main/resources/http
desktop.ini
Desktop.ini

src/main/resources/firebase/
src/main/resources/firebase/
skills/

*.env
*.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

@RequiredArgsConstructor
public class FirebaseAuthFilter extends OncePerRequestFilter {
private static final String AUTH = "/auth/ativar";
private static final String AUTH = "/api/v1/auth/ativar";
private final FirebaseUtils utils;
private final ObjectMapper mapper;

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package br.com.acta.common.config.swagger.annotation;

import br.com.acta.common.config.swagger.examples.SwaggerResponseExamples;
import br.com.acta.common.handler.ErroResponse;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.ExampleObject;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@ApiResponses({
@ApiResponse(
responseCode = "401",
description = "ID Token do Firebase ausente ou inválido",
content = @Content(mediaType = "application/json", schema = @Schema(implementation = ErroResponse.class), examples = @ExampleObject(value = SwaggerResponseExamples.ERRO_401))
),
@ApiResponse(
responseCode = "403",
description = "Usuário sem permissão para acessar o recurso",
content = @Content(mediaType = "application/json", schema = @Schema(implementation = ErroResponse.class), examples = @ExampleObject(value = SwaggerResponseExamples.ERRO_403))
)
})
public @interface ApiAuthenticationResponses {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package br.com.acta.common.config.swagger.annotation;

import br.com.acta.common.config.swagger.examples.SwaggerResponseExamples;
import br.com.acta.common.handler.ErroResponse;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.ExampleObject;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@ApiResponse(
responseCode = "400",
description = "Requisição inválida",
content = @Content(mediaType = "application/json", schema = @Schema(implementation = ErroResponse.class), examples = @ExampleObject(value = SwaggerResponseExamples.ERRO_400))
)
public @interface ApiBadRequestResponse {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package br.com.acta.common.config.swagger.annotation;

import br.com.acta.common.config.swagger.examples.SwaggerResponseExamples;
import br.com.acta.common.handler.ErroResponse;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.ExampleObject;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@ApiResponse(
responseCode = "422",
description = "Regra de negócio não atendida",
content = @Content(mediaType = "application/json", schema = @Schema(implementation = ErroResponse.class), examples = @ExampleObject(value = SwaggerResponseExamples.ERRO_422))
)
public @interface ApiBusinessRuleResponse {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package br.com.acta.common.config.swagger.annotation;

import br.com.acta.common.config.swagger.examples.SwaggerResponseExamples;
import br.com.acta.common.handler.ErroResponse;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.ExampleObject;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@ApiResponse(
responseCode = "409",
description = "Conflito com os dados existentes",
content = @Content(mediaType = "application/json", schema = @Schema(implementation = ErroResponse.class), examples = @ExampleObject(value = SwaggerResponseExamples.ERRO_409))
)
public @interface ApiConflictResponse {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package br.com.acta.common.config.swagger.annotation;

import br.com.acta.common.config.swagger.examples.SwaggerResponseExamples;
import br.com.acta.common.handler.ErroResponse;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.ExampleObject;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@ApiResponse(
responseCode = "404",
description = "Recurso não encontrado",
content = @Content(mediaType = "application/json", schema = @Schema(implementation = ErroResponse.class), examples = @ExampleObject(value = SwaggerResponseExamples.ERRO_404))
)
public @interface ApiNotFoundResponse {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package br.com.acta.common.config.swagger.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@ApiAuthenticationResponses
@ApiBadRequestResponse
@ApiNotFoundResponse
@ApiConflictResponse
public @interface ApiResourceResponses {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package br.com.acta.common.config.swagger.annotation;

import br.com.acta.common.config.swagger.examples.SwaggerResponseExamples;
import br.com.acta.common.handler.ErroResponse;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.ExampleObject;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@ApiResponse(
responseCode = "415",
description = "Tipo de conteúdo enviado não suportado",
content = @Content(mediaType = "application/json", schema = @Schema(implementation = ErroResponse.class), examples = @ExampleObject(value = SwaggerResponseExamples.ERRO_415))
)
public @interface ApiUnsupportedMediaTypeResponse {
}
Loading
Loading