Conectando na base de dados
This commit is contained in:
parent
0807d760b1
commit
abe72f1e5b
5 changed files with 101 additions and 47 deletions
55
pom.xml
55
pom.xml
|
@ -9,13 +9,15 @@
|
|||
<properties>
|
||||
<quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
|
||||
<quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id>
|
||||
<quarkus.platform.version>3.24.5</quarkus.platform.version>
|
||||
<compiler-plugin.version>3.11.0</compiler-plugin.version>
|
||||
<quarkus.platform.version>3.25.0</quarkus.platform.version>
|
||||
<compiler-plugin.version>3.14.0</compiler-plugin.version>
|
||||
<surefire-plugin.version>3.1.2</surefire-plugin.version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
<maven.compiler.parameters>true</maven.compiler.parameters>
|
||||
<lombok.version>1.18.38</lombok.version>
|
||||
<hibernate.version></hibernate.version>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
|
@ -31,15 +33,41 @@
|
|||
</dependencyManagement>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<!-- Geração de código -->
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>1.18.38</version>
|
||||
<version>${lombok.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- HTTP -->
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-rest-jackson</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- Validação -->
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-hibernate-validator</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- Persistência -->
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-hibernate-orm</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-jdbc-postgresql</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>jakarta.data</groupId>
|
||||
<artifactId>jakarta.data-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- Testes -->
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-junit5</artifactId>
|
||||
|
@ -50,6 +78,7 @@
|
|||
<artifactId>rest-assured</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
@ -57,6 +86,20 @@
|
|||
<plugin>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>${compiler-plugin.version}</version>
|
||||
<configuration>
|
||||
<parameters>true</parameters>
|
||||
<annotationProcessorPaths>
|
||||
<path>
|
||||
<groupId>org.hibernate.orm</groupId>
|
||||
<artifactId>hibernate-processor</artifactId>
|
||||
</path>
|
||||
<path>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>${lombok.version}</version>
|
||||
</path>
|
||||
</annotationProcessorPaths>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
|
@ -109,7 +152,9 @@
|
|||
</goals>
|
||||
<configuration>
|
||||
<systemPropertyVariables>
|
||||
<native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path>
|
||||
<native.image.path>
|
||||
${project.build.directory}/${project.build.finalName}-runner
|
||||
</native.image.path>
|
||||
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
|
||||
<maven.home>${maven.home}</maven.home>
|
||||
</systemPropertyVariables>
|
||||
|
@ -121,4 +166,4 @@
|
|||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
</project>
|
||||
</project>
|
|
@ -2,11 +2,30 @@ package casa.sotu.organizajogos.api.modelo;
|
|||
|
||||
import java.util.UUID;
|
||||
|
||||
import lombok.Data;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.EnumType;
|
||||
import jakarta.persistence.Enumerated;
|
||||
import jakarta.persistence.Id;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Data
|
||||
@Getter
|
||||
@Setter
|
||||
@Entity
|
||||
public class Jogo {
|
||||
|
||||
@Id
|
||||
private UUID id;
|
||||
|
||||
@NotBlank
|
||||
private String nome;
|
||||
|
||||
@NotNull
|
||||
@Enumerated(EnumType.STRING)
|
||||
private Estado estado;
|
||||
|
||||
@NotBlank
|
||||
private String loja;
|
||||
}
|
||||
|
|
|
@ -1,31 +1,11 @@
|
|||
package casa.sotu.organizajogos.api.persistencia;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
import casa.sotu.organizajogos.api.modelo.Jogo;
|
||||
import jakarta.enterprise.context.ApplicationScoped;
|
||||
import jakarta.data.repository.CrudRepository;
|
||||
import jakarta.data.repository.Repository;
|
||||
|
||||
@ApplicationScoped
|
||||
public class ArmarioJogo {
|
||||
private Map<UUID, Jogo> jogos = new HashMap<>();
|
||||
|
||||
public void criar(Jogo jogo) {
|
||||
jogo.setId(UUID.randomUUID());
|
||||
jogos.put(jogo.getId(), jogo);
|
||||
}
|
||||
|
||||
public Jogo pegar(UUID id) {
|
||||
return jogos.get(id);
|
||||
}
|
||||
|
||||
public void remover(UUID id) {
|
||||
jogos.remove(id);
|
||||
}
|
||||
|
||||
public List<Jogo> listar() {
|
||||
return List.copyOf(jogos.values());
|
||||
}
|
||||
@Repository
|
||||
public interface ArmarioJogo extends CrudRepository<Jogo, UUID> {
|
||||
}
|
||||
|
|
|
@ -5,8 +5,10 @@ import java.util.UUID;
|
|||
|
||||
import casa.sotu.organizajogos.api.modelo.Jogo;
|
||||
import casa.sotu.organizajogos.api.persistencia.ArmarioJogo;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.ws.rs.DELETE;
|
||||
import jakarta.ws.rs.GET;
|
||||
import jakarta.ws.rs.NotFoundException;
|
||||
import jakarta.ws.rs.POST;
|
||||
import jakarta.ws.rs.PUT;
|
||||
import jakarta.ws.rs.Path;
|
||||
|
@ -14,41 +16,41 @@ import jakarta.ws.rs.PathParam;
|
|||
|
||||
@Path("jogos")
|
||||
public class RecursoJogo {
|
||||
|
||||
|
||||
private ArmarioJogo armarioJogo;
|
||||
|
||||
|
||||
public RecursoJogo(ArmarioJogo armarioJogo) {
|
||||
this.armarioJogo = armarioJogo;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@GET
|
||||
public List<Jogo> listaJogos() {
|
||||
return armarioJogo.listar();
|
||||
return armarioJogo.findAll().toList();
|
||||
}
|
||||
|
||||
|
||||
@GET
|
||||
@Path("{id}")
|
||||
public Jogo pegaJogo(@PathParam("id") UUID id) {
|
||||
return this.armarioJogo.pegar(id);
|
||||
return this.armarioJogo.findById(id).orElseThrow(NotFoundException::new);
|
||||
}
|
||||
|
||||
|
||||
@POST
|
||||
public void criaJogo(Jogo jogo) {
|
||||
this.armarioJogo.criar(jogo);
|
||||
public void criaJogo(@Valid Jogo jogo) {
|
||||
jogo.setId(UUID.randomUUID());
|
||||
this.armarioJogo.insert(jogo);
|
||||
}
|
||||
|
||||
|
||||
@PUT
|
||||
@Path("{id}")
|
||||
public void atualizaJogo(@PathParam("id") UUID id, Jogo jogo) {
|
||||
Jogo atual = this.armarioJogo.pegar(id);
|
||||
atual.setNome(jogo.getNome());
|
||||
atual.setEstado(jogo.getEstado());
|
||||
public void atualizaJogo(@PathParam("id") UUID id, @Valid Jogo jogo) {
|
||||
jogo.setId(id);
|
||||
armarioJogo.update(jogo);
|
||||
}
|
||||
|
||||
@DELETE
|
||||
@Path("{id}")
|
||||
public void remove(@PathParam("id") UUID id) {
|
||||
this.armarioJogo.remover(id);
|
||||
this.armarioJogo.deleteById(id);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,2 +1,10 @@
|
|||
# Quarkus Configuration file
|
||||
# key = value
|
||||
quarkus.datasource.db-kind=pg
|
||||
quarkus.datasource.username=postgres
|
||||
quarkus.datasource.password=${POSTGRES_PASSWORD}
|
||||
quarkus.datasource.jdbc.url=jdbc:postgresql://${POSTGRES_URL}/
|
||||
quarkus.hibernate-orm.schema-management.strategy=update
|
||||
%dev.quarkus.hibernate-orm.schema-management.strategy=drop-and-create
|
||||
%dev.quarkus.hibernate-orm.dev-ui.allow-hql=true
|
||||
%dev.quarkus.datasource.dev-ui.allowed-db-host=*
|
Loading…
Reference in a new issue