Acessar artigos

1. Introdução

Essa API permite a criação de novos projetos, bem como seu acompanhamento e modificação.

RecursosServiçosEndpoints
Criar ProjetoCria um novo projeto/projects/
Acessar um ProjetoAcesso a um projeto do usuário/projects/
Acessar Todos os ProjetosAcesso a todos os projetos
criados pelo usuário
/projects/
Acessar Projetos AutorizadosAcesso a projetos que o usuário
possui autorização
/projects/
Atualizar ProjetoModificação do projeto/projects/{id}
Deletar ProjetoDeleção do projeto/projects/{id}
Mandar EmailEnvio de email/emails/send
Acessar UsuáriosAcesso a todos usuários/projects/{id}/users
Acessar Projetos e Quantidade de
Usuários
Acesso a projetos e usuários/projects/all?users=yes
Acessar Projetos e Quantidade de
Atividades
Acesso a projetos e atividades/projects/{id}?activities=yes
Acessar Projetos e Quantidades de
Usuários e Atividades
Acesso a projetos, usuários e
atividades
/projects/{id}?
users=yes&activities=yes
Enviar AvatarEnvio de imagem/files/{id}/avatar
Deletar AvatarDeleção de imagem/files/{id}/avatar
Remover UsuáriosRemoção de usuário/projects/{id}/users/{user_id}
Sair de ProjetoRemoção de usuário do projeto/projects/{id}/users/leave
Verificar Disponibilidade de NomeVerificação de repetição de nome/projects/disponible?name=
{name_project}
Ativar o EnriquecimentoMudança na propriedade de
enriquecimento
/projects/{id}/changeenable-enrichment
Ativar o Auto Social PointMudança na propriedade de auto social pointprojects/{id}/change-autosocial-point
Mudar DonoMudança no dono do projeto
(project owner)
/projects/{id}/change-owne2r

2. URL Base

Para os usuários, as URLs base é:

api.tagcenter.io

3. Criar Projeto

O usuário fornece dados como o nome, título, responsável, descrição e timezone. A função create() recebe como parâmetro CreateProjectDto e delega a criação do projeto para a função projectsUsersRepository.create(), com os dados fornecidos pelo usuário. Então salva o projeto chamando a função projectsRepository.save(). Ao fim, retorna o projeto salvo e o nome do responsável.

Rota utilizada:

Post /projects

Body:

{
name: string,
title: string,
description: string,
timezone: string
}

Exemplo:

{
"name": "enriquecimento-leads",
"title": "Enriquecimento de Leads",
"description": "Projeto para enriquecer os leads",
"timezone": "America/Sao_Paulo"
}

Retorno do exemplo:

{
"id": "141",
"name": "enriquecimento-leads",
"title": "Enriquecimento de Leads",
"owner_id": "155",
"created_at": "2022-05-03T18:12:04.460Z",
"updated_at": "2022-05-03T18:12:04.460Z",
"last_access": "2022-05-03T18:12:05.606Z",
"billing_accounts_id": null,
"default_channel": null,
"description": "Projeto para enriquecer os leads",
"avatar_id": null,
"active": true,
"is_deleted": false,
"project_activities": "0",
"users": "2",
"user_activities": "0",
"user_id": "155",
"role_type": "admin",
"avatar_url": null
}

ChaveTipoDescrição
idstringIdentificador do projeto
emailstringEmail de cadastro do usuário
titlestringTítulo do projeto
owner_idstringIdentificado do responsável
created_atstringData de criação
updated_atstringData da atualização
last_accessstringData do último acesso
billing_accounts_idstringInformação sobre pagamento
default_channelstringCanal padrão
descriptionstringDescrição do projeto
avatar_idstringId da imagem de avatar do projeto
activebooleanUsuário ativo ou não
is_deletedbooleanUsuário deletado ou não
project_activitiesstringAtividades do projeto
usersstringQuantidade de usuário
user_activitiesstringAtividades do usuário
user_idstringIdentificador do usuário
role_typestringFunção do usuário
avatar_urstringUrl da imagem do avatar do projeto

4. Acessar Projeto

A função getByIdToGuard() recebe como parâmetro o número de id do projeto delega a busca para para a
função projectsRepository.findOne(). Retorna o projeto, com detalhes sobre owner e user, ou erro 152.

Rota utilizada:

Get /projects/{id}

Exemplo:

Get /projects/141

Retorno do exemplo:

{
"id": "141",
"name": "enriquecimento-leads",
"title": "Enriquecimento de Leads",
"description": "Projeto para enriquecer os leads",
"active": true,
"timezone": "America/Sao_Paulo",
"enrichment_enable": false,
"is_deleted": false,
"auto_social_point": false,
"avatar": null,
"owner": {
"id": "155",
"email": "teste@tagchat.com.br",
"phoneNumber": "5517991869702",
"name": "SISTEMA TAGCENTER",
"active": false,
"isRegisteredWithGoogle": false,
"isTwoFactorAuthenticationEnabled": false,
"isEmailConfirmed": false,
"isPhoneNumberConfirmed": false,
"stripe_customer_id": null,
"user_language": "pt-BR",
"integration_id": null,
"address": null,
"avatar": null
},
"users": [
{
"role_type": "admin",
"id": "155",
"email": "teste@tagchat.com.br",
"phoneNumber": "5517991869702",
"name": "SISTEMA TAGCENTER",
"active": false
}
],
"project_activities": "0",
"avatar_url": null
}

5. Acessar Todos os Projetos do Usuário

A função getAllByOwner() delega a busca dos projetos pelo id do responsável para a função
projectsUsersRepository.getOwnerProjects(). Retorna os projetos ou erro 154.

Rota utilizada:

Get /projects

Exemplo:

Get /projects

Retorno do exemplo:

{
"id": "142",
"name": "enriquecimento-leads-2",
"title": "Enriquecimento de Leads 2",
"owner_id": "155",
"created_at": "2022-05-03T18:59:07.367Z",
"updated_at": "2022-05-03T18:59:07.367Z",
"last_access": "2022-05-03T18:59:08.559Z",
"billing_accounts_id": null,
"default_channel": null,
"description": "Projeto para enriquecer os leads 2",
"avatar_id": null,
"active": true,
"is_deleted": false,
"project_activities": "0",
"users": "2",
"user_activities": "0",
"user_id": "155",
"role_type": "admin",
"avatar_url": null
},
{
"id": "141",
"name": "enriquecimento-leads",
"title": "Enriquecimento de Leads",
"owner_id": "155",
"created_at": "2022-05-03T18:12:04.460Z",
"updated_at": "2022-05-03T18:12:04.460Z",
"last_access": "2022-05-03T18:12:05.606Z",
"billing_accounts_id": null,
"default_channel": null,
"description": "Projeto para enriquecer os leads",
"avatar_id": null,
"active": true,
"is_deleted": false,
"project_activities": "0",
"users": "2",
"user_activities": "0",
"user_id": "155",
"role_type": "admin",
"avatar_url": null
}

6. Acessar Projetos Autorizados

A função userIsAuthorized() recebe como parâmetros o número de id do projeto e o id do usuário. Delega a
busca dos projetos autorizados para a função projectsUsersRepository.getOwnerProjects(). Retorna verdadeiro
se o projeto estiver disponível para o usuário e falso se não.

Rota utilizada:

Get /projects

7. Atualizar Projeto

A função userIsAuthorized() recebe como parâmetro UpdateProjectInterface. Busca o projeto no repositório
utilizando o id na função projectsRepository.findOne(). Atualiza o projeto no repositório com as modificações
realizadas. Retorna o projeto atualizado

Rota utilizada:

Put /projects/{id}

Body:

{
title: string,
description: string
}

Exemplo:

{
"title": "Projeto de Enrichment Atualizado",
"description": "Description"
}

Retorno do Exemplo

{
"generatedMaps": [],
"raw": [],
"affected": 1
}

8. Deletar Projeto

A função delete() recebe como parâmetro o id do projeto. Busca o projeto no repositório utilizando o id na função projectsRepository.findOne(). Atualiza o projeto no repositório com is_deleted setado para True.
Retorna o repositóri atualizado sem o projeto que foi deletado. Caso o id não seja encontrado no repositório,
retorna erro 152.

Rota utilizada:

Del /projects/{id}

Exemplo:

Del /projects/142

9. Acessar todos usuários

A função getAll() recebe como parâmetro o id do projeto. Busca o projeto no repositório utilizando o id do usuário na função projectsUsersRepository.getAllUsersFromProject(). Retorna todos os dados dos usuários. Caso não tenha usuários listados, retorna o erro 177.

Rota utilizada:

Get /projects/{id}/users

Exemplo:

Get /projects/141/users

Retorno do exemplo:

{
"role_type": "admin",
"id": "155",
"email": "teste@tagchat.com.br",
"phoneNumber": "5517991869702",
"name": "SISTEMA TAGCENTER",
"active": false
}

10. Enviar avatar

A função uploadAvatar() recebe como parâmetro ProjectEntity e PublicFileEntity e delega para a função
projectsRepository.save() salvar no repositório o projeto com o avatar. Caso o projeto não exista, retorna erro 125.

Rota utilizada:

Post /files/{id}/avatar

11. Deletar avatar

Deleta a imagem de avatar adicionada.

Rota utilizada:

Del /files/{id}/avatar

12. Remover usuário

A função removeUser() recebe como parâmetro RemoveUserProjectDTO. Busca o projeto pelo id no
repositório com função projectsRepository.findOne(). Caso o usário a ser removido seja o próprio project
owner, retorna erro 178. Caso não, delega a deleção do usuário para a função
projectsUsersRepository.delete(). Retorna erro 155 caso o usuário a ser deletado não faça parte do projeto.

Rota utilizada:

Del /projects/{id}/users/{user_id}

13. Sair do Projeto

A função leave() recebe como parâmetro o id do projeto e do usuário. Busca o projeto pelo id no repositório
com função projectsRepository.findOne(). Busca o usuário com a função
projectsUsersRepository.findByProjectUser(). Delega a deleção do usuário do projeto para a função
projectsUsersRepository.delete(). Caso o usuário seja owner do projeto que quer sair, retorna erro 201.
Retorna erro 155 caso o usuário a ser deletado não faça parte do projeto.

Rota utilizada:

Del /projects/{id}/users/leave

14. Verificar disponibilidade de nome

A função projectNameIsDisponible() recebe como parâmetro o nome desejado e delega a busca no
repositório para a função projectsRepository.findOne(). Caso o nome já pertença a outro projeto do
repositório retorna False caso não retorna True.

Rota utilizada:

Get /projects/disponible?name=teste

15. Mudar configuração de Enriquecimento

A função changeEnableEnrichment() recebe como parâmetro o id do projeto e boolean para
enrichment_enable. Busca o projeto pelo id no repositório com função projectsRepository.findOne(). Atualiza a propriedade enrichment_enable para o valor passado com a função projectsRepository.update(). Caso o id do projeto não exista retorna erro 152.

Rota utilizada:

Patch /projects/{id}/change-enable-enrichment

Body:

{
enrichment_enable: boolean
}

Exemplo:

{
"enrichment_enable": true
}

Retorno do exemplo:

{
"generatedMaps": [],
"raw": [],
"affected": 1
}

16. Mudar configuração de auto social point

A função changeAutoSocialPoint() recebe como parâmetro o id do projeto e boolean para auto_social_point.
Busca o projeto pelo id no repositório com função projectsRepository.findOne(). Atualiza a propriedade
auto_social_point para o valor passado com a função projectsRepository.update(). Caso o id do projeto não exista retorna erro 152.

Rota utilizada:

Patch /projects/{id}/change-auto-social-point

Body:

{
auto_social_point: boolean
}

Exemplo:

{
"auto_social_point": true
}

Retorno do exemplo:

{
"generatedMaps": [],
"raw": [],
"affected": 1
}

17. Mudar owner do projeto

A função changeOwner() recebe como parâmetro o id do projeto e o email do novo owner. Busca o owner pelo email no repositório com função usersRepository.findOne(). Caso não encontre, retorna erro 104. Caso encontre, atualiza o owner do projeto com a função projectsRepository.update().

Rota utilizada:

Patch /projects/{id}/change-owner

Body:

{
email: string
}

Exemplo:

{
"email": "teste@tagchat.com.br"
}

Retorno do exemplo:

{
"generatedMaps": [],
"raw": [],
"affected": 1
}

18. Códigos de Resposta HTTP

CódigoDescrição
152Projects with this id does not exist
153User not added to the project or project does not exists
154Projects with this owner id does not exist
125Project with this id does not exist
110User already added to the project
178Remove owner from project is not allowed
155User not added to the project
201The project owner is not allowed to leave the project
104User with this email does not exist
401Unauthorized
crosslistmenu-circle