summaryrefslogtreecommitdiffstats
path: root/src/services/graphql/topics.query.ts
blob: 457425665123b89aaac40ae55208fc17a91ec67f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
/**
 * Query the full topic data using its slug.
 */
export const topicBySlugQuery = `query TopicBy($slug: ID!) {
  topic(id: $slug, idType: SLUG) {
    acfTopics {
      officialWebsite
      postsInTopic {
        ... on Post {
          acfPosts {
            postsInThematic {
              ... on Thematic {
                databaseId
                slug
                title
              }
            }
          }
          author {
            node {
              gravatarUrl
              name
              url
            }
          }
          commentCount
          contentParts {
            beforeMore
          }
          databaseId
          date
          featuredImage {
            node {
              altText
              mediaDetails {
                height
                width
              }
              sourceUrl
              title
            }
          }
          info {
            readingTime
            wordsCount
          }
          modified
          slug
          title
        }
      }
    }
    contentParts {
      afterMore
      beforeMore
    }
    databaseId
    date
    featuredImage {
      node {
        altText
        mediaDetails {
          height
          width
        }
        sourceUrl
        title
      }
    }
    info {
      readingTime
      wordsCount
    }
    modified
    seo {
      metaDesc
      title
    }
    slug
    title
  }
}`;

/**
 * Query an array of partial topics.
 */
export const topicsListQuery = `query TopicsList($after: String = "", $first: Int = 10) {
  topics(
    after: $after
    first: $first
    where: {orderby: {field: TITLE, order: ASC}, status: PUBLISH}
  ) {
    edges {
      cursor
      node {
        databaseId
        featuredImage {
          node {
            altText
            mediaDetails {
              height
              width
            }
            sourceUrl
            title
          }
        }
        slug
        title
      }
    }
    pageInfo {
      endCursor
      hasNextPage
      total
    }
  }
}`;

/**
 * Query an array of topics slug.
 */
export const topicsSlugQuery = `query TopicsSlug($first: Int = 10, $after: String = "") {
  topics(after: $after, first: $first) {
    edges {
      cursor
      node {
        slug
      }
    }
    pageInfo {
      total
    }
  }
}`;

/**
 * Query the total number of topics.
 */
export const totalTopicsQuery = `query TopicsTotal {
  topics {
    pageInfo {
      total
    }
  }
}`;