From a1fe3aad810cf2c60e77c3427dad9787c8d0c3e1 Mon Sep 17 00:00:00 2001 From: Gustavo Barbosa Date: Sun, 27 Apr 2025 16:02:15 -0300 Subject: [PATCH] =?UTF-8?q?Declarando=20tipos=20e=20servi=C3=A7o=20mock=20?= =?UTF-8?q?de=20jogos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/serviço/jogos.ts | 37 +++++++++++++++++++++++++++++++++++++ src/types.ts | 9 +++++++++ 2 files changed, 46 insertions(+) create mode 100644 src/serviço/jogos.ts create mode 100644 src/types.ts diff --git a/src/serviço/jogos.ts b/src/serviço/jogos.ts new file mode 100644 index 0000000..646ae76 --- /dev/null +++ b/src/serviço/jogos.ts @@ -0,0 +1,37 @@ +import { Jogo } from "@/types"; +import { randomUUID, UUID } from "crypto"; + +const jogos: Jogo[] = [ + { + id: "35f008ee-6828-40dc-b58e-136b9441db19", + nome: "Jogo ai", + estado: "NOVO", + }, + { + id: "f9302f75-b23b-4889-97d8-4e54afd28668", + nome: "Outro jogo", + estado: "JOGUEI", + }, +]; + +export async function buscaJogos(): Promise { + return [...jogos]; +} + +export async function criaJogo(jogo: Jogo) { + jogo.id = randomUUID(); + jogos.push(jogo); +} + +export async function atualizaJogo(idJogo: UUID, jogo: Jogo) { + const index = jogos.findIndex((j) => j.id === idJogo); + if (index === -1) return; + jogos[index] = jogo; +} + +export async function removeJogo(idJogo?: UUID, jogo?: Jogo) { + idJogo = idJogo || jogo?.id; + const index = jogos.findIndex((j) => j.id === idJogo); + if (index === -1) return; + jogos.splice(index, 1); +} diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 0000000..c493fb5 --- /dev/null +++ b/src/types.ts @@ -0,0 +1,9 @@ +import { UUID } from "crypto"; + +export type Jogo = { + id: UUID, + nome: string, + estado: Estado +}; + +export type Estado = 'NOVO' | 'JOGUEI' | 'SATISFEITO'; \ No newline at end of file