# changeportaldefaultheme.image.upload
Scope:
changeportaldefaulthemeКто может вызывать: Пользователь с правом записи на модуль для
siteId(UserHelper::canConfigureBranding). Подробнее: Права доступа
Загрузить брендинговое изображение (логотип, фон, favicon) и привязать к ключу LESS
HTTP: POST (multipart/form-data)
Побочные эффекты: сохраняет файл в b_file, обновляет files в опциях темы, пересобирает LESS/CSS
Файл передаётся под именем file или под именем ключа (field). Параметр field — алиас key.
Параметры метода
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
siteId |
string |
нет | ID сайта. По умолчанию — сайт по умолчанию |
field |
string |
да | Ключ привязки, напр. file-@client_logo. Алиас: key |
file |
file |
да | Файл изображения (jpg, jpeg, png, gif, svg; максимум 5 МБ) |
Возвращаемые данные
Ответ в конверте модуля: result.result:
| Поле | Описание |
|---|---|
fieldKey |
Ключ привязки |
fileId |
ID файла в b_file |
path |
Веб-путь к файлу |
result.error.
Обработка ошибок
| Код | Описание |
|---|---|
UNAUTHORIZED |
Пользователь не авторизован |
ACCESS_DENIED |
Нет права записи на модуль для сайта |
SITE_NOT_FOUND |
Сайт с указанным siteId не найден |
VALIDATION_ERROR |
Не передан файл или недопустимый fieldKey |
INVALID_FILE_TYPE |
Недопустимый тип/содержимое файла |
FILE_TOO_LARGE |
Файл больше 5 МБ |
INTERNAL_ERROR |
Внутренняя ошибка сервера |
Пример запроса (POST)
Прогон на портале 76593.dev.wehive.digital, пользователь вебхука 1, файл postman/sample-logo.png.
curl -X POST "https://{портал}/rest/{user_id}/{webhook_code}/changeportaldefaultheme.image.upload.json" \
-H "Accept: application/json" \
-F "siteId=s1" \
-F "field=file-@client_logo" \
-F "file=@sample-logo.png"
Пример ответа
{
"result": {
"result": {
"fieldKey": "file-@client_logo",
"fileId": 1218,
"path": "/upload/ithive.changeportaldefaultheme/c57/drl9sta7bh4buprtkme6dua393xc3m47/vibe-test.png"
},
"error": null
}
}
Пример ответа (ошибка)
Запрос без файла:
{
"result": {
"result": null,
"error": {
"code": "VALIDATION_ERROR",
"message": "Файл не передан.",
"details": {
"field": "file"
}
}
}
}
См. также
Предыдущая
Следующая