Skip to content

Commit 47335cb

Browse files
committed
subindo configurações iniciais
1 parent 2ae46e7 commit 47335cb

File tree

10 files changed

+276
-47
lines changed

10 files changed

+276
-47
lines changed

uol/pom.xml

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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: 5 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.testbackend.uol.client.LigaDaJusticaClient;
44
import com.testbackend.uol.client.VingadoresClient;
5+
import com.testbackend.uol.util.HeroClassConfiguration;
56
import org.springframework.http.ResponseEntity;
67
import org.springframework.web.bind.annotation.GetMapping;
78
import org.springframework.web.bind.annotation.RequestMapping;
@@ -11,7 +12,6 @@
1112
import java.util.Arrays;
1213

1314
import java.util.List;
14-
import java.util.Random;
1515
import java.util.random.RandomGenerator;
1616

1717

@@ -20,47 +20,10 @@
2020
public class HeroController {
2121

2222

23-
private final VingadoresClient heroClient;
2423

25-
private final LigaDaJusticaClient ligaDaJusticaClient;
2624

27-
public HeroController(VingadoresClient heroClient, LigaDaJusticaClient ligaDaJusticaClient) {
28-
this.heroClient = heroClient;
29-
this.ligaDaJusticaClient = ligaDaJusticaClient;
30-
}
31-
32-
33-
34-
@GetMapping
35-
public ResponseEntity<List<String>> getHeroes() {
36-
37-
String vingadores = heroClient.getHeroesVingadores().replaceAll("[:\\n\\t{}\\[\\]\"]", "").replaceAll("\\s+", " ").replace("codinome","").replace("vingadores","").trim();
38-
var list = List.of(vingadores.split(","));
39-
40-
List<String> listVingadores = new ArrayList<>(list);
41-
int index = RandomGenerator.getDefault().nextInt(list.size());
42-
if (listVingadores.get(index) == null){
43-
System.out.println("este heroi ja foi");
44-
}
45-
46-
String hero = listVingadores.get(index);
47-
System.out.println(listVingadores);
48-
System.out.println(listVingadores.size());
49-
System.out.println(hero);
50-
51-
listVingadores.remove(index);
52-
53-
System.out.println(listVingadores);
54-
System.out.println(listVingadores.size());
55-
56-
57-
58-
String justiceLeague = ligaDaJusticaClient.getHeroesLigaDaJustica();
59-
List<String> listJustice = Arrays.asList(justiceLeague.split(","));
60-
//System.out.println(listJustice);
61-
62-
63-
return ResponseEntity.ok(listJustice);
64-
65-
}
25+
// @GetMapping
26+
// public ResponseEntity<List<String>> getHeroes() {
27+
//
28+
// }
6629
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.testbackend.uol.controller;
2+
3+
4+
import com.testbackend.uol.dto.UsuarioDTO;
5+
import com.testbackend.uol.service.UsuarioService;
6+
import jakarta.validation.Valid;
7+
import org.springframework.http.HttpStatus;
8+
import org.springframework.http.ResponseEntity;
9+
import org.springframework.web.bind.annotation.PostMapping;
10+
import org.springframework.web.bind.annotation.RequestBody;
11+
import org.springframework.web.bind.annotation.RequestMapping;
12+
import org.springframework.web.bind.annotation.RestController;
13+
14+
@RestController
15+
@RequestMapping("/api/v1/usuario")
16+
public class UsuarioController {
17+
18+
19+
private final UsuarioService usuarioService;
20+
21+
22+
public UsuarioController(UsuarioService usuarioService) {
23+
this.usuarioService = usuarioService;
24+
}
25+
26+
27+
@PostMapping("/new")
28+
public ResponseEntity<UsuarioDTO> saveUsuario(@Valid @RequestBody UsuarioDTO dto){
29+
30+
var usuarioCriado = usuarioService.saveUsuario(dto);
31+
32+
return ResponseEntity.status(HttpStatus.CREATED).body(usuarioCriado);
33+
}
34+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.testbackend.uol.dto;
2+
3+
4+
import com.testbackend.uol.enums.HeroGrupo;
5+
import com.testbackend.uol.model.Usuario;
6+
import jakarta.validation.constraints.NotNull;
7+
import lombok.AllArgsConstructor;
8+
import lombok.Getter;
9+
import lombok.NoArgsConstructor;
10+
import lombok.Setter;
11+
import org.springframework.beans.BeanUtils;
12+
13+
@Getter
14+
@Setter
15+
@AllArgsConstructor
16+
public class UsuarioDTO {
17+
18+
@NotNull
19+
private String nome;
20+
@NotNull
21+
private String email;
22+
23+
private String telefone;
24+
25+
@NotNull
26+
private HeroGrupo grupo;
27+
28+
29+
public UsuarioDTO(Usuario usuario){
30+
31+
BeanUtils.copyProperties(usuario,this);
32+
}
33+
}
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: 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+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.testbackend.uol.repository;
2+
3+
import com.testbackend.uol.model.Usuario;
4+
import org.springframework.data.jpa.repository.JpaRepository;
5+
import org.springframework.data.jpa.repository.Query;
6+
7+
8+
import java.util.List;
9+
10+
public interface UsuarioRepository extends JpaRepository<Usuario, Long> {
11+
12+
@Query("SELECT u.codinome FROM Usuario u")
13+
List<String> getUsuarioByCodinome();
14+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.testbackend.uol.service;
2+
3+
4+
import com.testbackend.uol.dto.UsuarioDTO;
5+
import com.testbackend.uol.enums.HeroGrupo;
6+
import com.testbackend.uol.model.Usuario;
7+
import com.testbackend.uol.repository.UsuarioRepository;
8+
import com.testbackend.uol.util.HeroClassConfiguration;
9+
import org.springframework.stereotype.Service;
10+
11+
12+
@Service
13+
public class UsuarioService {
14+
15+
16+
private final HeroClassConfiguration configuration;
17+
private final UsuarioRepository usuarioRepository;
18+
19+
20+
public UsuarioService(HeroClassConfiguration configuration, UsuarioRepository usuarioRepository) {
21+
this.configuration = configuration;
22+
this.usuarioRepository = usuarioRepository;
23+
}
24+
25+
26+
public UsuarioDTO saveUsuario(UsuarioDTO usuario){
27+
var entity = new Usuario(usuario);
28+
String codinome = "";
29+
if (usuario.getGrupo().getValue().equals(HeroGrupo.VINGADORES.getValue())){
30+
var list = usuarioRepository.getUsuarioByCodinome();
31+
32+
do {
33+
codinome = configuration.getVingador();
34+
} while (list.contains(codinome));
35+
36+
}else if (usuario.getGrupo().getValue().equals(HeroGrupo.LIGADAJUSTICA.getValue())){
37+
38+
var list = usuarioRepository.getUsuarioByCodinome();
39+
40+
do {
41+
codinome = configuration.getLigaDaJustica();
42+
} while (list.contains(codinome));
43+
}
44+
45+
entity.setCodinome(codinome);
46+
47+
return new UsuarioDTO(usuarioRepository.save(entity));
48+
}
49+
}
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package com.testbackend.uol.util;
2+
3+
4+
import com.testbackend.uol.client.LigaDaJusticaClient;
5+
import com.testbackend.uol.client.VingadoresClient;
6+
import org.springframework.context.annotation.Configuration;
7+
8+
import java.util.ArrayList;
9+
import java.util.Arrays;
10+
import java.util.List;
11+
import java.util.Random;
12+
import java.util.random.RandomGenerator;
13+
14+
15+
@Configuration
16+
public class HeroClassConfiguration {
17+
18+
19+
private final VingadoresClient vingadoresClient;
20+
21+
private final LigaDaJusticaClient ligaDaJusticaClient;
22+
23+
private final Random random = new Random();
24+
25+
public HeroClassConfiguration(VingadoresClient vingadoresClient, LigaDaJusticaClient ligaDaJusticaClient) {
26+
this.vingadoresClient = vingadoresClient;
27+
this.ligaDaJusticaClient = ligaDaJusticaClient;
28+
}
29+
30+
31+
public String getVingador(){
32+
33+
String vingadores = vingadoresClient.getHeroesVingadores()
34+
.replaceAll("[:\\n\\t{}\\[\\]\"]", "")
35+
.replaceAll("\\s+", " ")
36+
.replace("codinome","")
37+
.replace("vingadores","").trim();
38+
39+
List<String> listVingadores = new ArrayList<>(List.of(vingadores.split(",")));
40+
41+
int index = random.nextInt(listVingadores.size());
42+
43+
return listVingadores.get(index);
44+
45+
}
46+
47+
48+
public String getLigaDaJustica(){
49+
50+
String justiceLeague = ligaDaJusticaClient.getHeroesLigaDaJustica()
51+
.replaceAll("\\s+", " ")
52+
.replaceAll("[<>/:\\n\\t{}\\[\\]\"]", "")
53+
.replace("codinomes", "").replace("codinome",",")
54+
.replace("liga_da_justica","").trim();
55+
56+
var listJustice = List.of(justiceLeague.split(","));
57+
58+
List<String> listJusticeFinal = new ArrayList<>(listJustice);
59+
listJusticeFinal.removeAll(Arrays.asList(""," ",null));
60+
61+
int index = RandomGenerator.getDefault().nextInt(listJusticeFinal.size());
62+
63+
return listJusticeFinal.get(index);
64+
65+
}
66+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,10 @@
11
spring.application.name=uol
2+
3+
4+
spring.datasource.driver-class-name=org.h2.Driver
5+
spring.datasource.url=jdbc:h2:mem:test
6+
spring.datasource.username=sa
7+
spring.datasource.password=
8+
spring.jpa.hibernate.ddl-auto=update
9+
spring.jpa.show-sql=true
10+
spring.jpa.open-in-view=true

0 commit comments

Comments
 (0)