Essa API permite a criação de novos projetos, bem como seu acompanhamento e modificação.
Recursos | Serviços | Endpoints |
---|---|---|
Criar Projeto | Cria um novo projeto | /projects/ |
Acessar um Projeto | Acesso a um projeto do usuário | /projects/ |
Acessar Todos os Projetos | Acesso a todos os projetos criados pelo usuário | /projects/ |
Acessar Projetos Autorizados | Acesso a projetos que o usuário possui autorização | /projects/ |
Atualizar Projeto | Modificação do projeto | /projects/{id} |
Deletar Projeto | Deleção do projeto | /projects/{id} |
Mandar Email | Envio de email | /emails/send |
Acessar Usuários | Acesso 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 Avatar | Envio de imagem | /files/{id}/avatar |
Deletar Avatar | Deleção de imagem | /files/{id}/avatar |
Remover Usuários | Remoção de usuário | /projects/{id}/users/{user_id} |
Sair de Projeto | Remoção de usuário do projeto | /projects/{id}/users/leave |
Verificar Disponibilidade de Nome | Verificação de repetição de nome | /projects/disponible?name= {name_project} |
Ativar o Enriquecimento | Mudança na propriedade de enriquecimento | /projects/{id}/changeenable-enrichment |
Ativar o Auto Social Point | Mudança na propriedade de auto social point | projects/{id}/change-autosocial-point |
Mudar Dono | Mudança no dono do projeto (project owner) | /projects/{id}/change-owne2r |
Para os usuários, as URLs base é:
api.tagcenter.io
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
}
Chave | Tipo | Descrição |
---|---|---|
id | string | Identificador do projeto |
string | Email de cadastro do usuário | |
title | string | Título do projeto |
owner_id | string | Identificado do responsável |
created_at | string | Data de criação |
updated_at | string | Data da atualização |
last_access | string | Data do último acesso |
billing_accounts_id | string | Informação sobre pagamento |
default_channel | string | Canal padrão |
description | string | Descrição do projeto |
avatar_id | string | Id da imagem de avatar do projeto |
active | boolean | Usuário ativo ou não |
is_deleted | boolean | Usuário deletado ou não |
project_activities | string | Atividades do projeto |
users | string | Quantidade de usuário |
user_activities | string | Atividades do usuário |
user_id | string | Identificador do usuário |
role_type | string | Função do usuário |
avatar_ur | string | Url da imagem do avatar do 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
}
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
}
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
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
}
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
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
}
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
Deleta a imagem de avatar adicionada.
Rota utilizada:
Del /files/{id}/avatar
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}
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
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
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
}
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
}
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
}
Código | Descrição |
---|---|
152 | Projects with this id does not exist |
153 | User not added to the project or project does not exists |
154 | Projects with this owner id does not exist |
125 | Project with this id does not exist |
110 | User already added to the project |
178 | Remove owner from project is not allowed |
155 | User not added to the project |
201 | The project owner is not allowed to leave the project |
104 | User with this email does not exist |
401 | Unauthorized |