Skip to content

Commit aa4091e

Browse files
authored
Merge pull request #1 from Lamarkes/developer
Developer
2 parents 2ae46e7 + 6ae024d commit aa4091e

21 files changed

+683
-75
lines changed

uol/pom.xml

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@
3030
<java.version>17</java.version>
3131
</properties>
3232
<dependencies>
33-
<!-- <dependency>-->
34-
<!-- <groupId>org.springframework.boot</groupId>-->
35-
<!-- <artifactId>spring-boot-starter-thymeleaf</artifactId>-->
36-
<!-- </dependency>-->
33+
<dependency>
34+
<groupId>org.springframework.boot</groupId>
35+
<artifactId>spring-boot-starter-thymeleaf</artifactId>
36+
</dependency>
3737
<dependency>
3838
<groupId>org.springframework.boot</groupId>
3939
<artifactId>spring-boot-starter-web</artifactId>
@@ -50,11 +50,6 @@
5050
<artifactId>h2</artifactId>
5151
<scope>runtime</scope>
5252
</dependency>
53-
54-
<dependency>
55-
<groupId>com.fasterxml.jackson.dataformat</groupId>
56-
<artifactId>jackson-dataformat-xml</artifactId>
57-
</dependency>
5853
<dependency>
5954
<groupId>org.projectlombok</groupId>
6055
<artifactId>lombok</artifactId>
@@ -67,6 +62,16 @@
6762
<scope>test</scope>
6863
</dependency>
6964

65+
66+
<dependency>
67+
<groupId>org.springframework.boot</groupId>
68+
<artifactId>spring-boot-starter-data-jpa</artifactId>
69+
</dependency>
70+
<dependency>
71+
<groupId>org.springframework.boot</groupId>
72+
<artifactId>spring-boot-starter-validation</artifactId>
73+
</dependency>
74+
7075
<dependency>
7176
<groupId>org.springframework.cloud</groupId>
7277
<artifactId>spring-cloud-starter-openfeign</artifactId>

uol/src/main/java/com/testbackend/uol/controller/HeroController.java

Lines changed: 0 additions & 66 deletions
This file was deleted.
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package com.testbackend.uol.controller;
2+
3+
import com.testbackend.uol.dto.UsuarioDTO;
4+
import com.testbackend.uol.model.Usuario;
5+
import com.testbackend.uol.service.UsuarioService;
6+
import jakarta.validation.Valid;
7+
import org.springframework.stereotype.Controller;
8+
import org.springframework.ui.Model;
9+
import org.springframework.validation.BindingResult;
10+
import org.springframework.validation.FieldError;
11+
import org.springframework.web.bind.annotation.GetMapping;
12+
import org.springframework.web.bind.annotation.ModelAttribute;
13+
import org.springframework.web.bind.annotation.PostMapping;
14+
15+
import java.util.List;
16+
17+
@Controller
18+
public class HomeController {
19+
20+
private final UsuarioService usuarioService;
21+
22+
public HomeController(UsuarioService usuarioService) {
23+
this.usuarioService = usuarioService;
24+
}
25+
26+
@GetMapping({"","/"})
27+
public String index(){
28+
return "index";
29+
}
30+
31+
@GetMapping("/users")
32+
public String getPlayers(Model model){
33+
List<Usuario> users = usuarioService.getAll();
34+
model.addAttribute("users", users);
35+
return "clients/index";
36+
}
37+
38+
39+
@GetMapping("/users/create")
40+
public String showCreatePage(Model model){
41+
UsuarioDTO usuarioDTO = new UsuarioDTO();
42+
model.addAttribute("usuarioDTO", usuarioDTO);
43+
return "clients/create";
44+
}
45+
46+
@PostMapping("/users/create")
47+
public String createClient(@Valid @ModelAttribute("usuarioDTO") UsuarioDTO usuarioDTO, BindingResult result){
48+
49+
if (usuarioService.getByEmail(usuarioDTO.getEmail()) != null){
50+
result.addError(
51+
new FieldError("usuarioDTO", "email", usuarioDTO.getEmail(), false, null,null,"Email ja cadastrado")
52+
);
53+
}
54+
55+
56+
if (result.hasErrors()){
57+
return "clients/create";
58+
}
59+
60+
usuarioService.saveUsuario(usuarioDTO);
61+
62+
return "redirect:/users/create";
63+
}
64+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.testbackend.uol.controller;
2+
3+
4+
import com.testbackend.uol.dto.UsuarioDTO;
5+
import com.testbackend.uol.model.Usuario;
6+
import com.testbackend.uol.service.UsuarioService;
7+
import jakarta.validation.Valid;
8+
import org.springframework.http.HttpStatus;
9+
import org.springframework.http.ResponseEntity;
10+
import org.springframework.ui.Model;
11+
import org.springframework.web.bind.annotation.*;
12+
13+
import java.util.List;
14+
15+
@RestController
16+
@RequestMapping("/api/v1/users")
17+
public class UsuarioController {
18+
19+
20+
private final UsuarioService usuarioService;
21+
22+
23+
public UsuarioController(UsuarioService usuarioService) {
24+
this.usuarioService = usuarioService;
25+
}
26+
27+
28+
// @GetMapping
29+
// public ResponseEntity<List<Usuario>> getAll(){
30+
//
31+
// return ResponseEntity.status(HttpStatus.FOUND).body(usuarioService.getAll());
32+
// }
33+
34+
@GetMapping
35+
public String getPlayers(Model model){
36+
List<Usuario> users = usuarioService.getAll();
37+
model.addAttribute("users", users);
38+
return "clients/index";
39+
}
40+
41+
42+
// @PostMapping("/new")
43+
// public ResponseEntity<UsuarioDTO> saveUsuario(@Valid @RequestBody UsuarioDTO dto){
44+
//
45+
// var usuarioCriado = usuarioService.saveUsuario(dto);
46+
//
47+
// return ResponseEntity.status(HttpStatus.CREATED).body(usuarioCriado);
48+
// }
49+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.testbackend.uol.dto;
2+
3+
import com.testbackend.uol.enums.HeroGrupo;
4+
import com.testbackend.uol.model.Usuario;
5+
import jakarta.validation.constraints.Email;
6+
import jakarta.validation.constraints.NotEmpty;
7+
import lombok.Getter;
8+
import lombok.NoArgsConstructor;
9+
import lombok.Setter;
10+
import org.springframework.beans.BeanUtils;
11+
12+
@Getter
13+
@Setter
14+
@NoArgsConstructor
15+
public class UsuarioDTO {
16+
17+
@NotEmpty(message = "O nome deve ser informado!")
18+
private String nome;
19+
@NotEmpty(message = "O email deve ser informado!")
20+
@Email(message = "infome um email valido")
21+
private String email;
22+
private String telefone;
23+
private HeroGrupo grupo;
24+
25+
26+
public UsuarioDTO(Usuario usuario){
27+
28+
BeanUtils.copyProperties(usuario,this);
29+
}
30+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.testbackend.uol.enums;
2+
3+
import lombok.Getter;
4+
5+
@Getter
6+
public enum HeroGrupo {
7+
8+
VINGADORES("Vingadores"),
9+
LIGADAJUSTICA("liga Da Justiça");
10+
11+
private final String value;
12+
13+
HeroGrupo(String value){
14+
this.value = value;
15+
}
16+
17+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.testbackend.uol.exception;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Getter;
5+
6+
import java.util.Date;
7+
8+
@AllArgsConstructor
9+
@Getter
10+
public class ExceptionResponse {
11+
12+
13+
private Date timestmap;
14+
15+
private String message;
16+
17+
private String details;
18+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.testbackend.uol.exception;
2+
3+
import org.springframework.http.HttpStatus;
4+
import org.springframework.web.bind.annotation.ResponseStatus;
5+
6+
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
7+
public class GrupoIndisponivelException extends RuntimeException{
8+
9+
public GrupoIndisponivelException(String msg){
10+
super(msg);
11+
}
12+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.testbackend.uol.exception.handler;
2+
3+
import com.testbackend.uol.exception.ExceptionResponse;
4+
import com.testbackend.uol.exception.GrupoIndisponivelException;
5+
import org.springframework.http.HttpStatus;
6+
import org.springframework.http.ResponseEntity;
7+
import org.springframework.web.bind.annotation.ControllerAdvice;
8+
import org.springframework.web.bind.annotation.ExceptionHandler;
9+
import org.springframework.web.bind.annotation.RestController;
10+
import org.springframework.web.context.request.WebRequest;
11+
12+
import java.util.Date;
13+
14+
@ControllerAdvice
15+
@RestController
16+
public class CustomizedResponseHandler {
17+
18+
@ExceptionHandler(Exception.class)
19+
public final ResponseEntity<ExceptionResponse> handleAllExceptions(Exception ex, WebRequest request){
20+
21+
ExceptionResponse response = new ExceptionResponse(new Date(), ex.getMessage(), request.getDescription(false));
22+
23+
return new ResponseEntity<>(response, HttpStatus.INTERNAL_SERVER_ERROR);
24+
}
25+
26+
@ExceptionHandler(GrupoIndisponivelException.class)
27+
public final ResponseEntity<ExceptionResponse> gruposIndisponiveis(Exception ex, WebRequest request){
28+
29+
ExceptionResponse response = new ExceptionResponse(new Date(), ex.getMessage(), request.getDescription(false));
30+
31+
return new ResponseEntity<>(response, HttpStatus.INTERNAL_SERVER_ERROR);
32+
}
33+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package com.testbackend.uol.model;
2+
3+
import com.testbackend.uol.dto.UsuarioDTO;
4+
import com.testbackend.uol.enums.HeroGrupo;
5+
import jakarta.persistence.*;
6+
import lombok.AllArgsConstructor;
7+
import lombok.Getter;
8+
import lombok.NoArgsConstructor;
9+
import lombok.Setter;
10+
import org.springframework.beans.BeanUtils;
11+
12+
@Table(name = "tb_usuario")
13+
@Entity
14+
@NoArgsConstructor
15+
@Getter
16+
@Setter
17+
public class Usuario {
18+
19+
@Id
20+
@GeneratedValue(strategy = GenerationType.IDENTITY)
21+
private Long id;
22+
@Column(nullable = false)
23+
private String nome;
24+
@Column(nullable = false)
25+
private String email;
26+
@Column(length = 20)
27+
private String telefone;
28+
@Column(nullable = false)
29+
private String codinome;
30+
@Enumerated(value = EnumType.STRING)
31+
private HeroGrupo grupo;
32+
33+
34+
public Usuario(UsuarioDTO dto){
35+
36+
BeanUtils.copyProperties(dto,this);
37+
}
38+
39+
}

0 commit comments

Comments
 (0)