Engenharia-de-Software-UFRPE / lanterna-verde

Lanterna verde é um sistema de avaliação do nível de práticas de greenwashing de uma organização ou produto.
2 stars 5 forks source link

[Feature] Notícias #97

Closed ronaldo26rodrigues closed 2 years ago

ronaldo26rodrigues commented 2 years ago

Um dos requisitos iniciais do projeto foi um mural de notícias, onde as empresas poderiam publicar manchetes mostrando ações e campanhas sobre Greenwashing e meio ambiente para que os clientes e qualquer um que acesse nosso portal possam conhecer melhor as empresas que recebem nossas análises e acompanharem as ações em prol da sustentabilidade. Esta Pull Request implementa as rotas e funções da API que gerenciam estas notícias

Implementação

O Model News

Rotas da API

partes dinâmicas da URL ficam entre <>

Como Testar

Pacote Postman com algumas requisições configuradas

Notas do desenvolvedor

Esta feature ainda pode evoluir muito mais, podendo encontrar uma forma de adicionar imagens e outros tipos de estilização para o corpo da notícia ficar ainda mais rico.

Também é necessário que o front-end possa direcionar corretamente as páginas de detalhes da notícia, já que os links para as noticias da api são dinâmicos, o front também deve acompanhar esta função, já que facilita para quem está recebendo a notícia e ajuda na descoberta em mecanismos de busca

ronaldo26rodrigues commented 2 years ago

Massa, @SteffanoP, quando fiz essa solução cheguei a pensar em quem teria essa responsabilidade, e acabei deixando por conta da empresa, mas como ainda temos esse questionamento, modifiquei para que tanto empresa quanto administrador pudessem publicar, nesse caso, se a empresa faz a requisição, a notícia é associada a ela, se o administrador faz, ele pode ou não fornecer o ID da empresa.

ronaldo26rodrigues commented 2 years ago

Também percebi que um método não pode ser acessado por mais de um tipo de usuário, então não consegui liberar o acesso para empresa e administrador ao mesmo tempo usando os decorators, e assim o método não funciona 100% como planejado se estiver restringindo o acesso. Imagino que isso seja uma coisa a ser verificada, acho que vale uma issue ;)