Skip to content

AninhaPardini/Daily-Diet-Project

Repository files navigation

Daily Diet > Projeto Ignite

Este é um projeto baseado no desafio da Rocketseat de API NodeJs em Restful, onde o usuário pode logar e conferir sua dieta, registrar e remover uma dieta e conferir seu resumo.

Requisitos da aplicação

Requisitos Funcionais

[x] Deve ser possível criar um usuário
[x] Deve ser possível identificar o usuário entre as requisições
[x] Deve ser possível registrar uma refeição feita, com as seguintes informações:
As refeições devem ser relacionadas a um usuário.

  • Nome
  • Descrição
  • Data e Hora
  • Está dentro ou não da dieta

[x] Deve ser possível editar uma refeição, podendo alterar todos os dados acima
[x] Deve ser possível apagar uma refeição
[] Deve ser possírvel listar todas as refeições de um usuário
[] Deve ser possível visualizar uma única refeição
[] Deve ser possível recuperar as métricas de um usuário
[] Quantidade total de refeições registradas
[] Quantidade total de refeições dentro da dieta
[] Quantidade total de refeições fora da dieta
[] Melhor sequência de refeições dentro da dieta
[] O usuário só pode visualizar, editar e apagar as refeições o qual ele criou

Regras de Negócio

[] O usuário deve informar email e senha para criação
[] O usuário terá um uuid para busca de dados
[]
[]
[]
[]

Passo a passo (desde o ínicio)

Escrevi este passo a passo para fixar meu aprendizado.

Preparando ambiente

npm i:
📦 init -y
⬇️ fastify
⬇️ -D tsx
⬇️ -D typescript
⬇️ eslint @rocketseat/eslint-config -D
📦 npx tsc --init
⬇️ npm install knex sqlite3 @types/knex @types/sqlite3
⬇️ npm i -D zod

Scripts:
⚙️ "lint": "eslint src --ext .ts --fix"
⚙️ "dev": "tsx --watch src/server.ts "

Zod anotações

O zod não consegue tratar o date, então tem que fazer isso manualmente em registerFeed.

Forma de atualizar as feeds

Object.entries(updatedFields) converte o objeto updatedFields em uma matriz de pares chave/valor, onde cada par é representado por um array de duas posições: a primeira posição contém a chave e a segunda posição contém o valor correspondente.

filter(([_, value]) => value !== undefined) aplica uma função de filtro na matriz de pares chave/valor. Essa função recebe cada par como argumento e retorna true se o valor (segunda posição do array) não for undefined, indicando que o campo foi definido e deve ser atualizado. Os pares que não atendem a essa condição serão filtrados.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published