Skip to content

Commit d86b089

Browse files
authored
Merge pull request #15 from codeplusofc/feats/implementando-dto-user
implementando boas práticas de dto na camada de usuário
2 parents cee6820 + f2a353d commit d86b089

File tree

5 files changed

+24
-42
lines changed

5 files changed

+24
-42
lines changed

src/main/java/com/code/food/controller/UserController.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,30 +10,18 @@
1010
import java.util.List;
1111
import java.util.Optional;
1212

13-
// A anotação @RestController indica que esta classe é responsável por tratar requisições HTTP
1413
@RestController
15-
// A anotação @RequestMapping define o caminho base para acessar os métodos dessa classe.
16-
// No caso, a URL será mapeada para "/user", e qualquer metodo dentro da classe com um mapeamento.
17-
// adicional será acessado em relação a esse caminho.
1814
@RequestMapping("/user")
1915
public class UserController {
2016

21-
// A anotação @Autowired é utilizada para injeção automática de dependências pelo Spring.
2217
@Autowired
2318
private UserService userService;
2419

25-
// A anotação @PostMapping é usada para mapear uma requisição HTTP do tipo POST
26-
// A anotação @RequestBody é utilizada para indicar que o corpo da requisição HTTP
27-
// será convertido automaticamente em um objeto Java. O Spring realiza a desserialização
28-
// dos dados (geralmente em formato JSON ou XML) e os mapeia para o parâmetro do metodo
29-
// de acordo com o tipo especificado.
3020
@PostMapping
3121
public OutUser createUser(@RequestBody InUser inUser) {
3222
return userService.createUser(inUser);
3323
}
3424

35-
// A anotação @GetMapping serve para especificar que vamos buscar e retornar algo
36-
// O metodo findAllUsers() irá retornar uma lista(List) contendo todos os usuários que foram cadastrados
3725
@GetMapping
3826
public List<UserEntity> findAllUsers() {
3927
return userService.findAllUsers();

src/main/java/com/code/food/dto/InUser.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.code.food.dto;
22

33
public class InUser {
4-
54
private String name;
65
private String email;
76
private String password;

src/main/java/com/code/food/dto/OutUser.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,30 @@
11
package com.code.food.dto;
22

33
public class OutUser {
4-
54
private Long id;
65
private String name;
76
private String email;
7+
private String role;
88
private String phone;
99
private String referralSource;
1010

11-
public OutUser(Long id, String name, String email, String phone, String referralSource) {
11+
public OutUser(Long id, String name, String email, String role, String phone, String referralSource) {
1212
this.id = id;
1313
this.name = name;
1414
this.email = email;
15+
this.role = role;
1516
this.phone = phone;
1617
this.referralSource = referralSource;
1718
}
1819

20+
public Long getId() {
21+
return id;
22+
}
23+
24+
public void setId(Long id) {
25+
this.id = id;
26+
}
27+
1928
public String getName() {
2029
return name;
2130
}
@@ -32,6 +41,14 @@ public void setEmail(String email) {
3241
this.email = email;
3342
}
3443

44+
public String getRole() {
45+
return role;
46+
}
47+
48+
public void setRole(String role) {
49+
this.role = role;
50+
}
51+
3552
public String getPhone() {
3653
return phone;
3754
}

src/main/java/com/code/food/entity/UserEntity.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,10 @@
55
import jakarta.persistence.GenerationType;
66
import jakarta.persistence.Id;
77

8-
// A anotação @Entity indica que esta classe é uma entidade JPA, ou seja,
9-
// ela será mapeada para uma tabela no banco de dados com o mesmo nome (ou um nome configurado).
108
@Entity
119
public class UserEntity {
1210

13-
// A anotação @Id marca o campo 'id' como a chave primária da tabela,
14-
// identificando unicamente cada registro de usuário.
1511
@Id
16-
17-
// A anotação @GeneratedValue define a estratégia para geração automática do valor do ID.
18-
// Neste caso, a estratégia GenerationType.AUTO permite que o JPA escolha a melhor forma
19-
// de gerar o ID, seja por incremento automático ou outro metodo dependendo do banco de dados.
2012
@GeneratedValue(strategy = GenerationType.AUTO)
2113
private Long id;
2214

src/main/java/com/code/food/service/UserService.java

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,39 +13,25 @@
1313

1414
import static com.code.food.validation.UserValidator.*;
1515

16-
// A anotação @Service é usada para marcar uma classe como um serviço no Spring.
17-
// Essa classe geralmente contém a lógica de negócio da aplicação.
1816
@Service
1917
public class UserService {
2018

21-
// A anotação @Autowired é utilizada para injeção automática de dependências pelo Spring.
22-
// A variável userRepository é uma instância do repositório UserRepository, que é
23-
// responsável pela interação com a base de dados para realizar operações CRUD
24-
// (Create, Read, Update, Delete) relacionadas ao recurso "User".
25-
// A visibilidade "private" indica que ela só pode ser acessada dentro da classe onde foi declarada.
2619
@Autowired
2720
private UserRepository userRepository;
2821

29-
// O metodo createUser recebe um objeto userEntity, que representa um usuário,
30-
// e o salva no banco de dados utilizando o repositório userRepository.
31-
// O metodo retorna o objeto userEntity após ser salvo, com os dados atualizados,
32-
// incluindo o ID gerado automaticamente, se aplicável.
3322
public OutUser createUser(InUser inUser) {
3423

35-
var userEntity = new UserEntity(inUser.getName(),
36-
inUser.getEmail(),
37-
inUser.getPassword(),
38-
inUser.getPhone(),
39-
inUser.getReferralSource());
24+
UserEntity userEntity = new UserEntity(inUser.getName(), inUser.getEmail(),
25+
inUser.getPassword(), inUser.getPhone(), inUser.getReferralSource());
4026

4127
validateFields(userEntity);
4228

43-
var userSaved = userRepository.save(userEntity);
29+
UserEntity userSaved = userRepository.save(userEntity);
4430

45-
return new OutUser(userSaved.getId(), userSaved.getName(), userSaved.getEmail(), userSaved.getPhone(), userSaved.getReferralSource());
31+
return new OutUser(userSaved.getId(), userSaved.getName(), userSaved.getEmail(),
32+
userSaved.getRole(), userSaved.getPhone(), userSaved.getReferralSource());
4633
}
4734

48-
// O metodo findAllUsers() irá retornar uma lista(List) contendo todos os usuários que foram cadastrados
4935
public List<UserEntity> findAllUsers() {
5036
return userRepository.findAll();
5137
}

0 commit comments

Comments
 (0)