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
Bearer token JWT do usuário autenticado
Parâmetros
Path Parameters
ID do usuário a ser atualizado
Request Body
Apelido ou nome de exibição do usuário
Email do usuário (deve ser único)
Número de telefone celular
URL ou base64 da imagem de avatar do usuário
Endereço MAC do dispositivo
Define se o usuário é gerente do aplicativo
Define se o usuário é fornecedor
Data de nascimento do usuário
Status ativo/inativo do usuário
Latitude da localização do usuário
Longitude da localização do usuário
Papel do usuário (ADMIN, MASTER, RESALE, CUSTOMER)
Responses
200 - Sucesso
401 - Não Autorizado
403 - Sem Permissão
404 - Não Encontrado
400 - Dados Inválidos
{
"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
Validar dados antes de enviar
Implementar feedback visual ao usuário
Sincronizar dados com estado local da aplicação
Tratar erros de forma amigável