Skip to main content

📖 Descrição

Este endpoint atualiza um looker existente. Permite atualizar o nome e/ou a lista de cryptos. O looker deve pertencer ao email fornecido.

🛠️ Requisição

Método

PUT

URL

/v1/lookers

Parâmetros de Query

ParâmetroTipoObrigatórioDescrição
idstringSimID do looker
emailstringSimEmail do usuário (para validação de propriedade)

Request Body

CampoTipoObrigatórioDescrição
namestringNãoNovo nome do looker
cryptosarray de stringNãoNova lista de cryptos (máximo 6)

Validações

  • Pelo menos um campo (name ou cryptos) deve ser fornecido
  • Se name for fornecido, não pode ser vazio
  • Se cryptos for fornecido, não pode ser vazio e deve ter no máximo 6 itens
  • O looker deve pertencer ao email fornecido

Exemplo de Requisição (atualizar apenas nome)

curl -X PUT "http://localhost:8080/v1/lookers?id=507f1f77bcf86cd799439011&[email protected]" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Updated Portfolio Name"
  }'

Exemplo de Requisição (atualizar apenas cryptos)

curl -X PUT "http://localhost:8080/v1/lookers?id=507f1f77bcf86cd799439011&[email protected]" \
  -H "Content-Type: application/json" \
  -d '{
    "cryptos": ["BTCUSDT", "ETHUSDT", "BNBUSDT", "SOLUSDT"]
  }'

Exemplo de Requisição (atualizar ambos)

curl -X PUT "http://localhost:8080/v1/lookers?id=507f1f77bcf86cd799439011&[email protected]" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Updated Portfolio Name",
    "cryptos": ["BTCUSDT", "ETHUSDT", "BNBUSDT", "SOLUSDT"]
  }'

Exemplo de Resposta (200 OK)

{
  "id": "507f1f77bcf86cd799439011",
  "email": "[email protected]",
  "name": "Updated Portfolio Name",
  "cryptos": ["BTCUSDT", "ETHUSDT", "BNBUSDT", "SOLUSDT"],
  "timestamp": 1234567890000
}

📝 Códigos de Resposta

200 OK: Looker atualizado com sucesso
400 Bad Request:
  • Invalid request body: Corpo da requisição inválido
  • id parameter is required: ID não fornecido
  • email parameter is required: Email não fornecido
  • name cannot be empty: Nome fornecido está vazio
  • cryptos cannot be empty: Lista de cryptos está vazia
  • maximum 6 cryptos allowed: Mais de 6 cryptos fornecidas
  • no fields to update: Nenhum campo fornecido para atualização
403 Forbidden: looker does not belong to this email - O looker não pertence ao email fornecido
404 Not Found: looker not found - Looker não encontrado
500 Internal Server Error: Erro interno do servidor

🔍 Notas

  • Pelo menos um campo (name ou cryptos) deve ser fornecido para atualização
  • Usuários só podem modificar seus próprios lookers (validação por email)
  • A atualização substitui completamente os campos fornecidos