# Возможный интерфейс работы с постами - Создание поста - Создание записи без аттачей - Загрузка файловых аттачей - Обновление поста - Редактирование поста - Загрузка файловых аттачей - Обновление поста ## Создание записи без аттачей `POST /creators/{creator_id:}/posts/create` IN: ```javascript= { title: '', award_id: 0, description: '' } ``` OUT: ```javascript= { id: 0 } ``` При первичном создании запись может помечаться черновиком, чтобы не показываться в поиске. ## Загрузка файловых аттачей `POST /creators/{creator_id:}/posts/{post_id:}/audio` `POST /creators/{creator_id:}/posts/{post_id:}/image` `POST /creators/{creator_id:}/posts/{post_id:}/video` IN (FormData): ```= file=FILE ``` OUT: ```javascript= { id: 0 } ``` Файловый аттач должен помечаться не прикрепленным. Для сортировки аттачей Вам необходимо будет определить их порядок, и ,например, в поле порядка записать `-1` для не прикрепленных аттачей. ## Загрузка нескольких аттачей одновременно `POST /creators/{creator_id:}/posts/{post_id:}/many` Ограничение: - суммарный объем тела не должен превышать $N$ МБ IN (FormData): ```= image[]=FILE audio[]=FILE video[]=FILE ``` OUT: ```javascript= { id: 0 } ``` ## Обновление поста `PUT /creators/{creator_id:}/posts/{post_id:}` IN: ```javascript= { title: '', award_id: 0, description: '', id_draft: false, // Является запись черновиком? body: [ { type: 'text', // тип аттача text: 'innerText' // внутренний текст }, { type: 'video', id: 0 // ID загруженного ранее аттача }, { type: 'music', id: 0 // ID загруженного ранее аттача } ] } ``` Примечание, если файловый аттач (ранее загруженный) не указан при обновлении, то он удаляется. Если указывать, что порядок для аттача не установлен, тогда можно спокойно удалить все аттачи с неустоновленным порядком.