Skip to content

feat: Add To Like Plugin for favoriting posts via REST API#79

Open
LucasFelyp wants to merge 1 commit intoApiki:masterfrom
LucasFelyp:lucas-felype-fonseca-santos
Open

feat: Add To Like Plugin for favoriting posts via REST API#79
LucasFelyp wants to merge 1 commit intoApiki:masterfrom
LucasFelyp:lucas-felype-fonseca-santos

Conversation

@LucasFelyp
Copy link
Copy Markdown

Este Pull Request contém a implementação do desafio técnico proposto para desenvolvimento de um plugin WordPress responsável por permitir que usuários autenticados favoritem e desfavoritem posts por meio da REST API, com persistência dos dados em uma tabela personalizada no banco de dados.

O que foi feito

  • Criação do plugin "To Like Plugin"
  • Implementação do processo de criação da tabela personalizada na ativação do plugin
  • Implementação da remoção da tabela no processo de desinstalação
  • Desenvolvimento da lógica para adicionar, remover e listar posts favoritados
  • Criação de rotas REST para as operações de favoritar, desfavoritar e listar favoritos
  • Restrição de acesso às rotas para usuários autenticados
  • Validação de entrada dos dados recebidos pela API
  • Tratamento de erros para cenários como post inexistente, ausência de post_id e tentativa de duplicidade de favorito
  • Retorno padronizado das respostas da aplicação

Decisões técnicas

  • Utilização de uma tabela personalizada para persistir os favoritos dos usuários
  • Criação de uma chave única composta por user_id e post_id para evitar duplicidade de registros
  • Separação da lógica principal do plugin e das rotas REST em arquivos distintos para melhorar a organização do código
  • Centralização das operações de favoritos em métodos estáticos da classe principal do plugin
  • Uso da REST API nativa do WordPress para expor as funcionalidades do plugin
  • Validação de autenticação por meio de permission_callback, garantindo que apenas usuários logados possam acessar os endpoints

Estrutura

  • Arquivo principal do plugin: responsável pela configuração inicial, ativação, desativação, criação da tabela e métodos principais de manipulação dos favoritos
  • includes/rest-routes.php: responsável pelo registro das rotas REST e callbacks das operações
  • uninstall.php: responsável pela remoção da tabela personalizada ao desinstalar o plugin

Este projeto foi desenvolvido seguindo princípios de organização, legibilidade e separação de responsabilidades, visando facilitar a manutenção e a escalabilidade da solução.

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

Successfully merging this pull request may close these issues.

1 participant