주제에서 모든 사용자의 알림 수준을 변경하는 방법?

모든 사용자의 특정 주제 알림 수준을 단일 값으로 설정하는 안전한 방법을 아는 분이 있나요? Rails 콘솔에서 처리해야 할 것 같습니다.

“Watching” 또는 “Tracking” 대신 모든 사용자의 알림 수준을 “Mute” 또는 "Normal"로 변경하고 싶습니다.

복잡한 관리 상황에서 대용량 주제에서의 활동을 줄이는 것이 목표입니다.

관리자 메뉴
설정
사용자 환경 설정


잠깐, 죄송합니다. 주제 1개만 말씀하시는 거죠? 네, 레일즈가 필요할 수도 있겠네요

슬로우 모드를 활성화하는 것은 어떨까요? 활동량을 줄이는 데 도움이 되지 않을까요? :thinking:

이 상황은 복잡해서, 수 시간의 관리 시간을 소모할 수 있는 공개 논의를 유발하는 시각적 표시를 원하지 않습니다. (저는 이미 완전히 벅차 있습니다.) 이상적인 결과는 사람들이 그 주제에 대한 존재를 떠올리지 않는 것입니다.

해당 주제를 비공개로 설정하겠습니다. 그러면 포럼에서 숨겨져 대부분의 사용자는 더 이상 해당 주제를 볼 수 없을 것입니다. 하지만 해당 주제에 대한 링크가 있는 경우(예: 알림을 받은 경우)에는 여전히 주제를 열 수 있습니다.

다만 참고로, ‘Watching’ 상태라면 ‘Unlisted’ 상태여도 알림을 계속 받게 됩니다.

Rails 콘솔보다 /t/TOPIC_ID/notifications 엔드포인트를 사용하여 특정 사용자의 토픽 알림 수준을 설정하는 것이 더 나은 선택이라면, 이제 이를 사용할 수 있습니다.

추가 정보
  • 다른 사용자의 알림 수준을 변경하려면 API 사용자는 관리자(전역 스코프 보유)여야 합니다.
  • 엔드포인트 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은 normal, 0은 mute입니다)

이것은 토픽 수준의 알림을 변경하지만, 카테고리 및 태그 수준의 알림 설정이 여전히 새로운 활동에 대한 알림 수신 대상에 영향을 미칠 수 있습니다.

사용ful하다면 토픽별 사용자 알림 수준을 확인하기 위한 데이터 탐색기 쿼리도 다음과 같습니다:

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

자세한 답변 감사합니다. 내일 API를 시도해 보겠습니다.