안녕하세요,
토픽이 어디에서 게시되었는지와 해당 토픽을 보는 사용자의 그룹을 기준으로 모든 토픽을 필터링하는 플러그인을 개발 중입니다. 이 플러그인의 사용 사례는 각 국가의 지원 팀이 자국에서 발생한 질문을 처리하도록 하는 것입니다.
저는 아직 이 작업을 배우고 있는 디스코urs 플러그인 개발 초보자입니다. 토픽 위치는 여기의 locations 플러그인(Locations Plugin 🌍)을 통해 처리할 예정입니다.
필터링된 뷰를 가져야 하는 사용자를 NA_queue 또는 EU_queue와 같은 이름의 그룹에 추가할 것입니다.
플러그인은 사용자가 로그인되어 있는지, 그리고 기본 그룹이 설정되어 있는지 확인합니다. 설정되어 있다면, 현재 사용자가 속한 큐에 해당하는 모든 토픽으로 필터링합니다.
아래와 유사한 코드로 구현할 수 있을 것 같습니다:
after_initialize do
require_dependency ‘topic_query’
# 로그인되어 있고 기본 그룹이 설정된 경우
# 사용자의 기본 그룹을 가져와야 함
# 토픽 위치를 가져와야 함
TopicQuery.add_custom_filter(:location) do |results, topic_query|
filter = "여기에 SQL 쿼리 입력"
results = results.joins("{filter}")
results
end
이것이 제 문제를 해결하는 좋은 접근 방식인가요?
또한, SQL 쿼리가 무엇이어야 하는지 또는 주석으로 표시된 두 가지 정보(사용자의 기본 그룹과 토픽 위치)를 어떻게 가져올 수 있는지 제안이 있는 분이 계신가요?