Skip to content

Обновить профиль текущего пользователя

Request

Обновляет профиль текущего авторизованного пользователя.

Можно передать любое из полей:

  • first_name
  • last_name
  • city
  • avatar
  • geolocation
  • category_ids

Особенности валидации:

  • хотя бы одно из полей должно быть заполнено корректно
  • geolocation валиден только если переданы оба поля: lat и lon
  • если передан city, обязательно должна быть передана geolocation; geolocation без city разрешена
  • city, address и geolocation устанавливаются этим эндпоинтом только один раз — когда у пользователя в БД ещё нет геолокации; повторно переданные данные локации игнорируются
  • при передаче city и geolocation backend сохраняет выбранные координаты без повторного геокодирования, а address устанавливает равным city
  • address является вычисляемым полем и напрямую в запросе не принимается
  • для avatar проверяется доступ пользователя к файлу и возможность использовать файл как аватар
  • category_ids, если передан, должен быть массивом существующих ID категорий; пустой массив допустим
  • category_ids у пользователя используется для рекомендаций

Требования:

  • требуется JWT
Security
bearerAuth or jwtCookie
Bodyapplication/jsonrequired
first_namestring or null, [ 1 .. 100 ] characters.*\S.*
last_namestring or null, [ 1 .. 100 ] characters.*\S.*
citystring or null, [ 1 .. 30 ] characters.*\S.*
avatarinteger or null, (int64), >= 1

ID файла, который принадлежит пользователю и может быть установлен как аватар.

geolocationobject or null(ProfileGeolocation)
category_idsArray of integers

Category IDs used for personalized recommendations for the user. When the field is provided, it must be an array. An empty array is allowed and clears the saved preferences. All IDs must exist.

curl -i -X PATCH \
  https://felmee.com/api/user \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "first_name": "Ivan",
    "last_name": "Ivanov"
  }'

Responses

Профиль успешно обработан

Bodyapplication/json
codeErrorstring or nullrequired

Устаревший camelCase-alias поля error_code; при ошибке оба поля содержат одинаковое значение.

successbooleanrequired

Флаг успешного выполнения запроса

messagestringrequired

Человекочитаемое описание результата

error_codestring or null(ERROR_CODE)required

Код ошибки. Для успешных ответов всегда null.

Enum:"invalid_body""unauthorized""not_found""conflict""object_modified_by_another_thread""action_too_late""too_many_request""code_is_gone""forbidden""user_blocked"
dataobject or null(UpdateCurrentUserData)required

Полезная нагрузка. Может быть объектом, массивом или null.

Response
{ "success": true, "message": "User updated successfully", "error_code": null, "data": { "changed": true, "user": {} } }