Commit 890cd9b4 authored by Gabriel Silva Hermida's avatar Gabriel Silva Hermida

Issue #14: Adicionada rota para desfazer amizade

parent 9a62c7fd
Pipeline #22193 passed with stage
in 47 seconds
......@@ -69,6 +69,17 @@ export class Jogador {
this.amigos.push(jogador.getName());
return true;
}
public removeFriend(jogador: Jogador) {
if (!this.amigos.some((value1: string) => {
return value1 === jogador.getName();
})) {
return false;
}
this.amigos.splice(this.amigos.indexOf(jogador.getName()), 1);
return true;
}
public library(): string[] {
return this.jogos;
}
......
......@@ -545,4 +545,78 @@ describe("Arquivo main.ts", () => {
})
.end(done);
});
// Testa sucesso em desfazer amizade
it("Sucesso em remover amigo", (done) => {
request(server)
.delete("/amizade/0/2")
.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 desfazer amizade");
})
.end(done);
});
// Testa falha em remover amigos
it("Falha em remover amigo - primeiro jogador inválido", (done) => {
request(server)
.delete("/amizade/asadelta/2")
.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("Primeiro jogador inválido");
})
.end(done);
});
it("Falha em remover amigo - segundo jogador inválido", (done) => {
request(server)
.delete("/amizade/0/asadelta")
.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("Segundo jogador inválido");
})
.end(done);
});
it("Falha em remover amigo - primeiro jogador não existe no banco", (done) => {
request(server)
.delete("/amizade/2341243124/2")
.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("Primeiro jogador não existe no banco");
})
.end(done);
});
it("Falha em remover amigo - segundo jogador não existe no banco", (done) => {
request(server)
.delete("/amizade/0/123432442")
.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("Segundo jogador não existe no banco");
})
.end(done);
});
it("Falha em remover amigo - jogadores não são amigos", (done) => {
request(server)
.delete("/amizade/0/2")
.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("Os jogadores não são amigos");
})
.end(done);
});
});
......@@ -304,5 +304,37 @@ app.post("/jogador/:idA/:idB", (req: Request, res: express.Response) => {
res.json({msg: "Sucesso em adicionar amigo"});
});
app.delete("/amizade/:idA/:idB", (req: Request, res: express.Response) => {
const idA: number = Math.abs(parseInt(req.params.idA, 10));
const idB: number = Math.abs(parseInt(req.params.idB, 10));
if (isNaN(idA)) {
res.status(400).json({msg: "Primeiro jogador inválido"});
return;
}
if (isNaN(idB)) {
res.status(400).json({msg: "Segundo jogador inválido"});
return;
}
if (idA > req.db.list("jogadores").length || idB > req.db.list("jogadores").length) {
res.status(400);
if (idA > req.db.list("jogadores").length) {
res.json({msg: "Primeiro jogador não existe no banco"});
}
if (idB > req.db.list("jogadores").length) {
res.json({msg: "Segundo jogador não existe no banco"});
}
return;
}
const PlayerA = req.db.readplayer(idA);
const PlayerB = req.db.readplayer(idB);
if (!(PlayerA.removeFriend(PlayerB))){
res.status(400).json({msg: "Os jogadores não são amigos"});
return;
}
res.json({msg: "Sucesso em desfazer amizade"});
});
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