Возможно, я ошибаюсь, но похоже, что данные, возвращаемые колбэком ‘post’, содержат category_slug, но не содержат category_id, тогда как данные от колбэка ‘topic’ имеют category_id, но не имеют category_slug.
Если это так (и я не упустил какую-либо настройку), было бы здорово, если бы оба колбэка стандартизировались на использовании либо category_id, либо category_slug, либо возвращали бы оба поля.
Также было бы превосходно, если бы оба типа включали parent_category_id и parent_category_slug в случае, если запись или тема находится в подкатегории. В настоящее время оба возвращают category_id, что не указывает, является ли это категорией или подкатегорией.
Есть ли намерение обновить вебхуки так, чтобы они всегда включали как category_id, так и category_slug, независимо от того, предназначен ли вебхук для ‘поста’ или ‘темы’?
Текущая информация обратного вызова для ‘поста’ неоптимальна, поскольку нет надёжного способа определить, к какой категории он относится… (если я правильно понимаю), category_slug не обязан быть уникальным. Если у вас есть несколько разных категорий, каждая из которых содержит три подкатегории с одинаковыми слагами (потому что навигация по подкатегориям должна выглядеть для пользователя одинаково), вы не сможете определить, в какой именно подкатегории был создан ‘пост’, только по слагу.
Я не разработчик на Ruby, но мне интересно, нет ли ошибки в классе post_serializer:
def include_category_id?
@add_title
end
Разве это не должно быть так:
def include_category_id?
topic&.category_id.present?
end
Я создал PR, чтобы показать это изменение. Возможно, это бред, но это может помочь найти истинное решение…