Воспроизвести некоторые действия родного фронтэнда с X-API-Token не получается. Соответственно возникает ряд вопросов: как с помощью X-API-Token (1) отредактировать пост (2) запретить/разрешить комменты (3) захайдить (4) забанить (5) обновить профиль (6) получить список реквсестов, на которые я должен ответить (7) подключиться к риалтайму
а что значит "не получается"? Вообще запрос берется любым сниффером, к нему добавляется X-API-Token, и все работает. Я постараюсь написать в доке перечисленные случаи... ‎- псы в рапиде
Например, если редактировать пост и вместо куки, X-CSRF-Token и X-River-Signature дать только X-API-Token, в ответ я получаю {"error":"422 Unprocessable entity","invalid_authenticity_token":true}. При этом редактировать комментарии с одним лишь X-API-Token получается. ‎- Good command or file name
если в конец адреса https://mokum.place/api/v1/posts/{id} добавить ".json", как я делаю с комментарием, получается 404 ‎- Good command or file name
@sitlar: хмммм, окей, я посмотрю завтра. Не должно так быть. ‎- псы в рапиде
Я пытался загрузить аттачмент, в поле authenticity_token передавал X-API-Token. Получается 404. Помимо остального, очень бы хотелось иметь возможность получать объект user/group для произвольного аккаута. ‎- Good command or file name
@sitlar: прошу прощения за задержку. Итак, я документировал редактирование поста: https://mokum.place/about/api/posts (там не хватало заголовка Content-Type: application/json). Это покрывает пункты (1) и (2). ‎- псы в рапиде
@sitlar: (3) да, хайд и бан юзеров были заблокированы для токенов, разблокировал и документировал хайд: https://mokum.place/about/api/users ‎- псы в рапиде
@sitlar: (7) я предварительно рассказал, как работать с рилтаймом: https://mokum.place/about/api/realtime Так как я не уверен, что подписка с другого сайта будет работать, то предлагаю в случае проблем встретиться в любой из слак, мокумовской или фрифидовской, и обсудить по месту. Спасибо, ‎- псы в рапиде
@sitlar: "получать объект user/group для произвольного аккаунта" — речь видимо про https://mokum.place/api/v1/users/squadette.json и https://mokum.place/api/v1/groups/mokum-support.json (если каких-то полей не хватает, то я добавлю — кажется, там точно не хватает аватара). ‎- псы в рапиде
@squadette спасибо! Редактирование постов и бан заработали. В смысле хайдов, я имел в виду хайды постов. Я пытался по аналогии сделать POST на /api/v1/posts/577109/hide.json но в ответ получил 401. ‎- Good command or file name
Хайды постов заработали ‎- Good command or file name
@sitlar: ага, должны были. мне кажется, что пункты (5) и (6) это ерунда, я бы скорее занялся седьмым пунктом который самый "интересный" и потенциально проблемный. Update: https://mokum.place/api/v1/subscription_requests.json ‎- псы в рапиде
С седьмым разделался, за исключением удаления и обновления комментов. Как это делает мокум? У меня только одна мысль: отдельно запрашивать пост со всеми комментами и удалять/обновлять соответственно. ‎- Good command or file name
Сейчас основной приоритет - загрузка аттачей ‎- Good command or file name
@sitlar: хм, нет, после удаления комментов ты просто получишь новую версию поста. Если комменты развернуты, то делается так: в момент разворачивания комментов ты ты вместе с развернутыми комментами получаешь сигнатуру ривера, соответствующего одиночному посту (где комменты развернуты). Подписываешься на этот ривер и там будут приходить уже испрравления по развернутому посту. ‎- псы в рапиде
@squadette меня смущает ситуация, когда реалтайм постепенно приносит комменты, и потом один в середине удаляют. Это зачем надо подписываться на просто, как только у него число комментов больше N? И как понять, какой комментарии отредактировали? ‎- Good command or file name
@sitlar: рилтайм в мокуме не "постепенно приносит комменты", там каждый раз тебе приезжает полная актуальная версия поста со всеми абсолютно полями. поэтому если в середине удалят коммент — то тебе просто приедет апдейт, где этого коммента не будет. Подписываться надо не "когда число комментов больше N", а когда юзер сделал разворачивание комментариев в посте (а значит, ему интересны обновления по развернутой версии. Также надо следить за полем version, и обновлять свою структуру данных только если приехавший version больше текущего. В частности, тебе может приехать устаревшая версия поста (если какой-то воркер затупил) — такие записи надо просто игнорировать. ‎- псы в рапиде
И да, тебе не надо "понимать какой комментарий отредактировали". Рилтайм архитектурно заточен на рендеринг в стиле React — ты просто с нуля генерируешь HTML для "текущей версии", и оно само обновляет DOM как надо. ‎- псы в рапиде