findFilteredTopics로 PM을 가져올 수 있을까요?

GitHub - nolosb/discourse-featured-lists: A Discourse theme component to feature custom topic lists. · GitHub 와 같은 방식으로, PM(개인 메시지)을 최신 게시글(latest) 같은 다른 페이지에 표시하는 기능을 만들어 보고 싶습니다.

그룹 PM을 찾기 어렵기 때문에, 예를 들어 읽지 않은 그룹 PM을 /unread 페이지에 표시할 수 있다면 정말 좋을 것 같습니다.

일단 어떻게 표시하는지 방법을 알아낼 수 있다고 가정하고, 표시하기 위해 데이터를 가져오는 방법을 알고 싶습니다.

아래와 같은 코드를 사용할 수 있을까요?

    const topicList = await this.store.findFiltered('topicList', {
      filter: this.args.list.filter,
      params: {
        category: this.args.list.category,
        tags: this.args.list.tag,
        solved: solvedFilter,
      },
    });

이때 params에 staff, team 등 특정 그룹의 PM을 가져오도록 지정할 수 있을까요?

음, 이렇게 하면 대략적으로 처리할 수 있을 것 같습니다:

    const topicList = await this.store.findFiltered('topicList', {
      filter: this.args.list.filter,
      // filter: "search",
      params: {
        // category: this.args.list.category,
        // tags: this.args.list.tag,
        // solved: solvedFilter,
        q: "upgraded in:messages"
      },
    });

이렇게 하면 "upgraded"가 포함된 메시지를 가져올 수 있습니다.

하지만 아직 읽지 않은 메시지, 새 메시지, 모든 메시지, 그룹으로 전송된 메시지 등을 어떻게 가져올지 모르겠습니다.

아쉬운 마음이 드네요. 하지만 이건 topic_list가 아닙니다.

잠깐!!! 여기서 올바른 필터를 찾았어요.

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/routes/build-private-messages-group-route.js#L33

    let topicListFilter = `topics/private-messages-group/${this.currentUser.username}/${groupName}`;
    console.log("consider the topic list", topicListFilter);
    const topicList = await this.store.findFiltered('topicList', {
      filter: topicListFilter,
      params: { },
    });