Repository navigation
Integração com MongoDB e Mongoose
Banco de Dados MongoDB: Agora estamos utilizando o MongoDB como nosso principal sistema de persistência. O banco de dados foi configurado no MongoDB Atlas com as coleções carts, messages, e products.
Modelos Mongoose: Os esquemas do MongoDB foram definidos utilizando Mongoose, organizados na pasta dao/models.
Atualizações na Persistência
Gestão de Produtos: Implementamos filtros, paginação e ordenação na consulta de produtos. Agora você pode buscar produtos por categoria ou disponibilidade e ordenar por preço. A resposta da API inclui informações sobre a paginação e links diretos para páginas anteriores e seguintes.
Gestão de Carrinhos: Adicionamos a capacidade de atualizar carrinhos e produtos dentro dos carrinhos com novos endpoints. O carrinho agora usa IDs de produtos referenciados e a função populate para obter detalhes completos dos produtos.
Novos Endpoints e Funcionalidades
Produtos:
GET /products: Suporte para parâmetros de consulta limit, page, sort e query para buscar e ordenar produtos de maneira eficiente.
Carrinhos:
PUT /carts/:cid: Atualiza o carrinho com uma matriz de produtos.
PUT /carts/
/products/:pid: Atualiza a quantidade de um produto específico no carrinho.
DELETE /carts/:cid: Remove todos os produtos do carrinho.
Novas Views em Handlebars
Chat: Implementamos uma nova visualização em chat.handlebars que permite o envio e recebimento de mensagens em tempo real, com as mensagens armazenadas na coleção messages do MongoDB.
Produtos: A visualização de produtos agora inclui uma página de listagem com paginação e uma visualização detalhada para cada produto, além de um botão para adicionar produtos ao carrinho.
Carrinho: A nova visualização em /carts/:cid exibe os produtos de um carrinho específico e permite a atualização ou remoção de produtos.
Função de Adicionar ao Carrinho
Implementação de Função JavaScript: Adicionamos uma função para adicionar produtos ao carrinho diretamente na interface do usuário. A função agora obtém o ID do carrinho do armazenamento local ou de uma chamada ao backend e faz a atualização via API.
Correções e Melhorias
Correções Gerais: Diversas melhorias e correções foram realizadas para garantir a estabilidade e a performance do sistema.