Commit 307826a3 authored by Gabriel Silva Hermida's avatar Gabriel Silva Hermida

Issue #13: Adicionada rota para adicionar amigo

parent 1b7347a3
Pipeline #22187 passed with stage
in 57 seconds
......@@ -20,6 +20,7 @@ export class DBHandler {
, 110
)
, new Jogador("Player2", [], [], 100)
, new Jogador("Player3", [], [], 110)
];
this.jogos = [
new Jogo("Overcooked", "fracasso", "fracasso", new Date("2010-01-01"), 200),
......
......@@ -62,13 +62,12 @@ export class Jogador {
public addfriend(jogador: Jogador) {
if (this.amigos.some((value1: string) => {
console.log(jogador.getName());
return value1 === jogador.getName();
})) {
return "Este jogador já foi adicionado.";
return false;
}
this.amigos.push(jogador.getName());
return "Jogador adicionado com sucesso.";
return true;
}
public library(): string[] {
return this.jogos;
......
......@@ -11,8 +11,8 @@ describe("Arquivo main.ts", () => {
.expect(200)
.expect((res: any) => {
expect(res.body).to.be.an("array");
expect(res.body).to.have.length(2);
for (let i = 0; i < 2; ++i) {
expect(res.body).to.have.length(3);
for (let i = 0; i < 3; ++i) {
expect(res.body[i]).to.be.eql("Player" + (i + 1));
}
})
......@@ -471,4 +471,78 @@ describe("Arquivo main.ts", () => {
})
.end(done);
});
// Testa sucesso em adicionar amigos
it("Sucesso em adicionar amigo", (done) => {
request(server)
.post("/jogador/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 adicionar amigo");
})
.end(done);
});
// Testa falha em adicionar amigos
it("Falha em adicionar amigo - primeiro jogador inválido", (done) => {
request(server)
.post("/jogador/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 adicionar amigo - segundo jogador inválido", (done) => {
request(server)
.post("/jogador/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 adicionar amigo - primeiro jogador não existe no banco", (done) => {
request(server)
.post("/jogador/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 adicionar amigo - segundo jogador não existe no banco", (done) => {
request(server)
.post("/jogador/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 adicionar amigo - jogadores já são amigos", (done) => {
request(server)
.post("/jogador/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 já são amigos");
})
.end(done);
});
});
......@@ -38,7 +38,7 @@ app.post("/jogador", (req: Request, res: express.Response) => {
req.db.createplayer(jogador);
res.json({msg: "Jogador inserido com sucesso."});
});
// atualiza jogador -- remove o antigo da posição passada e inicia um novo;
app.put("/jogador/:id", (req: Request, res: express.Response) => {
if (!(req.body.nome)) {
res.status(400).json({msg: "Nome não informado"});
......@@ -64,7 +64,7 @@ app.put("/jogador/:id", (req: Request, res: express.Response) => {
req.db.updateplayer(id, jogador);
res.json({msg: "O jogador foi atulaizado com sucesso."});
});
// deleta um jogador do bd
app.delete("/jogador/:id", (req: Request, res: express.Response) => {
const id: number = Math.abs(parseInt(req.params.id, 10));
if (isNaN(id)){
......@@ -186,10 +186,6 @@ app.get("/jogos-em-comum", (req: Request, res: express.Response) => {
}));
});
app.get("/adicionar/amigo", (req: Request, res: express.Response) => {
res.json(req.db.readplayer(0).addfriend(req.db.readplayer(1)));
});
app.get("/adicionar/saldo", (req: Request, res: express.Response) => {
const saldo = 200;
req.db.readplayer(0).addcredit(saldo);
......@@ -276,5 +272,37 @@ app.delete("/jogo/:id", (req: Request, res: express.Response) => {
res.json({msg: "Sucesso em remover jogo"});
});
// Adiciona amigo
app.post("/jogador/: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.addfriend(PlayerB) && PlayerB.addfriend(PlayerA))){
res.status(400).json({msg: "Os jogadores já são amigos"});
}
res.json({msg: "Sucesso em adicionar amigo"});
});
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