Apiki / wordpress-back-end-challenge

Desafio para candidatos a back-end de WordPress.
4 stars 55 forks source link

Plugin Rest Favorite #32

Open WernerMaxBohling opened 2 years ago

WernerMaxBohling commented 2 years ago

Prezado(a),

Segue plugin para favoritar e desfavoritar um Post. Criei o plugin com apenas 3 arquivos para facilitar a compreensão. São eles: 1) apiki-rest-favorite.php Classe onde no construtor criamos e excluímos a tabela [prefixo]-favorite. A tabela é simples e contem o postID e o userID, alem da sua própria chave.

WhatsApp Image 2022-09-15 at 14 35 19

Na classe, também inicializamos os actions e os filters. Para a interface cliente, inseri na lista de Posts um checkbox para favoritar.

WhatsApp Image 2022-09-15 at 14 39 58

2) apiki-rest-favorite-script.js é onde o Jquery escuta os eventos do checkbox, e gera a chamada REST (Get, Post, Delete) para as rotas, passando o nonce no cabeçalho e o usuário por JSON.

3) apiki-rest-favorite-route-controller.js Classe que define o namespace, registra as 3 rotas. 3.1) GET tem a rota /apikirestfavorite/v1/posts/postid/userid 3.2) POST e DELETE tem a rota /apikirestfavorite/v1/posts/postid, ambas com controle do usuário por nonce

Caso tente fazer a chamada por um cliente REST (insomnia, postman...) é gerado um status 401 - usuário não autorizado ou não logado.

Como a especificação do desafio era um tanto abrangente, penso que esse plugin atender a prova de conceito e funcionalidade dentro do que foi proposto.

Att, Werner Max