Обновление профиля

Запрос на частичное обновление профиля пользователя по UUID пользователя

Универсальный метод для профиля. Поведение зависит от переданных полей:

  1. обновить базовые поля — без code: first_name, last_name, middle_name, gender, birthdate, address_actual, timezone_id, region_id;
  2. установить кандидата на email — без code: email_candidate — сохраняется как кандидат, требует дальнейшего подтверждения;
  3. установить кандидата на телефон — без code: phone_number_candidate — сохраняется как кандидат;
  4. сменить email — требует code (OTP intent=5, SmsChangeEmail): email (= значение email_candidate) + code. Требует подтверждённый телефон;
  5. сменить телефон — требует code (OTP intent=4, EmailChangePhone): phone_number (= значение phone_number_candidate) + code. Требует подтверждённый email;
  6. сменить пароль — требует code (OTP intent=3, PasswordChange): password (новый) + old_password + code;
  7. верифицировать email — требует code (OTP intent=6, EmailVerify): email_verified: true + code;
  8. верифицировать телефон — требует code (OTP intent=7, SmsVerify): phone_number_verified: true + code;
  9. сменить OTP-транспорт — требует code (OTP intent=8, TransportChange): otp_transport + code. Требует подтверждённый соответствующий контакт.

Метод запроса: PATCH.

Запрос:

/users/{user_id}

Параметры запроса (Parameters):

Схема данных запроса (Schema):

Пример тела запроса:

  1. обновить базовые поля:
{
  "first_name": "Иван",
  "last_name": "Иванов",
  "gender": "MALE",
  "birthdate": "1990-01-15",
  "timezone_id": 1,
  "region_id": 77
}
  1. установить кандидата на email:
{
  "email_candidate": "newemail@example.com"
}
  1. установить кандидата на телефон:
{
  "phone_number_candidate": "+79009876543"
}
  1. сменить email (OTP intent=5):
{
  "email": "newemail@example.com",
  "code": "123456"
}
  1. сменить телефон (OTP intent=4):
{
  "phone_number": "+79009876543",
  "code": "123456"
}
  1. сменить пароль (OTP intent=3):
{
  "old_password": "OldSecurePass123",
  "password": "NewSecurePass456",
  "code": "123456"
}
  1. верифицировать email (OTP intent=6):
{
  "email_verified": true,
  "code": "123456"
}
  1. верифицировать телефон (OTP intent=7):
{
  "phone_number_verified": true,
  "code": "123456"
}
  1. сменить OTP-транспорт (OTP intent=8):
{
  "otp_transport": "sms",
  "code": "123456"
}

Ответ:

Схема данных ответа (Schema): User.

Пример ответа:

{
  "user_id": "550e8400-e29b-41d4-a716-446655440000",
  "email": "user@example.com",
  "email_verified": true,
  "phone_number": "+79001234567",
  "phone_number_verified": false,
  "is_active": true,
  "otp_transport": "email",
  "first_name": "Иван",
  "last_name": "Иванов",
  "middle_name": "Иванович",
  "gender": "MALE",
  "birthdate": "1990-01-15",
  "timezone_id": 1,
  "region_id": 77,
  "address_actual": null,
  "email_candidate": null,
  "phone_number_candidate": null
}

Возможные сообщения об ошибках: