Comportamento di PostAlerter after_save_post

Il PostAlerter include un sistema di controlli e trigger per le notifiche inviate dopo il salvataggio di un post regolare, a partire dal metodo after_save_post.

Ho lavorato su quel metodo per il plugin Follow (in particolare vedi discourse-follow/plugin.rb at main · discourse/discourse-follow · GitHub) e ho alcune riflessioni e domande che mi piacerebbe condividere con gli altri.

Data la natura del PostAlerter, credo che questa discussione vada oltre il plugin Follow. Posso vedere come i miei suggerimenti qui sotto possano essere rilevanti anche per il plugin assign, il plugin polls e altri ancora.

Il mio pensiero attuale segue queste linee (sarei felice di creare una PR per uno qualsiasi dei punti seguenti):

  1. Un hook o un trigger di eventi nel metodo after_save_post per consentire ai plugin di aggiungere utenti a cui inviare notifiche (o meno) nel contesto dei controlli e dei contatori di quel metodo sarebbe ottimo. Quando si invia una notifica, ci sono tre considerazioni chiave:

    1. Dovrei inviare una notifica a un utente riguardo a un post?
    2. Ho già inviato una notifica a un utente riguardo a un post?
    3. Come dovrei notificare un utente riguardo a un post (cioè rispettando le sue impostazioni)?

    Ognuna di queste sarebbe più facile da valutare nel contesto del metodo after_save_post.

  2. Un utilizzo modificato dei tipi di notifica. Attualmente ci sono alcune costanti di tipo di notifica utilizzate nel PostAlerter che vengono iterate o filtrate in controlli e contatori specifici, ad esempio NOTIFIABLE_TYPES e COLLAPSED_NOTIFIABLE_TYPES.

    Attualmente esiste un tipo di notifica generico :custom, ma non è particolarmente utile nel contesto di after_save_post, poiché l’aggiunta di custom alle costanti di tipo significherebbe che tutti gli utilizzi del tipo di notifica custom ne verrebbero influenzati.

    Si noti che il plugin assign utilizza attualmente il tipo di notifica :custom, ma lo usa solo per notifiche relative ad azioni minori (non post regolari) e non lo utilizza per alcuna query (poiché qualsiasi plugin o servizio può utilizzarlo; utilizza il campo message per cercare le notifiche di assegnazione).

1 Mi Piace