Acessar artigos

1. Introdução

  • Person: são os contatos ou leads (uma possível oportunidade de negócio) no caminho chegaram ao
    sistema com possíveis dados incompletos ou errados. Uma pessoa é vinculada a um projeto.
  • People: são a versão das pessoas que passaram por um processo de dados enriquecimento, que busca validar suas informações reais e trazer mais dados para que o lead possa ser convertido com facilidade. Uma people não está vinculado a um projeto. A chave primária da relação entre estas duas entidades é o endereço de email utilizado ao se cadastrar no sistema. Sendo que várias persons podem levar a mesma people.
  • Companies: são as empresas ligadas à people, caso exista.

RecursosServiçosEndpoints
Criar PersonRegistro de uma Person/projects/{project_id}/persons
Acessar PersonAcesso a uma person/projects/{project_id}/persons/{person_id}
Deletar PersonDeleção de uma person/projects/{project_id}/persons/{person_id}
Atualizar PersonAtualização de uma person/projects/{project_id}/persons/{person_id}
Acessar Todas PersonsAcesso a todas as persons de um projeto/projects/{project_id}/persons/{person_id}
Acessar Todas Persons por OwnerAcesso a todas as persons de um projeto por owner/projects/{project_id}/persons/{person_id}
Enviar AvatarUpload de imagem de avatar/projects/{project_id}/persons/{person_id}/avatar
Deletar AvatarDeleção de imagem de avatar do repositório/projects/{project_id}/persons/{person_id}/avatar
Verificar PersonVerificação de uma person/peoples/verify-people
View PersonCriação de view das persons/projects/{project_id}/persons/view
Acessar Person pelo TelefoneAcesso a person pelo número de telefone fornecido/projects/{project_id}/persons/phone-number
Acessar CompanyAcesso a uma company/projects/{project_id}/companies/{company_id}
Acessar CompaniesAcesso a todas as companies/projects/{project_id}/companies/
Criar uma nova companyCriação de uma nova company/projects/{project_id}/companies
Atualizar CompanyAtualização de uma company/projects/{project_id}/companies/{company_id}
Deletar CompanyDeleção de uma company do repositório/projects/{project_id}/companies/{company_id}
View CompanyCriação de view das companies/projects/{project_id}/companies/{company_id}

2. URL Base

Para os usuários, a URL base é:

api.tagcenter.io

3. Criar Person

A função create() recebe como parâmetro ProjectEntity e newData. Armazena em newData os dados da nova Person - primeiro nome, último nome, email, telefone, endereço, responsável e Id de conexão. Verifica pelo email se já existe uma person no repositório, pela função getByEmailAndProject(). Se encontrar, retorna erro 175. Verifica se existe uma connection como origem e se existe uma connection para distribuir. Salva os dados da person do repositório chamando a função personsRepository.save(). Delega a criação da nova person para a função annotationsService.create(). Retorna a person criada ou erro.

Rota utilizada:

Post /projects/{project_id}/persons

Body:

{
  firstName: string,
  lastName: string,
  email: string,
  phoneNumber: string,
  address: string
}

Exemplo:

{
  "firstName": "Maria",
  "lastName": "Silva",
  "email": "teste@tagchat.com.br",
  "phoneNumber": "5517991869702",
  "address": "Rua x, 556"
}

Retorno do exemplo:

{
  "firstName": "Maria",
  "lastName": "Silva",
  "email": "teste@tagchat.com.br",
  "phoneNumber": "5517991869702",
  "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
  },
  "connectionId": null,
  "integration_id": null,
  "id": "1348",
  "isEmailConfirmed": false,
  "isPhoneNumberConfirmed": false,
  "isWhatsappConfirmed": false
}
ChaveValorDescrição
firstNamestringPrimeiro nome
lastNamestringÚltimo nome
emailstringEmail da person
ownerobjectDados do responsável
connectionIdstringId da conexão
integration_idstringId da integração
idstringIdentificador da person
activebooleanUsuário ativo ou não
isEmailConfirmedbooleanVerifica se o email já foi confirmado
isPhoneNumberConfirmedbooleanVerifica se o telefone já foi confirmado
isWhatsappConfirmedbooleanVerifica se o whatsapp já foi confirmado

4. Acessar Person

Permite acessar os dados de uma person passando a query enrichment setada em True ou Falso. A função getWithEnrichment() recebe como parâmetro o id da person e busca os dados enriquecidos. Retorna a person com os dados de enriquecimento. Caso o id não seja encontrado, retorna erro 173.

Rotas utilizada:

Sem enriquecimento

Get /projects/{project_id}/persons

Com enriquecimento

Get /projects/{project_id}/persons?enrichment=true

Exemplos:

Sem enriquecimento

Get /projects/141/persons

Com enriquecimento

Get /projects/141/persons?enrichment=true

Retornos dos exemplos:

Sem enriquecimento

{
  "id": "1348",
  "email": "teste2@tagchat.com.br",
  "phoneNumber": "5517991869702",
  "firstName": "Maria",
  "lastName": "Silva",
  "isEmailConfirmed": false,
  "isPhoneNumberConfirmed": false,
  "isWhatsappConfirmed": false,
  "connectionId": null,
  "facebook": null,
  "linkedin": null,
  "instagram": null,
  "twitter": null,
  "integration_id": null,
  "sector_id": null,
  "enriched_topics": null,
  "origin": null,
  "address": null,
  "avatar": null,
  "project": {
    "id": "141",
    "name": "enriquecimento-leads",
    "title": "Projeto de Enrichment Atualizado2",
    "description": "Description",
    "active": true,
    "timezone": "America/Sao_Paulo",
    "enrichment_enable": true,
    "is_deleted": false,
    "auto_social_point": true,
    "avatar": null,
    "owner": {
      "id": "157",
      "email": "teste2@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
    }
  },
  "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
  },
  "people": {
    "id": 1682,
    "email": "teste2@tagchat.com.br",
    "basic_data_enriched": false,
    "basic_data_date": null,
    "enterprise_data_enriched": false,
    "enterprise_data_date": null,
    "has_enterprise": null,
    "geodata_enriched": false,
    "geodata_date": null,
    "linkedin_url": null,
    "linkedin_url_date": null,
    "linkedin_enriched": false,
    "linkedin_date": null
  }
}

Com enriquecimento

{
  "id": "1348",
  "email": "teste2@tagchat.com.br",
  "phoneNumber": "5517991869702",
  "firstName": "Maria",
  "lastName": "Silva",
  "isEmailConfirmed": false,
  "isPhoneNumberConfirmed": false,
  "isWhatsappConfirmed": false,
  "connectionId": null,
  "facebook": null,
  "linkedin": null,
  "instagram": null,
  "twitter": null,
  "integration_id": null,
  "sector_id": null,
  "enriched_topics": null,
  "origin": null,
  "address": null,
  "avatar": null,
  "project": {
    "id": "141",
    "name": "enriquecimento-leads",
    "title": "Projeto de Enrichment Atualizado2",
    "description": "Description",
    "active": true,
    "timezone": "America/Sao_Paulo",
    "enrichment_enable": true,
    "is_deleted": false,
    "auto_social_point": true,
    "avatar": null,
    "owner": {
      "id": "157",
      "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
    }
  },
  "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
  },
  "people": {
    "id": 1682,
    "email": "teste2@tagchat.com.br",
    "basic_data_enriched": false,
    "basic_data_date": null,
    "enterprise_data_enriched": false,
    "enterprise_data_date": null,
    "has_enterprise": null,
    "geodata_enriched": false,
    "geodata_date": null,
    "linkedin_url": null,
    "linkedin_url_date": null,
    "linkedin_enriched": false,
    "linkedin_date": null,
    "emergencialAid": [],
    "emergencialAidData": [],
    "enterprises": [],
    "experiences": [],
    "educations": [],
    "geodata": [],
    "linkedin": [],
    "skills": []
  }
}
ChaveValorDescrição
peopleobjectPerson com dados enriquecidos
idstringId da person
basic_data_enrichedbooleanVerifica se os dados básicos foram enriquecidos
basic_data_datestringData do enriquecimento dos dados básicos
enterprise_data_enrichedbooleanVerifica se os dados sobre empresa foram enriquecidos
enterprise_data_datestringData do enriquecimento dos dados sobre empresa
has_enterprisestringEmpresas que a person é responsável
geodata_enrichedbooleanVerifica se os dados geográficos da person foram enriquecidos
geodata_datestringData de enriquecimento dos dados geográficos
linkedin_urlstringUrl do linkedin da person
linkedin_url_datestringData que a url do linkedin foi obtida
linkedin_enrichedbooleanVerifica se os dados do linkedin foram enriquecidos
linkedin_datestringData que a url do linkedin foi obtida
emergencialAidarrayVerifica se a person recebeu auxílio emergencial
emergencialAidDataarrayDados sobre o auxílio emergencial da person
enterprisesarrayEmpresas que a person é responsável
experiencesarrayExperiências da person
educationsarrayEducação da person
linkedinarrayLinkedin da person
skillsarraySkills da person

5. Deletar Person

Deleta os dados da person no repositório. A função delete() recebe como parâmetro o número de id da person e delega para a função personsRepository.findOne() buscar no repositório. Se encontrar, delega para a função personsRepository.delete() a deleção da person. Caso não encontre, retorna o erro 151.

Rota utilizada:

Del /projects/{project_id}/persons/{person_id}

6. Atualizar Person

Atualiza os dados da person no repositório. A função update() recebe como parâmetro ProjectEntity, o id da person e os seus dados. Delega para a função personsRepository.findOne() a busca no repositório da person usando seu id. Caso a informação a ser modificada seja o email, retorna o erro 150. As demais informações são modificadas pela função addressRepository.update(). Caso o id da person não seja encontrado, retorna erro 151.

Rota utilizada:

Put /projects/{project_id}/persons/{person_id}

Body:

{
  firstName: string,
  address: string
}

Exemplo:

{
  "firstName": "Juliana",
  "address": null
}

Retorno do exemplo:

{
  "id": "1348",
  "email": "teste2@tagchat.com.br",
  "phoneNumber": "5517991869702",
  "firstName": "Juliana",
  "lastName": "Silva",
  "isEmailConfirmed": false,
  "isPhoneNumberConfirmed": false,
  "isWhatsappConfirmed": false,
  "connectionId": null,
  "facebook": null,
  "linkedin": null,
  "instagram": null,
  "twitter": null,
  "integration_id": null,
  "sector_id": null,
  "enriched_topics": null,
  "origin": null,
  "address": null,
  "avatar": null,
  "project": {
    "id": "141",
    "name": "enriquecimento-leads",
    "title": "Projeto de Enrichment Atualizado2",
    "description": "Description",
    "active": true,
    "timezone": "America/Sao_Paulo",
    "enrichment_enable": true,
    "is_deleted": false,
    "auto_social_point": true,
    "avatar": null,
    "owner": {
      "id": "157",
      "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
    }
  },
  "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
  },
  "people": {
    "id": 1682,
    "email": "teste2@tagchat.com.br",
    "basic_data_enriched": false,
    "basic_data_date": null,
    "enterprise_data_enriched": false,
    "enterprise_data_date": null,
    "has_enterprise": null,
    "geodata_enriched": false,
    "geodata_date": null,
    "linkedin_url": null,
    "linkedin_url_date": null,
    "linkedin_enriched": false,
    "linkedin_date": null
  }
}

7. Acessar Todas as Persons

Permite a visualização de todas as persons do projeto. A função getAll recebe como parâmetro ProjectEntity e delega a busca no repositório para a função personsRepository.find() utilizando o projeto. Caso encontre, retorna todas as persons. Caso não encontre, retorna o erro 149.

Rota utilizada:

Get /projects/{project_id}/persons/

Exemplo:

Get /projects/141/persons/

Retorno do exemplo:

[
  {
    "id": "1350",
    "email": "teste3@tagchat.com.br",
    "phoneNumber": "5517991869702",
    "firstName": "teste",
    "lastName": "teste",
    "isEmailConfirmed": false,
    "isPhoneNumberConfirmed": false,
    "isWhatsappConfirmed": false,
    "connectionId": null,
    "facebook": null,
    "linkedin": null,
    "instagram": null,
    "twitter": null,
    "integration_id": null,
    "sector_id": null,
    "enriched_topics": null,
    "origin": null,
    "address": null,
    "avatar": null,
    "project": {
      "id": "141",
      "name": "enriquecimento-leads",
      "title": "Projeto de Enrichment Atualizado2",
      "description": "Description",
      "active": true,
      "timezone": "America/Sao_Paulo",
      "enrichment_enable": true,
      "is_deleted": false,
      "auto_social_point": true,
      "avatar": null,
      "owner": {
        "id": "157",
        "email": "teste2@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
      }
    },
    "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
    },
    "people": {
      "id": 1684,
      "email": "teste3@tagchat.com.br",
      "basic_data_enriched": false,
      "basic_data_date": null,
      "enterprise_data_enriched": false,
      "enterprise_data_date": null,
      "has_enterprise": null,
      "geodata_enriched": false,
      "geodata_date": null,
      "linkedin_url": null,
      "linkedin_url_date": null,
      "linkedin_enriched": false,
      "linkedin_date": null
    }
  }
]

8. Acessar Todas Persons por Owner

Permite a visualização de todas as persons do projeto. A função getAllByOwner() recebe como parâmetro ProjectEntity e UserEntity e delega a busca no repositório para a função personsRepository.find(), com os dados do projeto e do owner. Caso encontre, retorna todas as persons. Caso não encontre, retorna o erro 149.

Rota utilizada:

Get /projects/{project_id}/owner/persons

Exemplo:

Get /projects/141/owner/persons

Retorno do Exemplo:

[
  {
    "id": "1350",
    "email": "teste3@tagchat.com.br",
    "phoneNumber": "5517991869702",
    "firstName": "teste",
    "lastName": "teste",
    "isEmailConfirmed": false,
    "isPhoneNumberConfirmed": false,
    "isWhatsappConfirmed": false,
    "connectionId": null,
    "facebook": null,
    "linkedin": null,
    "instagram": null,
    "twitter": null,
    "integration_id": null,
    "sector_id": null,
    "enriched_topics": null,
    "origin": null,
    "address": null,
    "avatar": null,
    "project": {
      "id": "141",
      "name": "enriquecimento-leads",
      "title": "Projeto de Enrichment Atualizado2",
      "description": "Description",
      "active": true,
      "timezone": "America/Sao_Paulo",
      "enrichment_enable": true,
      "is_deleted": false,
      "auto_social_point": true,
      "avatar": null,
      "owner": {
        "id": "157",
        "email": "teste2@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
      }
    },
    "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
    },
    "people": {
      "id": 1684,
      "email": "teste3@tagchat.com.br",
      "basic_data_enriched": false,
      "basic_data_date": null,
      "enterprise_data_enriched": false,
      "enterprise_data_date": null,
      "has_enterprise": null,
      "geodata_enriched": false,
      "geodata_date": null,
      "linkedin_url": null,
      "linkedin_url_date": null,
      "linkedin_enriched": false,
      "linkedin_date": null
    }
  }
]

9. Enviar Imagem de Avatar

Permite o envio de uma imagem de avatar para a person. A função addAvatar() recebe como parâmetro o id do projeto e da persona, o buffer da imagem, o nome do arquivo, o tamanho do arquivo e o tipo. Delega a busca no repositório para a função personsRepository.find(). Atualiza o repositório com a nova imagem com a função personsRepository.update().

Rota utilizada:

Post /projects/{project_id}/persons/{person_id}/avatar

Exemplo:

Post /projects/141/persons/1347/avatar

Retorno do exemplo:

{
  "url": "https://cdn.tagchat.online/projects/141/persons/1347/pexels-liza-summer-6347705.jpg",
  "key": "pexels-liza-summer-6347705.jpg",
  "mimetype": "image/jpeg",
  "fileSize": 1539499,
  "id": "814"
}

10. Deletar Imagem de Avatar

Deleta a imagem de avatar da person. A função recebe o id da person e delega a deleção para a função filesService.deleteFile().

Rota utilizada:

Del /projects/{project_id}/persons/{person_id}/avatar

11. View da person

A função getView() recebe os dados da person e delega para a função entityManager.query() a obtenção da view. Retorna o resultado.

Get /projects/{project_id}/persons/view

Exemplo:

Get /projects/141/persons/view

Retorno do exemplo:

[
  {
    "id": "1348",
    "active": false,
    "first_name": "Juliana",
    "last_name": "Silva",
    "email": "teste2@tagchat.com.br",
    "phone_number": "5517991869702",
    "owner": "SISTEMA TAGCENTER",
    "owner_type": "user",
    "enriched_topics": null,
    "avatar": {
      "url": null
    }
  }
]

12. Acessar Person pelo Telefone

A função getByPhoneNumber() recebe como parâmetro o telefone cadastrado da person e o id do proeto. Delega a busca para a função personsRepository.findOne() utilizando o telefone e retorna a person que possui o número registrado. Caso não encontre, retorna o erro 149.

Rota utilizada:

Get /projects/{project_id}/persons/phone-number

Exemplo:

/projects/141/persons/phone-number?phoneNumber=5517991869702

Retorno do exemplo:

{
  "id": "1347",
  "email": "teste@tagchat.com.br",
  "phoneNumber": "5517991869702",
  "firstName": "Maria",
  "lastName": "Silva",
  "isEmailConfirmed": false,
  "isPhoneNumberConfirmed": false,
  "isWhatsappConfirmed": false,
  "connectionId": null,
  "facebook": null,
  "linkedin": null,
  "instagram": null,
  "twitter": null,
  "integration_id": null,
  "sector_id": null,
  "enriched_topics": null,
  "origin": null,
  "address": null,
  "avatar": null,
  "project": {
    "id": "141",
    "name": "enriquecimento-leads",
    "title": "Projeto de Enrichment Atualizado2",
    "description": "Description",
    "active": true,
    "timezone": "America/Sao_Paulo",
    "enrichment_enable": true,
    "is_deleted": false,
    "auto_social_point": true,
    "avatar": null,
    "owner": {
      "id": "157",
      "email": "teste2@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
    }
  },
  "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
  },
  "people": {
    "id": 1681,
    "email": "teste@tagchat.com.br",
    "basic_data_enriched": false,
    "basic_data_date": null,
    "enterprise_data_enriched": false,
    "enterprise_data_date": null,
    "has_enterprise": null,
    "geodata_enriched": false,
    "geodata_date": null,
    "linkedin_url": null,
    "linkedin_url_date": null,
    "linkedin_enriched": false,
    "linkedin_date": null
  }
}

13. Acessar Empresa pelo Id

A função getById() recebe como parâmetro o id da empresa e delega a busca no repositório para a função companyRepository.findOne(). Retorna a company se encontrada, se não, retorna erro 173. Caso não encontre o id, retorna erro 149.

Rota utilizada:

Get /projects/{project_id}/companies/{company_id}

Exemplo:

Get /projects/141/companies/33

Retorno do exemplo:

{
  "id": "33",
  "name": "Teste empresa 3",
  "fantasy_name": null,
  "cnpj": "555",
  "email": "teste2@teste.com",
  "size": null,
  "primary_activity": null,
  "second_activity": null,
  "active": false,
  "contactOwner": "Henrique",
  "phoneNumber": null,
  "facebook": null,
  "linkedin": null,
  "instagram": null,
  "twitter": null,
  "origin": "manually",
  "sector_id": 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
  },
  "address": null,
  "avatar": null,
  "project": {
    "id": "141",
    "name": "enriquecimento-leads",
    "title": "Projeto de Enrichment Atualizado2",
    "description": "Description",
    "active": true,
    "timezone": "America/Sao_Paulo",
    "enrichment_enable": true,
    "is_deleted": false,
    "auto_social_point": true,
    "avatar": null,
    "owner": {
      "id": "157",
      "email": "teste2@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
    }
  }
}
ChaveValorDescrição
idstringId da company
namestringNome da company
fantasy_namestringNome fantasia da company
cnpjstringCNPJ da company
emailstringEmail da company
sizestringTamanho da company
primary_activitystringAtividade primária da company
secondary_activitystringAtividade secundária da company
activebooleanVerifica se a empresa está ativa
contactOwnerstringResponsável da company
phoneNumberstringTelefone da company
facebookstringFacebook da company
linkedinstringLinkedin da company
instagramstringInstagram da company
twitterstringTwitter da company
originstringOrigem da company no sistema
sector_idstringId do setor da company
addressstringEndereço da company
avatarstringAvatar da company

14. Acessar todas Empresas

A função getAll() recebe como parâmetro ProjectEntity e delega a busca no repositório para a função companyRepository.find(). Retorna as empresas ou erro 149.

Rota utilizada:

Get /projects/{project_id}/companies/

Exemplo:

Get /projects/141/companies/

Retorno do exemplo:

[
  {
    "id": "33",
    "name": "Teste empresa 3",
    "fantasy_name": null,
    "cnpj": "555",
    "email": "teste2@teste.com",
    "size": null,
    "primary_activity": null,
    "second_activity": null,
    "active": false,
    "contactOwner": "Henrique",
    "phoneNumber": null,
    "facebook": null,
    "linkedin": null,
    "instagram": null,
    "twitter": null,
    "origin": "manually",
    "sector_id": 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
    },
    "address": null,
    "avatar": null,
    "project": {
      "id": "141",
      "name": "enriquecimento-leads",
      "title": "Projeto de Enrichment Atualizado2",
      "description": "Description",
      "active": true,
      "timezone": "America/Sao_Paulo",
      "enrichment_enable": true,
      "is_deleted": false,
      "auto_social_point": true,
      "avatar": null,
      "owner": {
        "id": "157",
        "email": "teste2@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
      }
    }
  },
  {
    "id": "35",
    "name": "Teste empresa 4",
    "fantasy_name": null,
    "cnpj": "222",
    "email": "teste3@teste.com",
    "size": null,
    "primary_activity": null,
    "second_activity": null,
    "active": false,
    "contactOwner": "Henrique",
    "phoneNumber": null,
    "facebook": null,
    "linkedin": null,
    "instagram": null,
    "twitter": null,
    "origin": "manually",
    "sector_id": 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
    },
    "address": null,
    "avatar": null,
    "project": {
      "id": "141",
      "name": "enriquecimento-leads",
      "title": "Projeto de Enrichment Atualizado2",
      "description": "Description",
      "active": true,
      "timezone": "America/Sao_Paulo",
      "enrichment_enable": true,
      "is_deleted": false,
      "auto_social_point": true,
      "avatar": null,
      "owner": {
        "id": "157",
        "email": "teste2@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
      }
    }
  }
]

15. Criar Empresa

A função create() recebe como parâmetro ProjectEntity e os dados da empresa a ser criada. Verifica se no repositório ja existe alguma empresa com esse cnpj com a função getByCnpjAndProject(), se encontra retorna erro 175. Caso não, delega para a função annotationsService.create() a criação da empresa no repositório.

Rota utilizada:

Post /projects/{project_id}/companies/

Body:

{
  name: string,
  cnpj: string,
  email: string,
  contactOwner: string,
  active: boolean,
  origin: string
}

Exemplo:

{
  "name": "Teste empresa 4",
  "cnpj": "777",
  "email": "teste3@teste.com",
  "contactOwner": "Henrique",
  "active": false,
  "origin": "manually"
}

Retorno do exemplo:

{
  "name": "Teste empresa 4",
  "cnpj": "777",
  "email": "teste3@teste.com",
  "contactOwner": "Henrique",
  "active": false,
  "origin": "manually",
  "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
  },
  "phoneNumber": null,
  "sector_id": null,
  "id": "36"
}

16. Atualizar Empresa

A função update() recebe como parâmetro ProjectEntity, o id da company e os dados que serão modificados. Verifica se a atualização envolve o email da company, se sim retorna erro 150. Se não, verifica se tem atualização no endereço, se sim delega para a função addressRepository.update(). Se não, a função companyRepository.update() atualiza os dados enviados.

Rota utilizada:

Put /projects/{project_id}/companies/{company_id}

Body:

{
  name: string,
  cnpj: string,
  contactOwner: string,
  active: boolean,
  origin: string,
  facebook: string,
  phoneNumber: string
}

Exemplo:

{
  "name": "Nome atualizado",
  "cnpj": "555",
  "contactOwner": "Henrique",
  "active": false,
  "origin": "manually",
  "facebook": "algum teste",
  "phoneNumber": "5517997578899"
}

Retorno do exemplo:

{
  "id": "33",
  "name": "Nome atualizado",
  "fantasy_name": null,
  "cnpj": "555",
  "email": "teste2@teste.com",
  "size": null,
  "primary_activity": null,
  "second_activity": null,
  "active": false,
  "contactOwner": "Henrique",
  "phoneNumber": "5517997578899",
  "facebook": "algum teste",
  "linkedin": null,
  "instagram": null,
  "twitter": null,
  "origin": "manually",
  "sector_id": 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
  },
  "address": null,
  "avatar": null,
  "project": {
    "id": "141",
    "name": "enriquecimento-leads",
    "title": "Projeto de Enrichment Atualizado2",
    "description": "Description",
    "active": true,
    "timezone": "America/Sao_Paulo",
    "enrichment_enable": true,
    "is_deleted": false,
    "auto_social_point": true,
    "avatar": null,
    "owner": {
      "id": "157",
      "email": "teste2@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
    }
  }
}

17. Deletar Empresa

A função delete() recebe como parâmetro o id da company e delega a busca no repositório para a função companyRepository.findOne(). Se encontra a company, deleta do repositório com a função companyRepository.delete(). Se não, retorna o erro 151.

Rota utilizada:

Del /projects/{project_id}/companies/{company_id}

18. Acessar Todas as Views da Empresa

A função getView() recebe como parâmetro os dados da empresa. Delega para a função entityManager.query() as queries da empresa. Com query.map() mapea e organiza os dados da empresa. Retorna o resultado. Caso não encontra a empresa, retorna o erro 173.

Rota utilizada:

Get /projects/{project_id}/companies/view

19. Códigos de Resposta HTTP

CódigoDescrição
149Persons or Company with this id does not exist
173404 Not Found
175Person or Company with that email/cnpj already exists
150Email update is not allowed
151Person or Company with this id does not exist
192Parameterization with this id does not exist
149Parameterization with this id does not exist
401Unauthorized
crosslistmenu-circle