CRUD de jogo

This commit is contained in:
Gustavo Barbosa 2025-07-30 22:31:40 -03:00
parent 6e9cbac211
commit 00ff840ea5
2 changed files with 85 additions and 0 deletions

View file

@ -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<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());
}
}

View file

@ -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<Jogo> 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);
}
}