Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
d17c174
Update README.md
jean-mb Apr 9, 2025
49b7110
[DevOps]: Refatoração na pipeline do Projeto
Apr 10, 2025
e7de1f0
Merge branch '1-refatoração-nas-pipelines-do-projeto' of https://gith…
Apr 10, 2025
4fb0e87
[DevOps]: Removendo o deploy na develop
Apr 10, 2025
2360860
[DevOps]fix: gcr.io para ghcr.io
Apr 11, 2025
adad36a
[DevOps]fix: Corrigindo as tags
Apr 11, 2025
8de5c8d
[DevOps]fix: Corrigindo as tags novamente
Apr 11, 2025
d7f0601
add prefix
Apr 11, 2025
d1d7fcf
[DevOps]: Criando os jobs para staging
Apr 13, 2025
dd73eee
Merge branch 'develop' of https://github.com/orbitechz/NPVet-Backend-…
Apr 13, 2025
ec18d71
[DevOps]fix: Alterando para gcr.io novamente
Apr 13, 2025
885bb90
[DevOps]fix: Removendo parâmetros duplicados na application properties
Apr 14, 2025
e5dee83
Resolvido bug ao cadastrar usuário.
Piegat Apr 15, 2025
5f3df22
Merge pull request #2 from orbitechz/main
jean-mb Apr 15, 2025
6ae112c
Fix: nome do container staging
jean-mb Apr 15, 2025
385afbc
Merge branch 'staging' into develop
jean-mb Apr 15, 2025
d238a24
Merge pull request #3 from orbitechz/develop
jean-mb Apr 15, 2025
f4a5d29
Fix: Uso do gcr
jean-mb Apr 15, 2025
1594748
Merge pull request #4 from orbitechz/develop
jean-mb Apr 15, 2025
8b06c00
Corrigido delete dos usuários
Piegat Apr 15, 2025
eb7f7c6
Adicionado encode de senha
Piegat Apr 15, 2025
6b632c8
Merge pull request #6 from orbitechz/fix-usuarios
Piegat Apr 15, 2025
6be34d5
Merge pull request #7 from orbitechz/develop
Piegat Apr 15, 2025
cd81135
inserção de testes de entidade e dtos
gustavoemf Apr 15, 2025
b6fe579
Merge pull request #8 from orbitechz/staging
Piegat Apr 15, 2025
88389a1
correções merge
gustavoemf Apr 15, 2025
b9ba857
Corrigido bug no passwordEncoder
Piegat Apr 15, 2025
00d1f36
Merge pull request #9 from orbitechz/fix-usuarios
Piegat Apr 15, 2025
85b81c6
Pull de alterações
gustavoemf Apr 15, 2025
c9400cb
devops: testes properties
jean-mb Apr 15, 2025
d1c6b73
devops: remove dos testes
jean-mb Apr 15, 2025
20e01eb
Merge pull request #10 from orbitechz/develop
jean-mb Apr 15, 2025
faeb08a
Merge pull request #11 from orbitechz/staging
jean-mb Apr 15, 2025
95cb148
feat: health endpoint.
bouchraakl Apr 23, 2025
9544047
fix: Adicionando o @RestController
Apr 27, 2025
1cfb4e3
delete: Removendo o Spring Security temporariamente
Apr 27, 2025
42fd3b4
add: CorsMappings
Apr 27, 2025
7f4392d
feat: Adicionando logs
Apr 28, 2025
7249836
Alterando a pipeline temporariamente
Apr 28, 2025
c338e66
Removendo o uppercase
Apr 28, 2025
4d82fc9
fix: Voltando com o Security
May 6, 2025
608b25d
Merge branch 'main' of https://github.com/orbitechz/NPVet-Backend-Clo…
Piegat May 7, 2025
26fd7df
delete logs.log e adicionado no gitignore
Piegat May 7, 2025
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
98 changes: 98 additions & 0 deletions .github/workflows/ci-cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
name: CI Pipeline

on:
push:
branches:
- main
- develop
- staging
pull_request:
branches: ["*"]

jobs:
testes:
runs-on: ubuntu-latest
steps:
- name: Checkout de código
uses: actions/checkout@v3

- name: Configuração do JDK 17
uses: actions/setup-java@v3
with:
java-version: "17"
distribution: "temurin"
cache: maven

- name: Permissão de Executável ao Maven
run: chmod +x ./mvnw

- name: Executar Testes e Build
run: ./mvnw clean verify

build-and-push-develop:
needs: testes
if: github.ref == 'refs/heads/develop'
runs-on: ubuntu-latest
steps:
- name: Checkout de código
uses: actions/checkout@v3

- name: Login no GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build e Push da imagem Docker
uses: docker/build-push-action@v4
with:
context: .
push: true
tags: ghcr.io/orbitechz/npvet-backend-cloud:develop

build-and-push-main:
needs: testes
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- name: Checkout de código
uses: actions/checkout@v3

- name: Login no GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build e Push da imagem Docker
uses: docker/build-push-action@v4
with:
context: .
push: true
tags: |
ghcr.io/orbitechz/npvet-backend-cloud:latest
ghcr.io/orbitechz/npvet-backend-cloud:${{ github.sha }}

build-and-push-staging:
needs: testes
if: github.ref == 'refs/heads/staging'
runs-on: ubuntu-latest
steps:
- name: Checkout de código
uses: actions/checkout@v3

- name: Login no GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build e Push da imagem Docker
uses: docker/build-push-action@v4
with:
context: .
push: true
tags: ghcr.io/orbitechz/npvet-backend-cloud:staging
42 changes: 0 additions & 42 deletions .github/workflows/docker-build.yml

This file was deleted.

5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,7 @@ build/
.vscode/

## Ambiente local ##
.env
.env

*.gz
logs.log
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ Para configurar o ambiente de desenvolvimento, siga os passos abaixo:
## Implantação em Produção 🌐
Para implantar o projeto em produção, você pode simplesmente puxar a imagem Docker do GitHub Packages usando o seguinte comando:
```
docker pull ghcr.io/orbitechz/npvet-backend:main
docker pull ghcr.io/orbitechz/npvet-backend-cloud:main
```

Depois de puxar a imagem, você pode executá-la em seu ambiente de produção usando o Docker ou a plataforma de orquestração de contêiner de sua escolha.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
import java.util.List;

@RestController
@RequestMapping("/anamnese")
@RequestMapping("/npvet-api/anamnese")
@PreAuthorize("hasAuthority('ADMINISTRADOR')")
public class AnamneseController {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import java.util.List;

@RestController
@RequestMapping("/animal")
@RequestMapping("/npvet-api/animal")
@PreAuthorize("hasAuthority('ADMINISTRADOR')")
@Slf4j
public class AnimalController {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import java.util.List;

@RestController
@RequestMapping("/consulta")
@RequestMapping("/npvet-api/consulta")
@PreAuthorize("hasAuthority('ADMINISTRADOR')")
public class ConsultaController {
@Autowired
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
import java.util.List;

@RestController
@RequestMapping("/examefisico")
@RequestMapping("/npvet-api/examefisico")
@PreAuthorize("hasAuthority('ADMINISTRADOR')")
public class ExameFisicoController {

Expand Down
33 changes: 33 additions & 0 deletions src/main/java/com/orbitech/npvet/controller/HealthController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package com.orbitech.npvet.controller;

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import lombok.extern.slf4j.Slf4j;

@Slf4j
@RestController
@RequestMapping("/npvet-api/health")
public class HealthController {

@GetMapping
public ResponseEntity<String> healthCheck() {
try {
log.info("Health check iniciado");
log.debug("Verificando status da aplicação");

String message = "Aplicação está funcionando normalmente";
log.info("Health check finalizado com sucesso");

return ResponseEntity.ok(message);
} catch (Exception e) {
log.error("Erro crítico durante health check: {}", e.getMessage(), e);
return ResponseEntity
.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body("Erro ao verificar status da aplicação");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import java.util.List;

@RestController
@RequestMapping("/pergunta")
@RequestMapping("/npvet-api/pergunta")
public class PerguntaController {
@Autowired
public PerguntaService perguntaService;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
import java.util.List;

@RestController
@RequestMapping("/tutor")
@RequestMapping("/npvet-api/tutor")
@PreAuthorize("hasAuthority('ADMINISTRADOR')")
public class TutorController {
@Autowired
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.orbitech.npvet.controller;

import com.orbitech.npvet.dto.UsuarioCadastrarDTO;
import com.orbitech.npvet.dto.UsuarioDTO;
import com.orbitech.npvet.entity.Usuario;
import com.orbitech.npvet.service.UsuarioService;
Expand All @@ -13,7 +14,7 @@
import java.util.List;

@RestController
@RequestMapping("/usuario")
@RequestMapping("/npvet-api/usuario")
public class UsuarioController {
@Autowired
private UsuarioService service;
Expand All @@ -30,13 +31,13 @@ public class UsuarioController {
}
@PostMapping("/post")
@PreAuthorize("hasAnyAuthority('ADMINISTRADOR')")
public ResponseEntity<UsuarioDTO>create(@Validated @RequestBody UsuarioDTO usuarioDTO, @AuthenticationPrincipal Usuario usuarioAutenticado){
public ResponseEntity<UsuarioDTO>create(@Validated @RequestBody UsuarioCadastrarDTO usuarioDTO, @AuthenticationPrincipal Usuario usuarioAutenticado){
return ResponseEntity.ok(service.create(usuarioDTO, usuarioAutenticado));
}
@PutMapping("/update/{id}")
@PreAuthorize("hasAnyAuthority('ADMINISTRADOR')")
public ResponseEntity<UsuarioDTO>update(@AuthenticationPrincipal Usuario usuarioAutenticado, @PathVariable("id") final long id, @RequestBody @Validated UsuarioDTO usuarioDTO){
return ResponseEntity.ok(service.update(id,usuarioDTO, usuarioAutenticado));
public ResponseEntity<UsuarioDTO>update(@AuthenticationPrincipal Usuario usuarioAutenticado, @PathVariable("id") final long id, @RequestBody @Validated UsuarioCadastrarDTO UsuarioCadastrarDTO){
return ResponseEntity.ok(service.update(id,UsuarioCadastrarDTO, usuarioAutenticado));
}

@GetMapping("/nome/{nome}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import java.util.List;

@RestController
@RequestMapping("/vacina")
@RequestMapping("/npvet-api/vacina")
@PreAuthorize("hasAuthority('ADMINISTRADOR')")

public class VacinaController {
Expand Down
59 changes: 59 additions & 0 deletions src/main/java/com/orbitech/npvet/dto/UsuarioCadastrarDTO.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
package com.orbitech.npvet.dto;

import com.orbitech.npvet.entity.Role;
import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.hibernate.validator.constraints.br.CPF;

import java.time.LocalDateTime;

@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class UsuarioCadastrarDTO {
private String id;
// @NotNull(message = "Você precisa preencher um nome.")
@Size(max = 100, message = "Quantidade de caracteres excedida.")
private String nome;

// @NotNull(message = "Você precisa preencher um CPF.")
@CPF(message = "CPF inválido.")
private String cpf;

@Enumerated(EnumType.STRING)
@NotNull(message = "Você precisar definir o tipo de Usuário entre: SECRETARIA, ADMINISTRADOR ou MEDICO.")
private Role role;

@NotNull(message = "Você precisa definir um nome de usuário.")
@Size(max = 30, message = "Quantidade de caracteres excedida.")
private String username;

@NotNull(message = "Você precisa definir uma senha.")
@Size(max = 50, message = "Quantidade de caracteres excedida.")
private String password;

private String token;
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
private LocalDateTime deletedAt;

public void roleStringSet(String role){
this.role = Role.valueOf(role);
}
public String roleStringGet() {
return this.role.toString();
}

public void delete(){
this.deletedAt = LocalDateTime.now();
}
public void activate(){
this.deletedAt = null;
}
}
2 changes: 1 addition & 1 deletion src/main/java/com/orbitech/npvet/entity/Usuario.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public class Usuario extends AbstractEntity implements UserDetails {
@Column(length = 100, name = "nome")
private String nome;

@Column(unique = true, length = 11, name = "cpf")
@Column(unique = true, length = 14, name = "cpf")
private String cpf;

@Enumerated(EnumType.STRING)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ protected void doFilterInternal(
@NonNull HttpServletResponse response,
@NonNull FilterChain filterChain
) throws ServletException, IOException {
if (request.getServletPath().contains("/npvet/api/auth")) {
if (request.getServletPath().contains("/npvet-api/auth")) {
filterChain.doFilter(request, response);
return;
}
Expand Down
Loading