diff --git a/src/main/java/casa/sotu/organizajogos/api/persistencia/ArmarioJogo.java b/src/main/java/casa/sotu/organizajogos/api/persistencia/ArmarioJogo.java new file mode 100644 index 0000000..eeca413 --- /dev/null +++ b/src/main/java/casa/sotu/organizajogos/api/persistencia/ArmarioJogo.java @@ -0,0 +1,31 @@ +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; + +@ApplicationScoped +public class ArmarioJogo { + private Map 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 listar() { + return List.copyOf(jogos.values()); + } +} diff --git a/src/main/java/casa/sotu/organizajogos/api/recursos/RecursoJogo.java b/src/main/java/casa/sotu/organizajogos/api/recursos/RecursoJogo.java new file mode 100644 index 0000000..937a05e --- /dev/null +++ b/src/main/java/casa/sotu/organizajogos/api/recursos/RecursoJogo.java @@ -0,0 +1,54 @@ +package casa.sotu.organizajogos.api.recursos; + +import java.util.List; +import java.util.UUID; + +import casa.sotu.organizajogos.api.modelo.Jogo; +import casa.sotu.organizajogos.api.persistencia.ArmarioJogo; +import jakarta.ws.rs.DELETE; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.PUT; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.PathParam; + +@Path("jogos") +public class RecursoJogo { + + private ArmarioJogo armarioJogo; + + public RecursoJogo(ArmarioJogo armarioJogo) { + this.armarioJogo = armarioJogo; + + } + + @GET + public List listaJogos() { + return armarioJogo.listar(); + } + + @GET + @Path("{id}") + public Jogo pegaJogo(@PathParam("id") UUID id) { + return this.armarioJogo.pegar(id); + } + + @POST + public void criaJogo(Jogo jogo) { + this.armarioJogo.criar(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()); + } + + @DELETE + @Path("{id}") + public void remove(@PathParam("id") UUID id) { + this.armarioJogo.remover(id); + } +}