Skip to content
This repository was archived by the owner on Oct 17, 2024. It is now read-only.
This repository was archived by the owner on Oct 17, 2024. It is now read-only.

feat/exposicoes-firebase #168

@Joao-Pedro-P-Holanda

Description

@Joao-Pedro-P-Holanda

Descrição

Adicionar métodos do firebase para exposições de itens do acervo

Tarefas

  • Criar arquivo utils\exposicoesFirebase.ts
  • Criar interface Exposicao
  • Atualizar as regras para os novos caminhos adicionados
  • Alterar getColecoes e getItensColecao para permitirem um parâmetro de query opcional com a lista de ids a serem buscados

interfaces/Exposicao

  • Adicionar campos
nome: string, 
descricao:? string, 
privado: boolean,
permanente:boolean, 
dataInicio?:Date,
dataFim?:Date,
colecoes: Map[string,string[]|ItemAcervo[]] //mapeando os itens ou a lista de ids para cada colecao,
dataCriacao: Date,
imagem: Imagem

exposicoesFirebase.ts

  • Criar classe ClientExposicaoFirebase
  • Criar classe ConverterExposicaoFirebase

Converter

Caso algum dos métodos não funcione com withConverter, é necessário chamá-los diretamente no método da classe Client

  • Adicionar método toFirestore que converte uma exposição para um formato válido, caso a classe Map do javascript não seja compatível com o Map do firebase converter para um formato válido, se não, apenas converter para um objeto sem o id
  • Adicionar método fromFirestore que converte o item acrescentando o id de acordo com o caminho e converte as colecoes para um Map, adiciona a data de criação como a data atual por padrão (não deve ser necessário preencher essa data no objeto)

Client

  • Adicionar método listExposicoes que retorna todas as exposições, sem carregar os itens
  • Adicionar método getExposicao que retorna uma exposição com o id especificado, caso withItems seja verdadeiro retorna também os itens completos com suas imagens
  • Adicionar método addExposicao que adiciona uma nova exposição
  • Adicionar método updateExposicao que altera as informações da exposição, e muda o caminho (em uma transação do firestore), caso a privacidade mude
  • Adicionar método deleteExposicao que remove uma exposição (itens e coleções não são alterados)

Issues Necessárias

Nenhuma

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type

Projects

Status

Concluído

Relationships

None yet

Development

No branches or pull requests

Issue actions