linear_queries/
mutations.rs

1use crate::scalars::DateTime;
2use crate::types::Issue;
3use linear_schema::linear as schema;
4
5#[derive(cynic::InputObject, Clone, Debug, Default)]
6#[cynic(schema = "linear")]
7pub struct IssueCreateInput {
8    #[cynic(rename = "teamId")]
9    pub team_id: String,
10    pub title: Option<String>,
11    pub description: Option<String>,
12    pub priority: Option<i32>,
13    #[cynic(rename = "assigneeId")]
14    pub assignee_id: Option<String>,
15    #[cynic(rename = "stateId")]
16    pub state_id: Option<String>,
17    #[cynic(rename = "labelIds")]
18    pub label_ids: Option<Vec<String>>,
19    #[cynic(rename = "projectId")]
20    pub project_id: Option<String>,
21    #[cynic(rename = "parentId")]
22    pub parent_id: Option<String>,
23}
24
25#[derive(cynic::QueryFragment, Debug, Clone)]
26#[cynic(schema = "linear")]
27pub struct IssuePayload {
28    pub success: bool,
29    pub issue: Option<Issue>,
30}
31
32#[derive(cynic::QueryVariables, Debug, Clone)]
33pub struct IssueCreateArguments {
34    pub input: IssueCreateInput,
35}
36
37#[derive(cynic::QueryFragment, Debug)]
38#[cynic(
39    graphql_type = "Mutation",
40    schema = "linear",
41    variables = "IssueCreateArguments"
42)]
43pub struct IssueCreateMutation {
44    #[arguments(input: $input)]
45    #[cynic(rename = "issueCreate")]
46    pub issue_create: IssuePayload,
47}
48
49#[derive(cynic::InputObject, Clone, Debug, Default)]
50#[cynic(schema = "linear")]
51pub struct CommentCreateInput {
52    #[cynic(rename = "issueId")]
53    pub issue_id: String,
54    pub body: Option<String>,
55    #[cynic(rename = "parentId")]
56    pub parent_id: Option<String>,
57}
58
59#[derive(cynic::QueryFragment, Debug, Clone)]
60#[cynic(schema = "linear")]
61pub struct Comment {
62    pub id: cynic::Id,
63    pub body: String,
64    #[cynic(rename = "createdAt")]
65    pub created_at: DateTime,
66}
67
68#[derive(cynic::QueryFragment, Debug, Clone)]
69#[cynic(schema = "linear")]
70pub struct CommentPayload {
71    pub success: bool,
72    pub comment: Option<Comment>,
73}
74
75#[derive(cynic::QueryVariables, Debug, Clone)]
76pub struct CommentCreateArguments {
77    pub input: CommentCreateInput,
78}
79
80#[derive(cynic::QueryFragment, Debug)]
81#[cynic(
82    graphql_type = "Mutation",
83    schema = "linear",
84    variables = "CommentCreateArguments"
85)]
86pub struct CommentCreateMutation {
87    #[arguments(input: $input)]
88    #[cynic(rename = "commentCreate")]
89    pub comment_create: CommentPayload,
90}