Callback-Datenformat: category_id vs category_slug

Ich könnte mich irren, aber es sieht so aus, als ob die von einem ‘post’-Callback zurückgegebenen Daten ein category_slug, aber keine category_id enthalten, während die von einem ‘topic’-Callback zurückgegebenen Daten eine category_id, aber kein category_slug haben.

Falls das zutrifft (und ich übersehe keine Konfiguration irgendwo), wäre es schön, wenn beide Callbacks sich entweder auf category_id oder category_slug standardisieren würden oder beide zurückgeben würden.

Es wäre auch hervorragend, wenn beide Typen parent_category_id und parent_category_slug hätten, falls sie von einem Post oder Topic in einer Unterkategorie stammen. Momentan liefern beide eine category_id, die nicht angibt, ob es sich um eine Kategorie oder eine Unterkategorie handelt.

1 „Gefällt mir“

Gibt es die Absicht, Webhooks so zu aktualisieren, dass sie immer sowohl category_id als auch category_slug enthalten, unabhängig davon, ob der Webhook für einen ‘Post’ oder ein ‘Topic’ ist?

Die aktuellen ‘Post’-Rückrufinformationen sind suboptimal, da es keine zuverlässige Möglichkeit gibt, zu bestimmen, zu welcher Kategorie sie gehören… denn (wenn ich das richtig verstehe) muss category_slug nicht eindeutig sein. Wenn Sie mehrere verschiedene Kategorien haben, die jeweils drei Unterkategorien mit denselben Slugs enthalten (weil die Unterkategorien-Navigation für den Benutzer gleich aussehen muss), können Sie anhand des Slugs allein nicht erkennen, in welcher Unterkategorie der ‘Post’ erstellt wurde.

Ich bin kein Ruby-Entwickler, aber ich frage mich, ob es in der Klasse post_serializer einen Fehler gibt:

def include_category_id?
    @add_title
  end

Sollte das nicht so sein:

def include_category_id?
    topic&.category_id.present?
end

Ich habe einen PR erstellt, um diese Änderung zu zeigen. Das mag verrückt klingen, könnte aber helfen, die eigentliche Lösung zu finden…

https://github.com/discourse/discourse/compare/master...danielmcquillen:master

2 „Gefällt mir“

Alternativ, falls das Problem nicht beim post_serializer liegt, sondern darin besteht, dass ‘post’-Webhooks keine category_id zurückgeben…

könnte dann nicht folgender Code zu web_hook_post_serializer.rb hinzugefügt werden:

  def include_category_id?
    true
  end

(Genauso wie eine ähnliche Methode bereits für include_topic_title? vorhanden ist)…

Leider können wir diese Änderungen nicht selbst vornehmen, da wir ein kostenpflichtiges gehostetes Konto bei Discourse haben.

Ja, das funktioniert. Ich habe es hinzugefügt:

Als Kunde mit gehostetem Forum erhalten Sie es beim nächsten Deployment Ihres Forums.

6 „Gefällt mir“