Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create a new feat: Link a coffee to a category #6

Open
3 tasks
antfconeto opened this issue Jan 11, 2025 · 0 comments
Open
3 tasks

Create a new feat: Link a coffee to a category #6

antfconeto opened this issue Jan 11, 2025 · 0 comments
Assignees

Comments

@antfconeto
Copy link


🎉 Nova Feature: Linkar Café a Categoria ☕️🔗

Objetivo:

Criar uma funcionalidade para vincular um café a uma categoria e permitir a busca de todas as categorias de um café, bem como todos os cafés de uma categoria. Isso será feito através de dois itens no DynamoDB, com as chaves específicas para facilitar as buscas.


📚 Acesso aos Itens:

  • linkCoffeeToCategory: Criará 2 itens no DynamoDB com as seguintes informações:

    1. Item 1:

      • PK: COFFEE#ID
      • SK: CATEGORY#ID
      • DATA: CATEGORY.DATA
      • Objetivo: Permitir buscar todas as categorias associadas a um café.
    2. Item 2:

      • PK: CATEGORY#ID
      • SK: COFFEE#ID
      • DATA: COFFEE.DATA
      • Objetivo: Permitir buscar todos os cafés associados a uma categoria.

🛠️ Implementação:

  1. Métodos no category-dao e coffee-dao:

    • Criar dois métodos:
      • Um em category-dao para adicionar o item relacionado à categoria.
      • Um em coffee-dao para adicionar o item relacionado ao café.
  2. Método Central no coffee-manager:

    • Criar o método linkCoffeeToCategory no serviço coffee-manager.
    • Esse método será responsável por chamar os métodos criados em category-dao e coffee-dao para gerar os dois itens no DynamoDB.
    • Parâmetros:
      • categoryId: ID da categoria a ser associada ao café.
      • coffeeId: ID do café a ser associado à categoria.
    • O linkCoffeeToCategory irá buscar os dados correspondentes no DynamoDB e passá-los para os DAOs para criar os itens necessários.

🚀 Tarefas:

1. Criação da Lambda:

  • Criar uma função Lambda que irá invocar o método linkCoffeeToCategory no coffee-manager.

    • A Lambda será responsável por receber as requisições e chamar o método central.
    • Parâmetros: A Lambda deve receber categoryId e coffeeId como entrada.
    • Configuração: Definir as permissões adequadas para a Lambda acessar os serviços necessários (ex: DynamoDB, etc).
  • Passos:

    1. Criar a Lambda.
    2. Configurar as permissões de acesso aos recursos necessários (ex: DynamoDB).
    3. Testar a Lambda para garantir que ela está chamando corretamente o coffee-manager.

2. Criação do Endpoint AppSync:

  • Criar um endpoint AppSync que invoca a Lambda criada.

    • O AppSync será responsável por expor o serviço via GraphQL.
    • Operação: Criar uma mutation, por exemplo: linkCoffeeToCategory(categoryId: ID!, coffeeId: ID!): Boolean!
    • Respostas:
      • Sucesso: Retornar um valor booleano true caso o vínculo seja feito com sucesso.
      • Erro: Retornar um erro claro, caso algo dê errado durante o processo.
  • Passos:

    1. Criar o schema GraphQL no AppSync com a operação linkCoffeeToCategory.
    2. Configurar a integração do AppSync com a Lambda.
    3. Testar a mutation do AppSync com diferentes cenários (sucesso/erro).

3. Métodos no category-dao e coffee-dao:

  • Criar dois métodos:
    • Um em category-dao para adicionar o item relacionado à categoria.
    • Um em coffee-dao para adicionar o item relacionado ao café.
  • Testar a inserção de dados no DynamoDB.

4. Teste de Integração:

  • Testar a integração entre a Lambda, coffee-manager, category-dao, coffee-dao, e o AppSync para garantir que todos os dados estão sendo manipulados corretamente.
  • Validar se, ao chamar a mutation no AppSync, os itens estão sendo criados no DynamoDB e as consultas funcionam corretamente.

🔑 Fluxo de Dados:

  1. Recebimento dos IDs: O método linkCoffeeToCategory recebe os parâmetros categoryId e coffeeId.
  2. Chamada da Lambda: A Lambda é acionada via AppSync e invoca o método linkCoffeeToCategory no coffee-manager.
  3. Busca e Criação de Itens:
    • O coffee-manager chama os métodos no category-dao e coffee-dao.
    • Para cada um, cria-se um item no DynamoDB:
      • Um associando o café à categoria.
      • O outro associando a categoria ao café.
  4. Resultado: Os dois itens são criados no DynamoDB, possibilitando as consultas de todas as categorias de um café e todos os cafés de uma categoria.

📅 Data Estimada para Conclusão: 4 dias


@antfconeto antfconeto assigned antfconeto and piedro404 and unassigned antfconeto Jan 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants