Commit 1b7347a3 authored by Lucas Fernandes de Oliveira's avatar Lucas Fernandes de Oliveira

Merge branch 'issue/12' into 'develop'

Issue #12: Adicionada rota para ler jogador

Closes #12

See merge request !14
parents 9aa9d70f d08f4e8e
Pipeline #22167 passed with stage
in 1 minute and 7 seconds
......@@ -8,14 +8,18 @@ export class DBHandler {
private compras: Compra[];
constructor() {
this.jogadores = [
new Jogador("Player1", [], [], 0.0)
, new Jogador("Player2", [], [], 100.0)
];
this.jogos = [];
this.jogadores = [
new Jogador("Player1", [], [], 0.0)
, new Jogador("Player2", [], [], 100.0)
new Jogador(
"Player1"
, [
new Jogo("Overcooked", "fracasso", "fracasso", new Date("2010-01-01"), 200)
, new Jogo("Tera", "FracassoXD", "FracassoXD", new Date("2010-01-01"), 0)
]
, [
new Jogador("Player2", [], [], 100)
]
, 110
)
, new Jogador("Player2", [], [], 100)
];
this.jogos = [
new Jogo("Overcooked", "fracasso", "fracasso", new Date("2010-01-01"), 200),
......
......@@ -85,4 +85,7 @@ export class Jogador {
public balance(): string {
return "Balanço da carteira de " + this.name + ": " + this.carteira + "R$";
}
public getAmigos(): string[]{
return this.amigos;
}
}
......@@ -302,7 +302,7 @@ describe("Arquivo main.ts", () => {
// Testando o sucesso na atualização do jogador com app.put("/jogador/:id")
it("Atualiza um jogador", (done) => {
request(server)
.put("/jogador/0")
.put("/jogador/1")
.send({nome: "Diavolo"})
.expect(200)
.expect((res: any) => {
......@@ -313,6 +313,7 @@ describe("Arquivo main.ts", () => {
})
.end(done);
});
// Testando o erro na atualização do jogador com app.put("/jogador/:id")
it("Fracassa em atualizar jogador por parâmetro inválido", (done) => {
request(server)
......@@ -406,4 +407,68 @@ describe("Arquivo main.ts", () => {
})
.end(done);
});
// Testa falhas no caminho de listar falhas na listagem de um jogador em app.get("/jogador/:id")
it("Fracassa em ler jogador por id inválido", (done) => {
request(server)
.get("/jogador/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("Busca inapropriada");
})
.end(done);
});
// Testa falhas no caminho de listar falhas na listagem de um jogador em app.get("/jogador/:id")
it("Fracassa em ler jogador por não estar no banco", (done) => {
request(server)
.get("/jogador/34234")
.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 jogador não existe no banco");
})
.end(done);
});
// Testa o caminho de app.get("/jogador/:id") para retornar todas as infos do jogador.
it("Infos do jogador", (done) => {
request(server)
.get("/jogador/0")
.expect(200)
.expect((res: any) => {
expect(res.body).to.be.an("object");
expect(res.body).to.have.property("name");
expect(res.body.name).to.be.an("string");
expect(res.body.name).to.be.eql("Player1");
const esperadoJogos = ["Overcooked" , "Tera"];
expect(res.body).to.have.property("jogos");
expect(res.body.jogos).to.be.an("array");
expect(res.body.jogos).to.have.length(esperadoJogos.length);
for (let i = 0; i < esperadoJogos.length; ++i) {
expect(res.body.jogos[i]).to.be.eql(esperadoJogos[i]);
}
const esperadoAmigos = ["Player2"];
expect(res.body).to.have.property("amigos");
expect(res.body.amigos).to.be.an("array");
expect(res.body.amigos).to.have.length(esperadoAmigos.length);
for (let i = 0; i < esperadoAmigos.length; ++i) {
expect(res.body.amigos[i]).to.be.eql(esperadoAmigos[i]);
}
expect(res.body).to.have.property("carteira");
expect(res.body.carteira).to.be.an("number");
expect(res.body.carteira).to.be.eql(110);
})
.end(done);
});
});
......@@ -59,7 +59,8 @@ app.put("/jogador/:id", (req: Request, res: express.Response) => {
res.status(400).json({msg: "O jogador não existe no banco"});
return;
}
const jogador: Jogador = new Jogador(req.body.name, [], [], 0);
const jogador: Jogador = new Jogador(req.body.nome, [], [], 0);
req.db.updateplayer(id, jogador);
res.json({msg: "O jogador foi atulaizado com sucesso."});
});
......@@ -113,13 +114,26 @@ app.get("/", (req: Request, res: express.Response) => {
res.json({Acesse: "/adicionar-amigos ou /compra"});
});
// Retorna os atributos do jogador indexado pelo /:id com o método get
app.get("/jogador/: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("jogadores").length){
res.status(400).json({msg: "O jogador não existe no banco"});
return;
}
res.json(req.db.readplayer(id).writeinfo());
});
app.get("/perfil/Robin", (req: Request, res: express.Response) => {
res.json(req.db.readplayer(1).writeinfo());
});
app.get("/perfil/:nome", (req: Request, res: express.Response) => {
const ID: number = req.db.list("jogadores").indexOf(req.params.nome);
console.log(ID);
res.json(req.db.readplayer(ID).writeinfo());
});
......@@ -179,7 +193,6 @@ app.get("/adicionar/amigo", (req: Request, res: express.Response) => {
app.get("/adicionar/saldo", (req: Request, res: express.Response) => {
const saldo = 200;
req.db.readplayer(0).addcredit(saldo);
console.log(req.db.readplayer(0).getmoney());
res.json("O jogador " + req.db.readplayer(0).getName() + " adicionou " + saldo + "R$");
});
......
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