سلوك PostAlerter after_save_post

يحتوي PostAlerter على نظام من الفحوصات والمحفزات للإشعارات المرسلة بعد حفظ منشور عادي، بدءًا من دالة after_save_post.

لقد كنت أتعامل مع هذه الدالة في إضافة Follow (انظر تحديدًا discourse-follow/plugin.rb at main · discourse/discourse-follow · GitHub)، ولديّ بعض الأفكار والأسئلة التي أود أن أسمع آراء الآخرين فيها.

نظرًا لطبيعة PostAlerter، أعتقد أن هذه المناقشة تتجاوز إضافة Follow. أستطيع أن أرى أن مقترحاتي أدناه ذات صلة بإضافة assign وإضافة polls، من بين إضافات أخرى.

فكري الحالي يسير على هذا النحو (سأكون سعيدًا بتقديم طلب دمج PR لأي من الخيارات التالية):

  1. وجود خطاف (hook) أو محفز حدث في دالة after_save_post يسمح للإضافات بإضافة مستخدمين لإرسال إشعارات إليهم (أو عدم إرسالها) ضمن سياق الفحوصات والعدادات في تلك الدالة سيكون رائعًا. عند إرسال إشعار، هناك ثلاثة اعتبارات رئيسية:

    1. هل يجب عليّ إرسال إشعار إلى مستخدم بشأن منشور معين
    2. هل أرسلت بالفعل إشعارًا إلى مستخدم بشأن منشور معين
    3. كيف يجب عليّ إشعار المستخدم بشأن المنشور (أي احترام إعداداته)

    سيكون من الأسهل تقييم كل منها ضمن سياق دالة after_save_post.

  2. استخدام مُعدّل لأنواع الإشعارات. حاليًا، هناك عدة ثوابت لأنواع الإشعارات مستخدمة في PostAlerter يتم تكرارها أو تصفيتها في فحوصات وعدادات محددة، مثل NOTIFIABLE_TYPES وCOLLAPSED_NOTIFIABLE_TYPES.

    يوجد حاليًا نوع إشعار عام :custom، لكنه ليس مفيدًا بشكل خاص في سياق after_save_post، حيث إن إضافة custom إلى ثوابت النوع تعني أن جميع استخدامات نوع الإشعار custom ستتأثر.

    تجدر الإشارة إلى أن إضافة assign تستخدم حاليًا نوع الإشعار :custom، لكنها تستخدمه فقط للإشعارات المتعلقة بإجراءات صغيرة (وليس المنشورات العادية)، ولا تستخدمه في أي استعلامات (حيث يمكن لأي إضافة أو خدمة استخدامه؛ فهي تستخدم حقل الرسالة للبحث عن إشعارات assign بدلاً من ذلك).

إعجاب واحد (1)