Commit 67387e83 authored by Gabriel Silva Hermida's avatar Gabriel Silva Hermida

Issue #7: Adicionada rota para deletar jogo

Signed-off-by: Gabriel Silva Hermida's avatarGabriel_S <gash18@inf.ufpr.br>
parent f6dbdba2
Pipeline #22086 passed with stage
in 41 seconds
......@@ -107,7 +107,7 @@ describe("Arquivo main.ts", () => {
}
, (callback) => {
request(server)
.get("/jogo/sahsudhaisdh")
.get("/jogo/a")
.expect(400)
.expect((res: any) => {
expect(res.body).to.be.an("object");
......@@ -138,6 +138,19 @@ describe("Arquivo main.ts", () => {
});
// Testando o erro na atualização do jogo com app.put("/jogo/:id")
it("Fracassa em atualizar jogo por id inválido", (done) => {
request(server)
.put("/jogo/asduihasuidh")
.send({nome: "Path of Exile", dev: "ggg", producer: "Tencent", release: "2013-10-23", price: 0 })
.expect(400)
.expect((res: any) => {
expect(res.body).to.be.an("object");
expect(res.body).to.have.property("msg");
expect(res.body.msg).to.be.an("string");
expect(res.body.msg).to.be.eql("Busca inapropriada");
})
.end(done);
});
it("Falha em atualizar um jogo - nome ", (done) => {
request(server)
.put("/jogo/1")
......@@ -203,4 +216,43 @@ describe("Arquivo main.ts", () => {
})
.end(done);
});
// Testa sucesso em remover um jogo pelo id em app.delete("/jogo/:id")
it("Sucesso em remover um jogo do banco", (done) => {
request(server)
.delete("/jogo/1")
.expect(200)
.expect((res: any) => {
expect(res.body).to.be.an("object");
expect(res.body).to.have.property("msg");
expect(res.body.msg).to.be.an("string");
expect(res.body.msg).to.be.eql("Sucesso em remover jogo");
})
.end(done);
});
// Testa fracasso em remover jogo por id invalido
it("Fracassa em remover jogo por id inválido", (done) => {
request(server)
.delete("/jogo/asduihasuidh")
.expect(400)
.expect((res: any) => {
expect(res.body).to.be.an("object");
expect(res.body).to.have.property("msg");
expect(res.body.msg).to.be.an("string");
expect(res.body.msg).to.be.eql("Busca inapropriada");
})
.end(done);
});
// Testa se o jogo existe no banco
it("Fracassa em remover jogo por não estar no banco", (done) => {
request(server)
.delete("/jogo/999999")
.expect(400)
.expect((res: any) => {
expect(res.body).to.be.an("object");
expect(res.body).to.have.property("msg");
expect(res.body.msg).to.be.an("string");
expect(res.body.msg).to.be.eql("O jogo não existe no banco");
})
.end(done);
});
});
......@@ -117,6 +117,7 @@ app.get("/adicionar/saldo", (req: Request, res: express.Response) => {
res.json("O jogador " + req.db.readplayer(0).getName() + " adicionou " + saldo + "R$");
});
// Insere um jogo no bd com o método post
app.post("/jogo", (req: Request, res: express.Response) => {
if (!(req.body.nome && req.body.dev && req.body.producer && req.body.release && req.body.price)) {
res.status(400).json({msg: "Alguns parâmetros não foram informados"});
......@@ -128,19 +129,21 @@ app.post("/jogo", (req: Request, res: express.Response) => {
res.json({msg: "Sucesso"});
});
// Retorna os atributos do jogo indexado pelo /:id com o método get
app.get("/jogo/:id", (req: Request, res: express.Response) => {
const id: number = Math.abs(parseInt(req.params.id, 10));
if (isNaN(id)){
res.status(400).json({msg: "Busca inapropriada"});
return;
}
if (id > req.db.list("jogos").length){
if (id >= req.db.list("jogos").length){
res.status(400).json({msg: "O jogo não existe no banco"});
return;
}
res.json(req.db.readgame(id).writeinfo());
});
// Atualiza o jogo do /:id no bd com o método put
app.put("/jogo/:id", (req: Request, res: express.Response) => {
if (typeof req.body.nome !== "string") {
res.status(400).json({msgN: "Nome inválido"});
......@@ -164,11 +167,14 @@ app.put("/jogo/:id", (req: Request, res: express.Response) => {
}
const id: number = Math.abs(parseInt(req.params.id, 10));
if (isNaN(id)){
res.status(400).json({msg: "Busca inapropriada"});
return;
}
if (id > req.db.list("jogos").length){
res.status(400).json({msg: "O jogo não existe no banco"});
return;
}
const game: Jogo = new Jogo(req.body.nome, req.body.dev, req.body.producer, new Date(req.body.release), req.body.price);
......@@ -176,5 +182,20 @@ app.put("/jogo/:id", (req: Request, res: express.Response) => {
res.json({msg: "O jogo foi atulaizado com sucesso."});
});
// Deleta um jogo indexado pelo /:id com o método delete.
app.delete("/jogo/:id", (req: Request, res: express.Response) => {
const id: number = Math.abs(parseInt(req.params.id, 10));
if (isNaN(id)){
res.status(400).json({msg: "Busca inapropriada"});
return;
}
if (id > req.db.list("jogos").length){
res.status(400).json({msg: "O jogo não existe no banco"});
return;
}
req.db.deletegame(id);
res.json({msg: "Sucesso em remover jogo"});
});
app.listen(3000);
console.log("Server listening on port 3000");
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment