/dev/member/shared/load

Метод загружает профиль тестового пользователя в текущий профиль. Данные текущего пользователя будут перезаписаны данными выбранного shared_ профиля.

Адрес метода

/dev/member/shared/load

Требует сессию пользователя

Метод доступен только администраторам

Параметры

Параметр Обязательный Тип Описание
name ДА string Имя тестового пользователя, начинающееся с shared_

Note

Импорт несёт profile_version самой фикстуры, поэтому после него метод сразу прогоняет цепочку миграций (ProfileMigration::migrate()) на версию из заголовка X-Game-Version — так же, как это делает авторизация. Отдельная переавторизация ради миграции импортированных данных не нужна.

Если profile_version фикстуры новее версии клиента, вернётся ошибка 10403 Client version is older than profile version с appreload: true — фикстура снята на более свежей сборке, чем та, что её загружает.

Note

Прогресс ачивок и ежедневных заданий импорт всегда переписывает целиком, а не дополняет. Если в загружаемом профиле секций objective_progress/objective_counters нет (старый экспорт, снятый до фичи), прогресс текущего игрока стирается, а отметка о миграции profile.1.0.5.objective_backfill не восстанавливается — счётчики пересобираются из импортированного профиля (уровни, скиллы, гача, лучшее комбо) на ближайшем прогоне цепочки миграций.

Так же ведёт себя member_stats (лучшее комбо): секция stats в блобе есть — переносится, нет — обнуляется. Иначе бэкфил досчитывал бы ачивку о комбо из боёв предыдущего владельца аккаунта.

Так же ведёт себя секция freebies (бесплатные предложения): она хранит отметки дня последнего получения, а не журнал, поэтому её отсутствие в блобе означает «ничего не забрано» и открывает все слоты. Иначе импортированный профиль унаследовал бы закрытые на сутки слоты от предыдущего владельца аккаунта.

Если секции есть, они импортируются, но сверяются с конфигом этого сервера: ачивки и задания с неизвестным objective_id, тиры с неизвестным порогом и счётчики с неизвестным именем отбрасываются. День дневных строк переносится на «сегодня» импортирующего игрока. Ротация заданий импортируется только целиком пригодной — если игрок ниже уровня разблокировки, или хотя бы одно задание/сундук ротации в конфиге отсутствует, ротация и дневные счётчики не переносятся и собираются заново. Нотификации о завершении (pendingCompletions) не переносятся: иначе чужие попапы отыгрались бы у импортирующего игрока пачкой.

Результат

{
    "response": {
        "success": 1,
        "timestamp": 1758253785.916074
    },
    "update": {
        "member": {
            ...,
        }
    }
}

Если профиль с таким именем не найден, возвращается ошибка 10002 Invalid parameter name.