linear_queries/
queries.rs

1use crate::filters::IssueFilter;
2use crate::types::*;
3use linear_schema::linear as schema;
4
5#[derive(cynic::QueryVariables, Debug, Clone)]
6pub struct IssuesArguments {
7    pub first: Option<i32>,
8    pub after: Option<String>,
9    pub filter: Option<IssueFilter>,
10}
11
12#[derive(cynic::QueryFragment, Debug)]
13#[cynic(
14    graphql_type = "Query",
15    schema = "linear",
16    variables = "IssuesArguments"
17)]
18pub struct IssuesQuery {
19    #[arguments(first: $first, after: $after, filter: $filter)]
20    pub issues: IssueConnection,
21}
22
23#[derive(cynic::QueryVariables, Debug, Clone)]
24pub struct IssueByIdArguments {
25    pub id: String,
26}
27
28#[derive(cynic::QueryFragment, Debug)]
29#[cynic(
30    graphql_type = "Query",
31    schema = "linear",
32    variables = "IssueByIdArguments"
33)]
34pub struct IssueByIdQuery {
35    #[arguments(id: $id)]
36    pub issue: Option<Issue>,
37}
38
39#[derive(cynic::QueryVariables, Debug, Clone)]
40pub struct SearchIssuesArguments {
41    pub term: String,
42    #[cynic(rename = "includeComments")]
43    pub include_comments: Option<bool>,
44    pub first: Option<i32>,
45    pub after: Option<String>,
46    pub filter: Option<IssueFilter>,
47}
48
49#[derive(cynic::QueryFragment, Debug)]
50#[cynic(
51    graphql_type = "Query",
52    schema = "linear",
53    variables = "SearchIssuesArguments"
54)]
55pub struct SearchIssuesQuery {
56    #[arguments(term: $term, includeComments: $include_comments, first: $first, after: $after, filter: $filter)]
57    #[cynic(rename = "searchIssues")]
58    pub search_issues: IssueSearchPayload,
59}