Atualizando dados do contato

No método de update, o id do contato é obrigatório e a url é "http://api.tolvdesk.com/v1/contato/update".

Em uma requisição síncrona, faça uma requisição HTTP/POST no endereço http://api.tolvdesk.com/v1/contato/update passando no corpo da requisição os dados do contato. Nesta mesma requisição, inclua um header com nome "Authorization" e valor" 'JWT ' + Token privado que você criou".

Dados permitidos para atualização do contato: 

_id: id do contato que você receberá no retorno do cadastro ou da consulta (obrigatório).

nome: nome do contato a ser cadastrado (opcional).

email: e-mail do contato que vai ser cadastrado (opcional). Se o e-mail pertencer a uma empresa cadastrada e não enviar uma empresa no corpo da requisição, o sistema vinculará automaticamente pelo domínio.

foneComercial: telefone comercial do contato (opcional).

foneCelular: telefone celular do contato (opcional).

login: login de identificação a ser usado para login no portal (opcional). Se não informado, o login será o e-mail do contato.

endereco: endereço do contato (opcional).

senha : senha de acesso do contato para acesso ao portal (opcional). Gera uma senha, se não informado. A senha deve conter ao menos 1 número, letras maiúsculas e minúsculas e pelo menos 6 caracteres.

podeVerTicketsEmpresa: true/false (opcional). Se não informado o valor, será definido como "false".

permitirLoginPortal: true/false (opcional). Se não informado o valor, será definido como "true".

empresaId: ID da empresa cadastrada no banco de dados do tolvdesk (opcional).

identificacao_empresa: A identificação que foi cadastrada no tolvdesk, é usada como referência para vincular o contato a uma empresa.

NOTA - o vínculo entre contato e empresa é feito seguindo as seguintes formas: 

O sistema sempre vai dar preferência para o campo "empresaId", que é o campo _id preenchido no cadastro da empresa no tolvdesk. Se esse campo ("empresaId") não for informado na requisição, o sistema verifica se existe o campo "identificacao_empresa". Usa-se esse dado ("identificacao_empresa") apenas para criar o vínculo e preencher o campo do banco "empresaId" com o _id da empresa que foi encontrada no cadastro da sua conta. Nesse caso, quando atualizado o contato, se a identificação pertencer a uma empresa diferente, o sistema substituirá  o vínculo. 

Se não existir uma identificação da empresa, ("empresaId" ou "identificacao_empresa"), o sistema busca uma empresa pelo domínio do e-mail informado no cadastro do contato e cria o vínculo do contato com a empresa, preenchendo automaticamento o campo "empresaId". 

Caso o sistema não encontre nenhuma maneira de identificar a empresa do contado, o cadastro é realizado sem vínculos com empresa.

Com todos os dados corretos, o retorno da api será um objeto JSON. Como no exemplo abaixo:

{
  "code": 200,
  "message": "contato atualizado com sucesso",
  "contato": {
   "_id": "59497785fef3c2562301bbea",
   "nome": "rafael",
   "email": "rafael@teste.com.br",
   "empresaId": "59497144fef3c2562301bbe8",
   "foneCelular": "111111111",
   "foneComercial": "111111111"
 }
}

Erros da validação dos dados:

{
  "errors": [
    {
      "code": 300,
      "field": "nome",
      "message": "Informe um nome com no mínimo 2 caracteres"
    },
    {
      "code": 300,
      "field": "email",
      "message": "informe um e-mail válido"
    },
    {
      "errors": [
        {
          "code": 300,
          "field": "id",
          "message": "informe um ID do tolvdesk ou o id que você informou não é valido"
        }
      ]
    }
  ]
}

E-mail existente:

{
  "errors": [
    {
      "code": 300,
      "field": "email",
      "message": "Já existe um contato com este e-mail."
    }
  ]
}

Passando um ID de empresa inexistente ou inválido:

{
  "errors": [
    {
      "code": 300,
      "field": "empresa",
      "message": "o id da empresa vinculada não é um id valido"
    }
  ]
}

Senha enviada não estando de acordo com as validações especificadas:

{
  "code": 300,
  "field": "senha",
  "message": "A senha deve conter ao menos 1 número, letras maiúsculas e minúsculas e pelo menos 6 caracteres."
}

Passando um número de telefone inválido

{
  "errors": [
    {
      "code": 300,
      "field": "foneComercial",
      "message": "O telefone deve ser um numero valido de 9 há 11 numeros"
    },
    {
      "code": 300,
      "field": "foneCelular",
      "message": "O telefone deve ser um numero valido de 9 há 11 numeros"
    }
  ]
}