@@ -6,20 +6,19 @@ Exemplo de Aplicação Web que funciona como Rede social.
- Usuário
***Criar conta** - Possível criar conta utilizando email e senha
***Fazer Login** - Antes de utilizar qualquer rota da api é necessário autenticar
***Deletar conta** - Caso deseje, é possível deletar a sua própria conta (Deletar a conta não deleta postagens)
***Deletar conta** - Caso deseje, é possível deletar a sua própria conta (Deletar a conta não deleta discussões nem comentários realizados)
***Pesquisar usuários** - Pesquise por uma lista de usuário pelo nome ou um usuário pelo id
***Atualizar perfil** - Atualize seu nome e biografia, além da foto de perfil e capa
-Seguidor
***Seguir** - Siga ou Deixe de seguir um usuário
***Listar Seguidores** - Liste os seguidores ou os seguindo de um usuário
***Contar Seguidores** - Conte o número de seguidores e seguindo de um usuário
-Postagem
***Pesquisar postagens** - É possível pesquisar postagens por vários filtros, pelo id, mais recentes, por palavras no conteudo, pelos hashtags, respostas de uma postagem, postagens de um usuário, respostas de um usuário.
***Realizar postagem** - Envie texto e/ou até 8 imagens em sua postagem. Também pode fazer uma postagem como resposta à outra
***Deletar postagem** - Deletar uma postagem irá apagar todo seu conteúdo e imagens, porém continuará na listagem caso seja uma resposta a outra postagem
-Discussão
***Pesquisar discussões** - É possível pesquisar discussões, pelo id, por palavras no título, pelos assuntos e discussões de um usuário
***Criar discussão** - Permite criar uma nova discussão, que possui um título e um comentário inicial. É possível editar a discussão depois.
***Deletar discussão** - Deletar uma discussão irá apagar ocultar seu título, porém seus comentários continuam, permitindo ainda criar novos comentários
-Comentário
***Pesquisar comentário** - É possível pesquisar comentários pelo id, por palavras no conteúdo, por usuários citados, e por usuário
***Realizar comentário** - Envie texto e até 8 imagens em seu comentário. Também pode citar outro comentário. É possível editar o comentário.
***Deletar comentário** - Deletar um comentário irá ocultar seu conteúdo e imagens, porém continuará listado como um comentário da discussão
- Curtir
***Curtir postagens** - Curta/Descurta postagens
***Listar Curtidas** - Liste as postagens curtidas por você
Deve informar o **nome**, **email** e **senha** do usuário a ser criado
...
...
@@ -110,8 +109,8 @@ um único resultado: João da Silva
Para mais informações, veja a documentação sobre o índice de texto do mongodb. Veja: [https://www.mongodb.com/docs/manual/core/index-text/](https://www.mongodb.com/docs/manual/core/index-text/)
### Pesquisa por hashtag
No caso de postagens onde é possível pesquisar hashtags, outro procedimento é realizado: no momento que a postagem é criada, as hashtags são encontradas, processadas pelo [any-ascii](https://github.com/anyascii/anyascii) para remover todos os caracteres especiais e acentos e então convertida para minúsculas antes de finalmente serem salvas no registro da postagem como um array no campo **hashtags**. Ao pesquisar por com hashtag, a pesquisa ignora acentos, maiúsculas e minúsculas pois a sua pesquisa será tratada da mesma forma antes de realizar uma busca por que postagens possuem no array de hashtags esta exata hashtag.
### Pesquisa por Assunto/Menções
No caso de discussões onde é possível pesquisar assuntos e comentários pesquisa por menções, outro procedimento é realizado: no momento que a postagem é criada, as assuntos são encontradas, processadas pelo [any-ascii](https://github.com/anyascii/anyascii) para remover todos os caracteres especiais e acentos e então convertida para minúsculas antes de finalmente serem salvas no registro da postagem como um array no campo **assuntos**. Ao pesquisar por com assunto, a pesquisa ignora acentos, maiúsculas e minúsculas pois a sua pesquisa será tratada da mesma forma antes de realizar uma busca por que postagens possuem no array de assuntos esta exata assunto.
## Deletar Elementos
Nem todas as rotas que deletam *realmente* deletam por completo o que foi solicitado.
...
...
@@ -123,19 +122,23 @@ Nem todas as rotas que deletam *realmente* deletam por completo o que foi solici
Será deletado a sua entrada do usuário como também:
- As imagens de capa e perfil
- Removido da listagem de seguindo de todos que seguem você
- Removido da listagem de seguidores de todos que você segue
Porém **não serão removidos** as suas postagens/respostas. Apenas ficará o autor da postagem como [deletado]
Porém **não serão removidos** as suas discussões/comentários. Apenas ficará o autor como [deletado]
Também as postagens que você curtiu continuarão com a sua curtida registrada
-**Deletar Postagem**
Também as postagens que você positivou/negativou continuarão com a sua curtida registrada
-**Editar Comentário**
Deletar uma postagem irá apagar todo seu conteúdo e imagens, porém continuará na listagem caso seja uma resposta a outra postagem.
Para todos os efeitos, o comentário foi editado. será possível saber que o comentário foi editado e qual a data da última edição.
Uma postagem deletada não é exibida mais na pesquisa de postagens do usuário nem na página 'For You', porém caso o usuário possua o link da postagem ainda será possível visualizar que ela existe e que usuário foi o autor, porém sem conteúdo nem as imagens( Não é possível acessar as imagens nem mesmo com o link original pois estarão deletadas). Respostas a esta postagem porém irão ser visíveis e podem ser encontradas na pesquisa de respostas de um usuário.
Internamente, um administrador ainda pode ter acesso a todo o histórico de edições de um comentário.
-**Deletar Comentário**
Deletar um Comentário é como uma edição que remove seu conteúdo e imagens, além de ser marcado como **deletado**.
Um comentário deletado não é exibido mais na pesquisa de comentários do usuário, porém continua na listagem da discussão. Ainda será possível visualizar que ele existe e que usuário foi o autor, porém sem conteúdo nem as imagens. (Comentários que citaram antes de ser deletado continuarão com o conteúdo antigo).
Deletar a postagem que é resposta a outra não modifica a contagem de respostas dela.
Deletar o comentário não modifica a contagem de comentários da postagem.
# Instalação
Para executar esta API localmente, é possível utilizar **Docker** ou então executando via node direto.