Commit 9a62c7fd authored by Lucas Fernandes de Oliveira's avatar Lucas Fernandes de Oliveira

Merge branch 'issue/13' into 'develop'

Issue #13: Adicionada rota para adicionar amigo

Closes #13

See merge request !15
parents 1b7347a3 307826a3
Pipeline #22191 passed with stage
in 46 seconds
...@@ -20,6 +20,7 @@ export class DBHandler { ...@@ -20,6 +20,7 @@ export class DBHandler {
, 110 , 110
) )
, new Jogador("Player2", [], [], 100) , new Jogador("Player2", [], [], 100)
, new Jogador("Player3", [], [], 110)
]; ];
this.jogos = [ this.jogos = [
new Jogo("Overcooked", "fracasso", "fracasso", new Date("2010-01-01"), 200), new Jogo("Overcooked", "fracasso", "fracasso", new Date("2010-01-01"), 200),
......
...@@ -62,13 +62,12 @@ export class Jogador { ...@@ -62,13 +62,12 @@ export class Jogador {
public addfriend(jogador: Jogador) { public addfriend(jogador: Jogador) {
if (this.amigos.some((value1: string) => { if (this.amigos.some((value1: string) => {
console.log(jogador.getName());
return value1 === jogador.getName(); return value1 === jogador.getName();
})) { })) {
return "Este jogador já foi adicionado."; return false;
} }
this.amigos.push(jogador.getName()); this.amigos.push(jogador.getName());
return "Jogador adicionado com sucesso."; return true;
} }
public library(): string[] { public library(): string[] {
return this.jogos; return this.jogos;
......
...@@ -11,8 +11,8 @@ describe("Arquivo main.ts", () => { ...@@ -11,8 +11,8 @@ describe("Arquivo main.ts", () => {
.expect(200) .expect(200)
.expect((res: any) => { .expect((res: any) => {
expect(res.body).to.be.an("array"); expect(res.body).to.be.an("array");
expect(res.body).to.have.length(2); expect(res.body).to.have.length(3);
for (let i = 0; i < 2; ++i) { for (let i = 0; i < 3; ++i) {
expect(res.body[i]).to.be.eql("Player" + (i + 1)); expect(res.body[i]).to.be.eql("Player" + (i + 1));
} }
}) })
...@@ -471,4 +471,78 @@ describe("Arquivo main.ts", () => { ...@@ -471,4 +471,78 @@ describe("Arquivo main.ts", () => {
}) })
.end(done); .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) => { ...@@ -38,7 +38,7 @@ app.post("/jogador", (req: Request, res: express.Response) => {
req.db.createplayer(jogador); req.db.createplayer(jogador);
res.json({msg: "Jogador inserido com sucesso."}); 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) => { app.put("/jogador/:id", (req: Request, res: express.Response) => {
if (!(req.body.nome)) { if (!(req.body.nome)) {
res.status(400).json({msg: "Nome não informado"}); res.status(400).json({msg: "Nome não informado"});
...@@ -64,7 +64,7 @@ app.put("/jogador/:id", (req: Request, res: express.Response) => { ...@@ -64,7 +64,7 @@ app.put("/jogador/:id", (req: Request, res: express.Response) => {
req.db.updateplayer(id, jogador); req.db.updateplayer(id, jogador);
res.json({msg: "O jogador foi atulaizado com sucesso."}); res.json({msg: "O jogador foi atulaizado com sucesso."});
}); });
// deleta um jogador do bd
app.delete("/jogador/:id", (req: Request, res: express.Response) => { app.delete("/jogador/:id", (req: Request, res: express.Response) => {
const id: number = Math.abs(parseInt(req.params.id, 10)); const id: number = Math.abs(parseInt(req.params.id, 10));
if (isNaN(id)){ if (isNaN(id)){
...@@ -186,10 +186,6 @@ app.get("/jogos-em-comum", (req: Request, res: express.Response) => { ...@@ -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) => { app.get("/adicionar/saldo", (req: Request, res: express.Response) => {
const saldo = 200; const saldo = 200;
req.db.readplayer(0).addcredit(saldo); req.db.readplayer(0).addcredit(saldo);
...@@ -276,5 +272,37 @@ app.delete("/jogo/:id", (req: Request, res: express.Response) => { ...@@ -276,5 +272,37 @@ app.delete("/jogo/:id", (req: Request, res: express.Response) => {
res.json({msg: "Sucesso em remover jogo"}); 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); app.listen(3000);
console.log("Server listening on port 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