Dati di callback: category_id vs category_slug

Potrei sbagliarmi, ma sembra che i dati restituiti da un callback ‘post’ contengano category_slug ma non category_id, mentre quelli restituiti da un callback ‘topic’ contengono category_id ma non category_slug.

Se è così (e non sto trascurando qualche configurazione), sarebbe utile che entrambi i callback standardizzassero l’uso di category_id o category_slug, o restituissero entrambi.

Sarebbe anche ottimo se entrambi i tipi includessero parent_category_id e parent_category_slug quando si proviene da un post o un argomento in una sottocategoria. Attualmente, entrambi forniscono category_id, il quale non indica se si tratta di una categoria o di una sottocategoria.

1 Mi Piace

Esiste l’intenzione di aggiornare i webhook in modo che includano sempre sia category_id che category_slug, indipendentemente dal fatto che il webhook sia per un ‘post’ o per un ‘topic’?

Le informazioni attuali del callback ‘post’ sono subottimali perché non c’è un modo affidabile per determinare a quale categoria appartengono… poiché (se ho capito correttamente) category_slug non deve essere unico. Se hai diverse categorie, ciascuna con tre sottocategorie con gli stessi slug (perché hai bisogno che la navigazione delle sottocategorie appaia identica all’utente), non puoi capire in quale sottocategoria è stato creato il ‘post’ solo basandoti sullo slug.

Non sono uno sviluppatore Ruby, ma mi chiedo se ci sia un bug nella classe post_serializer:

def include_category_id?
    @add_title
  end

Non dovrebbe essere:

def include_category_id?
    topic&.category_id.present?
end

Ho creato una PR per mostrare questa modifica. Potrebbe essere una follia, ma potrebbe aiutare a trovare la soluzione reale…

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

2 Mi Piace

In alternativa, se non ci sono problemi con post_serializer, ma il problema è che i webhook ‘post’ non restituiscono un category_id…

non si potrebbe aggiungere il seguente codice a web_hook_post_serializer.rb:

  def include_category_id?
    true
  end

(Come già esiste un metodo simile per include_topic_title?)…

Purtroppo non possiamo apportare queste modifiche noi stessi, poiché abbiamo un account ospitato a pagamento su Discourse.

Sì, funziona. L’ho aggiunto:

Come cliente ospitato, lo riceverai la prossima volta che il tuo forum verrà distribuito.

6 Mi Piace