PATCH
https://api.myidvirtual.com
/
user
/
:id
Atualizar Perfil
curl --request PATCH \
  --url https://api.myidvirtual.com/user/:id \
  --header 'Authorization: <authorization>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "nickname": "<string>",
  "email": "<string>",
  "cellphone": "<string>",
  "avatar": "<string>",
  "mac_address": "<string>",
  "isAppManager": true,
  "isSupplier": true,
  "birthday": "<string>",
  "status": true,
  "latitude": 123,
  "longitude": 123,
  "role": "<string>"
}
'
{
  "user": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "João Silva Atualizado",
    "nickname": "joao_silva",
    "email": "[email protected]",
    "cellphone": "+5511999999999",
    "avatar": "https://exemplo.com/avatar.jpg",
    "role": "CUSTOMER",
    "isAppManager": false,
    "isSupplier": false,
    "status": true,
    "credits": 100,
    "birthday": "1990-05-15T00:00:00.000Z",
    "latitude": -23.5505,
    "longitude": -46.6333,
    "createdAt": "2024-01-15T10:30:00.000Z",
    "updatedAt": "2024-01-20T14:45:00.000Z"
  },
  "message": "Usuário atualizado com sucesso"
}

Atualizar Perfil

Endpoint para atualização de dados do perfil do usuário. Permite modificar informações como nome, email, telefone, avatar e outras configurações.

Autenticação

Authorization
string
required
Bearer token JWT do usuário autenticado

Parâmetros

Path Parameters

id
string
required
ID do usuário a ser atualizado

Request Body

name
string
Nome completo do usuário
nickname
string
Apelido ou nome de exibição do usuário
email
string
Email do usuário (deve ser único)
cellphone
string
Número de telefone celular
avatar
string
URL ou base64 da imagem de avatar do usuário
mac_address
string
Endereço MAC do dispositivo
isAppManager
boolean
Define se o usuário é gerente do aplicativo
isSupplier
boolean
Define se o usuário é fornecedor
birthday
date
Data de nascimento do usuário
status
boolean
Status ativo/inativo do usuário
latitude
number
Latitude da localização do usuário
longitude
number
Longitude da localização do usuário
role
string
Papel do usuário (ADMIN, MASTER, RESALE, CUSTOMER)

Responses

{
  "user": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "João Silva Atualizado",
    "nickname": "joao_silva",
    "email": "[email protected]",
    "cellphone": "+5511999999999",
    "avatar": "https://exemplo.com/avatar.jpg",
    "role": "CUSTOMER",
    "isAppManager": false,
    "isSupplier": false,
    "status": true,
    "credits": 100,
    "birthday": "1990-05-15T00:00:00.000Z",
    "latitude": -23.5505,
    "longitude": -46.6333,
    "createdAt": "2024-01-15T10:30:00.000Z",
    "updatedAt": "2024-01-20T14:45:00.000Z"
  },
  "message": "Usuário atualizado com sucesso"
}

Exemplo de Requisição

curl --location --request PATCH 'http://localhost:3333/user/123e4567-e89b-12d3-a456-426614174000' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \
--header 'Content-Type: application/json' \
--data-raw '{
  "name": "João Silva Atualizado",
  "nickname": "joao_silva",
  "cellphone": "+5511999999999",
  "avatar": "https://exemplo.com/avatar.jpg"
}'

Permissões e Regras

Controle de Acesso

  • Próprio usuário: Pode atualizar seus próprios dados (exceto role e status)
  • ADMIN: Pode atualizar qualquer usuário e qualquer campo
  • MASTER/RESALE: Pode atualizar apenas usuários de sua hierarquia

Campos Restritos

Alguns campos só podem ser modificados por administradores:
  • isAppManager (gerente de aplicativo)
  • isSupplier (fornecedor)

Validações

Email

  • Deve ser único no sistema
  • Formato válido de email
  • Não pode estar em uso por outro usuário

Telefone

  • Formato internacional recomendado (+55…)
  • Opcional, mas deve ser válido se fornecido

Atualização Parcial

Este endpoint suporta atualização parcial. Você pode enviar apenas os campos que deseja atualizar, não sendo necessário enviar todos os dados do usuário.
// Atualizar apenas o nome
await fetch(`http://localhost:3333/user/${userId}`, {
  method: 'PATCH',
  headers: {
    'Authorization': `Bearer ${token}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    name: 'Novo Nome'
  })
});

Registro de Auditoria

Todas as atualizações de perfil são registradas automaticamente no sistema de logs:
  • Timestamp: Data e hora da atualização
  • Usuário: Quem realizou a atualização
  • Valores anteriores e novos: Para rastreabilidade
Após atualizar o perfil, use o endpoint /auth/me para obter os dados atualizados completos do usuário.

Próximos Passos

  1. Validar dados antes de enviar
  2. Implementar feedback visual ao usuário
  3. Sincronizar dados com estado local da aplicação
  4. Tratar erros de forma amigável