Skip to content

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

Request

Частично обновляет профиль текущего мастера.

Можно передавать как пользовательские, так и мастерские поля.

Правила валидации:

  • валидным считается запрос, в котором корректно заполнено хотя бы одно поле
  • first_name, last_name, если переданы, не должны быть пустыми и не должны быть длиннее 100 символов
  • city, если передан, не должен быть пустым и не должен быть длиннее 30 символов
  • если передан city, обязательно должна быть передана geolocation; geolocation без city разрешена
  • avatar, если передан, должен быть положительным ID файла
  • avatar должен принадлежать текущему пользователю и быть допустимым для установки как аватар
  • geolocation, если передана, должна содержать lat в диапазоне [-90, 90] и lon в диапазоне [-180, 180]
  • category_ids, если передан, должен быть массивом существующих ID категорий; пустой массив допустим
  • category_ids у мастера описывает список оказываемых им услуг
  • example_work_images, если передан, должен содержать от 1 до 10 положительных ID файлов
  • все файлы из example_work_images должны принадлежать текущему пользователю и иметь purpose CARD
  • experience_years, если передан, должен быть в диапазоне от 0 до 60
  • address, если передан, не должен быть пустым и не должен быть длиннее 1000 символов
  • если переданы address и geolocation, backend сохраняет оба значения напрямую без повторного геокодирования
  • если передан address без geolocation, backend геокодирует адрес; при неуспешном геокодировании возвращается 422 geocoding_failed
  • если передана geolocation без address и без city, backend выполняет обратное геокодирование и сохраняет найденный адрес
  • если переданы city и geolocation без address, backend сохраняет координаты напрямую, а address устанавливает равным city
  • description, если передан, не должен быть пустым и не должен быть длиннее 1000 символов
  • interior_description, если передан, не должен быть пустым и не должен быть длиннее 1000 символов
  • interior_images, если передан, должен содержать от 1 до 10 положительных ID файлов
  • все файлы из interior_images должны принадлежать текущему пользователю и иметь purpose CARD
  • advantages, если передан, должен содержать от 1 до 5 непустых строк длиной до 50 символов каждая
  • service_locations, если передан, должен содержать от 1 до 3 объектов с уникальными service_location; для каждого объекта обязателен address, необязательный geolocation геокодируется по адресу, для IN_SALON обязателен salon_name, для CLIENT_PLACE обязателен radius_km из [1, 5, 10, 20]

Требования:

  • требуется 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 of services provided by the master. When the field is provided, it must be an array. An empty array is allowed. All IDs must exist.

example_work_imagesArray of integers or null, [ 1 .. 10 ] items

ID карточек мастера. Все файлы должны принадлежать пользователю и иметь purpose CARD.

experience_yearsinteger or null, (int64), [ 0 .. 720 ]
addressstring or null, [ 1 .. 1000 ] characters.*\S.*
descriptionstring or null, [ 1 .. 1000 ] characters.*\S.*
interior_descriptionstring or null, [ 1 .. 1000 ] characters.*\S.*
interior_imagesArray of integers or null, [ 1 .. 10 ] items

ID фотографий интерьера. Все файлы должны принадлежать пользователю и иметь purpose CARD.

advantagesArray of strings or null, [ 1 .. 5 ] items

Преимущества мастера. Каждый элемент должен быть непустой строкой длиной до 50 символов.

service_locationsArray of objects or null, [ 1 .. 3 ] items, unique(ServiceLocationRequest)
curl -i -X PATCH \
  https://felmee.com/api/master \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "first_name": "Anna",
    "city": "Minsk",
    "geolocation": {
      "lat": 53.9,
      "lon": 27.56
    }
  }'

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(UpdateCurrentMasterData)required

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

Response
{ "success": true, "message": "Master updated successfully", "error_code": null, "data": { "changed": true, "master": {} } }