Clone
2
API
s.zotov edited this page 2026-04-13 12:25:01 +05:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

API

Все endpoints начинаются с /api/. Авторизация через cookie z51_token (кроме /api/auth/*).

Авторизация

Метод URL Body Описание
POST /api/auth/login {login, password} Логин, возвращает user object, ставит cookie
POST /api/auth/logout Выход, удаляет cookie
GET /api/auth/me Текущий пользователь {id, login, name, role, projects, theme}
PUT /api/auth/preferences {theme} Сохранить настройки пользователя

Проекты

Метод URL Body Описание
GET /api/projects Список проектов (фильтруется по user.projects)
POST /api/projects {name} Создать проект
GET /api/project/:name Все данные: meta, settings, draft, presets, letters, notes, blockText
PUT /api/project/:name/block {blockText, sourceName} Сохранить block.pug
PUT /api/project/:name/settings {...settings} Сохранить настройки проекта
PUT /api/project/:name/draft [...blocks] Сохранить черновик
PUT /api/project/:name/presets [...presets] Сохранить пресеты

Письма

Метод URL Body Описание
GET /api/project/:name/letters Индекс писем {list, currentId}
PUT /api/project/:name/letters {list, currentId} Обновить индекс
GET /api/project/:name/letter/:id Данные письма
PUT /api/project/:name/letter {id, blocks, ...} Сохранить (сервер добавляет createdBy/updatedBy)
DELETE /api/project/:name/letter/:id Удалить письмо
GET /api/project/:name/letter/:id/history История изменений
PUT /api/project/:name/letter/:id/history {snapshot} Добавить в историю

Заметки

Метод URL Body Описание
GET/PUT /api/project/:name/notes {list, currentId} Индекс заметок
GET /api/project/:name/note/:id Данные заметки
PUT /api/project/:name/note {id, content, ...} Сохранить
DELETE /api/project/:name/note/:id Удалить

Рендер

Метод URL Body Описание
POST /api/project/:name/render-email {pugCode, layout} Рендер Pug→HTML. Обрабатывает Mindbox/RetailCRM теги для превью

Фиды и товары

Метод URL Body Описание
POST /api/project/:name/feed-refresh Сбросить кэш фида, вернуть diff
POST /api/project/:name/feed-lookup {ids} Поиск товаров по массиву ID
POST /api/project/:name/feed-suggest {productId, excludeIds, search} Подбор замены (по серии, стране, цене)
POST /api/project/:name/auto-assemble {type, layout, productType, priceMin, priceMax, excludeMaterials, excludeIds, anchorIds} Авто-подбор. Возвращает {blocks, total} с usedDaysAgo для каждого товара

FTP / Картинки

Метод URL Body Описание
POST /api/project/:name/ftp/test Проверить подключение (FTP или локальное)
POST /api/project/:name/ftp/upload {imageData, fileName, folder} Загрузить (base64). Max 30 MB
POST /api/project/:name/ftp/list {folder} Список файлов в папке

Прочее

Метод URL Описание
POST /api/upload-image Локальная загрузка (fallback без FTP)
POST /api/check-links Проверка массива URL на доступность
GET/PUT /api/config Google Sheets конфиг
GET /api/stats Статистика по всем проектам

Админ (role: admin)

Метод URL Описание
GET /api/admin/users Список пользователей
POST /api/admin/users Создать {login, password, name, role, projects}
PUT /api/admin/users/:id Обновить
DELETE /api/admin/users/:id Удалить (нельзя удалить себя)
GET /api/admin/logs?user=&project=&action=&from=&to=&page=&limit= Аудит-логи