introduçao ao post

parent 1ef9f836
......@@ -20,6 +20,7 @@
"dependencies": {
"@types/express": "^4.17.1",
"@types/pg": "^7.11.2",
"body-parser": "^1.19.0",
"express": "^4.17.1",
"pg": "^7.12.1",
"ts-node": "^8.4.1",
......
......@@ -20,7 +20,4 @@ export class Compra {
return "O jogador " + this.buyer.getname() + " comprou o jogo " + this.game.getname() + " para o jogador " + this.owner.getname() + " Preço: " + this.game.getprice() + "R$" + " Data: " + this.date + ".";
}
}
public buyprice(): number {
return (this.buyer.getmoney() - this.game.getprice());
}
}
import { Compra } from "./compra";
import { DBHandler } from "./DBHandler";
import { Jogo } from "./jogo";
export class Jogador {
......@@ -21,7 +19,7 @@ export class Jogador {
}
public writeinfo(): string {
return "name: " + this.name + "\n carteira: " + this.carteira + "\n jogos: " + this.jogos + "\n amigos: " + this.amigos + ".";
return "nome: " + this.name + " carteira: " + this.carteira + "R$" + " jogos: " + this.jogos + " amigos: " + this.amigos + ".";
}
public getname(): string{
return this.name;
......@@ -29,38 +27,50 @@ export class Jogador {
public getmoney(): number {
return this.carteira;
}
public buy(jogo: Jogo, jogador: Jogador): boolean {
public buy(jogo: Jogo, jogador: Jogador): number {
if (this.carteira < jogo.getprice()) {
return false;
return 2;
}
return true;
}
public addfriend(jogador: Jogador) {
let controle: boolean = false;
for (let i = 0; i < this.amigos.length && controle !== true; ++i) {
if (this.amigos[i] === jogador.getname()) {
controle = true;
if (this.name === jogador.getname()) {
if (this.jogos.some((value: string) => {
return value === jogo.getname();
})) {
return 4;
}
return 0;
} else {
if (jogador.library().some((value: string) => {
return value === jogo.getname();
})) {
return 3;
}
return 1;
}
if (!controle) {
this.amigos.push(jogador.getname());
return "Jogador adicionado com sucesso.";
}
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 "Este jogador já foi adicionado.";
this.amigos.push(jogador.getname());
return "Jogador adicionado com sucesso.";
}
public library(): string[] {
return this.jogos;
}
public addcredit(amount: number) {
public addcredit(amount: number): number {
return this.carteira = this.carteira + amount;
}
public newmoney(amout: number) {
public newmoney(amout: number): number {
return this.carteira = this.carteira - amout;
}
public addgame(game: Jogo) {
return this.jogos.push(game.getname());
}
public balance(): string {
return "Balanço final da carteira de " + this.name + ": " + this.carteira + "R$";
return "Balanço da carteira de " + this.name + ": " + this.carteira + "R$";
}
}
......@@ -14,7 +14,7 @@ export class Jogo {
}
public writeinfo(): string {
return "nome: " + this.name + "\n preço: " + this.price + "\n desenvolvedora: " + this.developer + "\n produtora: " + this.producer + "\n lançamento: " + this.release+ ".";
return "nome: " + this.name + " preço: " + this.price + "\n desenvolvedora: " + this.developer + "\n produtora: " + this.producer + "\n lançamento: " + this.release+ ".";
}
public getname(): string {
return this.name;
......
#!/usr/bin/env node
import * as express from "express";
import * as bodyParser from "body-parser";
import { Compra } from "./compra";
import { DBHandler } from "./DBHandler";
import { Jogador } from "./jogador";
......@@ -21,23 +22,36 @@ function dbhMW(): Middleware {
const app = express();
app.use("/", bodyParser.json());
app.use("/", dbhMW());
app.get("/", (req: Request, res: express.Response) => {
const jogo: Jogo = new Jogo("Portal 2", "Valve", "Valve", new Date("2012-01-01"), 10);
console.log(jogo.writeinfo());
req.db.creategame(jogo);
console.log(req.db.list("jogo"));
const jogador1: Jogador = new Jogador("Batman", [], [], 0);
const jogo1: Jogo = new Jogo("Portal 2", "Valve", "Valve", new Date("2012-01-01"), 25);
const jogo2: Jogo = new Jogo("The Witcher 3", "CD Projekt RED", "CD Projekt RED", new Date("2016-01-01"), 10);
req.db.creategame(jogo1);
req.db.creategame(jogo2);
const jogador1: Jogador = new Jogador("Batman", [], [], 110);
req.db.createplayer(jogador1);
const jogador2: Jogador = new Jogador("Robin", [], [], 0);
const jogador2: Jogador = new Jogador("Robin", [jogo2], [jogador1], 0);
req.db.createplayer(jogador2);
req.db.readplayer(1).addcredit(100);
res.json({Acesse: "/adicionar-amigos ou /compra"});
});
app.get("/perfil/Robin", (req: Request, res: express.Response) => {
res.json(req.db.readplayer(1).writeinfo());
});
app.get("/perfil/Batman", (req: Request, res: express.Response) => {
res.json(req.db.readplayer(0).writeinfo());
});
app.get("/catalogo", (req: Request, res: express.Response) => {
res.json(req.db.list("jogos"));
});
app.get("/jogadores", (req: Request, res: express.Response) => {
res.json(req.db.list("jogadores"));
});
......@@ -47,15 +61,31 @@ app.get("/compras", (req: Request, res: express.Response) => {
});
app.get("/comprar", (req: Request, res: express.Response) => {
if (!req.db.readplayer(0).buy(req.db.readgame(0), req.db.readplayer(0))) {
res.json("Saldo insuficiente. Adicione mais dinheiro a sua conta.");
} else {
if (req.db.readplayer(0).buy(req.db.readgame(0), req.db.readplayer(0)) === 0){
const compra = new Compra(req.db.readplayer(0), req.db.readgame(0), new Date("2019-01-01"), req.db.readplayer(0));
console.log(compra.writeinfo());
req.db.readplayer(0).newmoney(compra.buyprice());
req.db.readplayer(0).newmoney(req.db.readgame(0).getprice());
req.db.readplayer(0).addgame(req.db.readgame(0));
req.db.createbuy(compra);
res.json(req.db.readbuy(0).writeinfo() + req.db.readplayer(0).balance());
} else if (req.db.readplayer(0).buy(req.db.readgame(0), req.db.readplayer(0)) === 2) {
res.json("Saldo insuficiente. Adicione mais dinheiro a sua conta.");
} else if (req.db.readplayer(0).buy(req.db.readgame(0), req.db.readplayer(0)) === 4) {
res.json("Você já possui este jogo.");
}
});
app.get("/comprar/amigo", (req: Request, res: express.Response) => {
if (req.db.readplayer(0).buy(req.db.readgame(0), req.db.readplayer(1)) === 2) {
res.json("Saldo insuficiente. Adicione mais dinheiro a sua conta.");
}
if (req.db.readplayer(0).buy(req.db.readgame(0), req.db.readplayer(1)) === 1) {
const compra = new Compra(req.db.readplayer(0), req.db.readgame(0), new Date("2019-01-01"), req.db.readplayer(1));
req.db.readplayer(0).newmoney(req.db.readgame(0).getprice());
req.db.readplayer(0).addgame(req.db.readgame(1));
req.db.createbuy(compra);
res.json(req.db.readbuy(0).writeinfo() + req.db.readplayer(0).balance());
} else if (req.db.readplayer(0).buy(req.db.readgame(0), req.db.readplayer(1)) === 3) {
res.json("O jogador " + req.db.readplayer(1).getname() + " já possui este jogo.");
}
});
......@@ -68,15 +98,23 @@ app.get("/jogos-em-comum", (req: Request, res: express.Response) => {
});
app.get("/adicionar-amigo", (req: Request, res: express.Response) => {
req.db.readplayer(0).addfriend(req.db.readplayer(1));
res.json("O jogador " + req.db.readplayer(0).getname() + " adicionou " + req.db.readplayer(1).getname() + ".");
res.json(req.db.readplayer(0).addfriend(req.db.readplayer(1)));
});
app.get("/adicionar-saldo", (req: Request, res: express.Response) => {
const saldo = 20;
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$");
});
app.get("/testando/:batata", (req: Request, res: express.Response) => {
res.json({hello: req.params.batata});
});
app.post("/testando/:batata", (req: Request, res: express.Response) => {
res.json(req.body);
});
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