Skip to content

Commit

Permalink
Merge pull request #7 from Observatorio-Pedagogico/iteracao-02
Browse files Browse the repository at this point in the history
Iteracao 02
  • Loading branch information
ThauanAmorim authored Oct 17, 2022
2 parents cd79d35 + 620773c commit a6f0cf4
Show file tree
Hide file tree
Showing 33 changed files with 555 additions and 236 deletions.
1 change: 1 addition & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ services:

rabbitmq:
container_name: rabbitmq
restart: always
image: rabbitmq:3.7.5-management-alpine
ports:
- "5672:5672"
Expand Down
30 changes: 30 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,19 @@
<artifactId>jjwt-api</artifactId>
<version>0.10.5</version>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
Expand Down Expand Up @@ -133,6 +146,23 @@
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.1.3</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources</outputDirectory>
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@
import com.obervatorio_pedagogico.backend.domain.model.usuario.Usuario;
import com.obervatorio_pedagogico.backend.infrastructure.utils.httpResponse.ResponseService;
import com.obervatorio_pedagogico.backend.infrastructure.utils.modelMapper.ModelMapperService;
import com.obervatorio_pedagogico.backend.presentation.dto.auth.AuthResponse;
import com.obervatorio_pedagogico.backend.presentation.dto.auth.CadastroUsuarioDto;
import com.obervatorio_pedagogico.backend.presentation.dto.auth.LoginRequest;
import com.obervatorio_pedagogico.backend.presentation.dto.usuario.FuncionarioCopedDto;
import com.obervatorio_pedagogico.backend.presentation.dto.usuario.ProfessorDto;
import com.obervatorio_pedagogico.backend.presentation.dto.usuario.UsuarioDto;
import com.obervatorio_pedagogico.backend.presentation.dto.auth.request.CadastroUsuarioRequest;
import com.obervatorio_pedagogico.backend.presentation.dto.auth.request.LoginRequest;
import com.obervatorio_pedagogico.backend.presentation.dto.auth.response.AuthResponse;
import com.obervatorio_pedagogico.backend.presentation.dto.usuario.response.FuncionarioCopedResponse;
import com.obervatorio_pedagogico.backend.presentation.dto.usuario.response.FuncionarioResponse;
import com.obervatorio_pedagogico.backend.presentation.dto.usuario.response.ProfessorResponse;
import com.obervatorio_pedagogico.backend.presentation.shared.Response;

import lombok.AllArgsConstructor;
Expand All @@ -44,28 +44,28 @@ public ResponseEntity<Response<AuthResponse>> login(@RequestBody LoginRequest au
}

@PostMapping("/cadastrar")
public ResponseEntity<Response<UsuarioDto>> cadastrar(@RequestBody CadastroUsuarioDto cadastroUsuarioDto) {
public ResponseEntity<Response<FuncionarioResponse>> cadastrar(@RequestBody CadastroUsuarioRequest cadastroUsuarioDto) {
Usuario usuario = autenticacaoService.cadastrar(cadastroUsuarioDto);

UsuarioDto dto = modelMapperService.convert(usuario, UsuarioDto.class);
FuncionarioResponse dto = modelMapperService.convert(usuario, FuncionarioResponse.class);

return responseService.ok(dto);
}

@PostMapping("/espera-cadastro/coped/ativar/{id}")
public ResponseEntity<Response<FuncionarioCopedDto>> ativarFuncionarioCoped(@PathVariable Long id) {
public ResponseEntity<Response<FuncionarioCopedResponse>> ativarFuncionarioCoped(@PathVariable Long id) {
FuncionarioCoped funcionarioCoped = autenticacaoService.ativarFuncionarioCoped(id);

FuncionarioCopedDto dto = modelMapperService.convert(funcionarioCoped, FuncionarioCopedDto.class);
FuncionarioCopedResponse dto = modelMapperService.convert(funcionarioCoped, FuncionarioCopedResponse.class);

return responseService.ok(dto);
}

@PostMapping("/espera-cadastro/professor/ativar/{id}")
public ResponseEntity<Response<ProfessorDto>> ativarProfessor(@PathVariable Long id) {
public ResponseEntity<Response<ProfessorResponse>> ativarProfessor(@PathVariable Long id) {
Professor professor = autenticacaoService.ativarProfessor(id);

ProfessorDto dto = modelMapperService.convert(professor, ProfessorDto.class);
ProfessorResponse dto = modelMapperService.convert(professor, ProfessorResponse.class);

return responseService.ok(dto);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@
import java.security.Principal;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

import org.springframework.data.domain.Page;
import com.querydsl.core.types.dsl.BooleanExpression;
import org.springframework.data.domain.Pageable;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.DeleteMapping;
Expand All @@ -18,13 +20,14 @@
import com.obervatorio_pedagogico.backend.application.services.extracao.ExtracaoThreadService;
import com.obervatorio_pedagogico.backend.domain.model.extracao.Extracao;
import com.obervatorio_pedagogico.backend.domain.model.extracao.ExtracaoThread;
import com.obervatorio_pedagogico.backend.domain.model.extracao.Extracao.Status;
import com.obervatorio_pedagogico.backend.infrastructure.utils.buscaConstrutor.PredicatesGenerator;
import com.obervatorio_pedagogico.backend.infrastructure.utils.httpResponse.ResponseService;
import com.obervatorio_pedagogico.backend.infrastructure.utils.modelMapper.ModelMapperService;
import com.obervatorio_pedagogico.backend.presentation.dto.extracao.ExtracaoRequest;
import com.obervatorio_pedagogico.backend.presentation.dto.extracao.ExtracaoResponse;
import com.obervatorio_pedagogico.backend.presentation.dto.extracao.ExtracaoResponseResumido;
import com.obervatorio_pedagogico.backend.presentation.dto.extracao.ExtracaoThreadResponse;
import com.obervatorio_pedagogico.backend.presentation.dto.extracao.request.ExtracaoRequest;
import com.obervatorio_pedagogico.backend.presentation.dto.extracao.request.busca.ExtracaoBuscaRequest;
import com.obervatorio_pedagogico.backend.presentation.dto.extracao.response.ExtracaoResponse;
import com.obervatorio_pedagogico.backend.presentation.dto.extracao.response.ExtracaoResponseResumido;
import com.obervatorio_pedagogico.backend.presentation.dto.extracao.response.ExtracaoThreadResponse;
import com.obervatorio_pedagogico.backend.presentation.shared.Response;

import lombok.AllArgsConstructor;
Expand All @@ -42,6 +45,8 @@ public class ExtracaoController {
private ModelMapperService modelMapperService;

private ResponseService responseService;

private PredicatesGenerator predicatesGenerator;

@PostMapping("/enviar")
public ResponseEntity<Response<ExtracaoResponse>> enviar(ExtracaoRequest extracaoRequest, Principal principal) {
Expand All @@ -50,6 +55,16 @@ public ResponseEntity<Response<ExtracaoResponse>> enviar(ExtracaoRequest extraca
return responseService.create(null);
}

@PostMapping("/{id}/ativar")
public void ativar(@PathVariable Long id) {
extracaoService.ativar(id);
}

@PostMapping("/{id}/cancelar")
public void cancelar(@PathVariable Long id) {
extracaoService.cancelar(id);
}

@GetMapping("/envio-status/{id}")
public ResponseEntity<Response<ExtracaoThreadResponse>> getEnvioStatus(@PathVariable Long id){
ExtracaoThread extracaoThread = extracaoThreadService.getById(id);
Expand All @@ -70,45 +85,16 @@ public ResponseEntity<Response<List<ExtracaoThreadResponse>>> getEnvioStatus(){
}

@GetMapping()
public ResponseEntity<Response<List<ExtracaoResponseResumido>>> getTodos(){
List<Extracao> extracoes = extracaoService.getTodos();
public ResponseEntity<Response<Page<ExtracaoResponseResumido>>> getTodos(Pageable pageable, ExtracaoBuscaRequest extracaoBuscaRequest){
BooleanExpression predicate = predicatesGenerator.add(extracaoBuscaRequest).build();
Page<Extracao> extracaoPagina = extracaoService.getTodos(pageable, predicate);

return responseService.ok(extracoes.stream()
.map(element -> modelMapperService
.convert(element, ExtracaoResponseResumido.class))
.collect(Collectors.toList()));
}

@GetMapping("/get-by-id/{id}")
public ResponseEntity<Response<ExtracaoResponseResumido>> getById(@PathVariable Long id){
Extracao extracao = extracaoService.getById(id);

return responseService.ok(modelMapperService.convert(extracao, ExtracaoResponseResumido.class));
}

@GetMapping("/get-by-status")
public ResponseEntity<Response<List<ExtracaoResponseResumido>>> getByStatus(Status status){
List<Extracao> extracoes = extracaoService.getByStatus(status);

return responseService.ok(extracoes.stream()
.map(element -> modelMapperService
.convert(element, ExtracaoResponseResumido.class))
.collect(Collectors.toList()));
}

@GetMapping("/get-by-periodo-letivo")
public ResponseEntity<Response<List<ExtracaoResponseResumido>>> getByPeriodoLetivo(String periodoLetivo) {
List<Extracao> extracoes = extracaoService.getByPeriodoLetivo(periodoLetivo);

return responseService.ok(extracoes.stream()
.map(element -> modelMapperService
.convert(element, ExtracaoResponseResumido.class))
.collect(Collectors.toList()));
return responseService.ok(modelMapperService.convert(extracaoPagina, ExtracaoResponseResumido.class));
}

@DeleteMapping("/{id}")
public ResponseEntity<Response<String>> deletaExtracao(@PathVariable Long id){
extracaoService.deletaExtracao(id);
return responseService.ok("deletado-com-sucesso");
return responseService.ok("deletado com sucesso");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package com.obervatorio_pedagogico.backend.application.controllers.funcionario;

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

import com.obervatorio_pedagogico.backend.application.services.usuario.FuncionarioService;
import com.obervatorio_pedagogico.backend.domain.exceptions.NaoEncontradoException;
import com.obervatorio_pedagogico.backend.infrastructure.utils.httpResponse.ResponseService;
import com.obervatorio_pedagogico.backend.infrastructure.utils.modelMapper.ModelMapperService;
import com.obervatorio_pedagogico.backend.presentation.dto.usuario.response.EnvelopeFuncionarioResponse;
import com.obervatorio_pedagogico.backend.presentation.model.usuario.EnvelopeFuncionario;
import com.obervatorio_pedagogico.backend.presentation.shared.Response;

import lombok.AllArgsConstructor;

@RestController
@RequestMapping("/observatorio-pedagogico/api/funcionario")
@AllArgsConstructor
@CrossOrigin
public class FuncionarioController {

private FuncionarioService funcionarioService;

private ResponseService responseService;

private ModelMapperService modelMapperService;

@GetMapping("/token")
public ResponseEntity<Response<EnvelopeFuncionarioResponse>> getTodos(@RequestHeader("token") String token) {
EnvelopeFuncionario envelopeFuncionario = funcionarioService.buscarFuncionarioPorToken(token)
.orElseThrow(() -> new NaoEncontradoException());

return responseService.ok(modelMapperService.convert(envelopeFuncionario, EnvelopeFuncionarioResponse.class));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@
import com.obervatorio_pedagogico.backend.infrastructure.security.auth.SharUtils;
import com.obervatorio_pedagogico.backend.infrastructure.security.service.SecurityService;
import com.obervatorio_pedagogico.backend.infrastructure.utils.modelMapper.ModelMapperService;
import com.obervatorio_pedagogico.backend.presentation.dto.auth.AuthResponse;
import com.obervatorio_pedagogico.backend.presentation.dto.auth.CadastroUsuarioDto;
import com.obervatorio_pedagogico.backend.presentation.dto.auth.CadastroUsuarioDto.Tipo;
import com.obervatorio_pedagogico.backend.presentation.dto.auth.LoginRequest;
import com.obervatorio_pedagogico.backend.presentation.dto.auth.request.CadastroUsuarioRequest;
import com.obervatorio_pedagogico.backend.presentation.dto.auth.request.LoginRequest;
import com.obervatorio_pedagogico.backend.presentation.dto.auth.request.CadastroUsuarioRequest.Tipo;
import com.obervatorio_pedagogico.backend.presentation.dto.auth.response.AuthResponse;
import com.obervatorio_pedagogico.backend.presentation.model.usuario.EnvelopeFuncionario;

import lombok.AllArgsConstructor;
Expand Down Expand Up @@ -76,7 +76,7 @@ public AuthResponse login(LoginRequest authRequest) {
throw new LoginInvalidoException();
}

Optional<EnvelopeFuncionario> usuarioOp = funcionarioService.buscarFuncionarioByEmail(authRequest.getEmail());
Optional<EnvelopeFuncionario> usuarioOp = funcionarioService.buscarFuncionarioPorEmail(authRequest.getEmail());

if (usuarioOp.isPresent() && !usuarioOp.get().getFuncionario().isAtivo()) {
throw new UsuarioNaoPermitidoException();
Expand All @@ -89,7 +89,7 @@ public AuthResponse login(LoginRequest authRequest) {
return new AuthResponse(token);
}

public Usuario cadastrar(CadastroUsuarioDto cadastroUsuarioDto) {
public Usuario cadastrar(CadastroUsuarioRequest cadastroUsuarioDto) {
this.validarCadastro(cadastroUsuarioDto);

boolean isPrimeiro = !funcionarioService.existeFuncionarioCadastrado();
Expand Down Expand Up @@ -140,7 +140,7 @@ public List<Professor> listarEsperaCadastroProfessor() {
return professorService.listarEsperaCadastro();
}

private void validarCadastro(CadastroUsuarioDto cadastroUsuarioDto) {
private void validarCadastro(CadastroUsuarioRequest cadastroUsuarioDto) {
if (!emailService.isDominioValido(cadastroUsuarioDto.getEmail())) {
throw new UsuarioEmailDominioInvalido();
}
Expand Down
Loading

0 comments on commit a6f0cf4

Please sign in to comment.