كيفية تغيير مستويات الإشعارات لجميع المستخدمين في موضوع

على الرغم من أنه تجدر الإشارة إلى أنه إذا كانوا يشاهدونه، فسيظلون يتلقون إشعارات عندما يكون غير مدرج.

أعتقد أنه يمكنك الآن استخدام نقطة النهاية /t/TOPIC_ID/notifications لتعيين مستوى الإشعار للمستخدم في موضوع معين، إذا كان ذلك خيارًا أكثر جاذبية من وحدة تحكم Rails؟

تفاصيل إضافية
  • يجب أن يكون مستخدم واجهة برمجة التطبيقات مسؤولاً (لذلك يجب أن يكون لديه نطاق عالمي) لتغيير مستوى إشعار مستخدم آخر.
  • عنوان URL لنقطة النهاية: siteurl/t/<topic_id>/notifications
  • نوع الطلب: POST
  • المعلمات:
    • username أو external_id للمستخدم المستهدف. إذا كان فارغًا، فسيتم تغيير مستوى إشعار المسؤول الخاص بالموضوع.
    • notification_level: قيمة عددية تتوافق مع المستوى
      • muted: 0,
      • regular: 1,
      • normal: 1, # اسم مستعار لـ regular
      • tracking: 2,
      • watching: 3,

ولكن بالنسبة لوحدة تحكم Rails، أعتقد أنها ستكون هذه: (تذكر أخذ نسخة احتياطية في حالة حدوث أي شيء قبل محاولة تغيير الأشياء في Rails :warning:)

TopicUser.where(topic_id: TOPIC_ID).update(notification_level: 1)

(1 هو عادي، 0 هو كتم)

سيؤدي ذلك إلى تغيير مستويات الموضوع، ولكن قد تكون هناك مستويات للفئة والعلامات التي قد لا تزال تؤثر على من يتلقى تنبيهًا للنشاط الجديد.

واستعلام صغير لمستكشف البيانات للتحقق من المستويات للمستخدمين في موضوع ما إذا كان ذلك مفيدًا أيضًا:

SELECT 
    topic_id,
    user_id,
    notification_level
FROM topic_users
WHERE topic_id = TOPIC_ID