linear_queries/
mutations.rs1use 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 #[cynic(skip_serializing_if = "Option::is_none")]
11 pub title: Option<String>,
12 #[cynic(skip_serializing_if = "Option::is_none")]
13 pub description: Option<String>,
14 #[cynic(skip_serializing_if = "Option::is_none")]
15 pub priority: Option<i32>,
16 #[cynic(rename = "assigneeId", skip_serializing_if = "Option::is_none")]
17 pub assignee_id: Option<String>,
18 #[cynic(rename = "stateId", skip_serializing_if = "Option::is_none")]
19 pub state_id: Option<String>,
20 #[cynic(rename = "labelIds", skip_serializing_if = "Option::is_none")]
21 pub label_ids: Option<Vec<String>>,
22 #[cynic(rename = "projectId", skip_serializing_if = "Option::is_none")]
23 pub project_id: Option<String>,
24 #[cynic(rename = "parentId", skip_serializing_if = "Option::is_none")]
25 pub parent_id: Option<String>,
26}
27
28#[derive(cynic::QueryFragment, Debug, Clone)]
29#[cynic(schema = "linear")]
30pub struct IssuePayload {
31 pub success: bool,
32 pub issue: Option<Issue>,
33}
34
35#[derive(cynic::QueryVariables, Debug, Clone)]
36pub struct IssueCreateArguments {
37 pub input: IssueCreateInput,
38}
39
40#[derive(cynic::QueryFragment, Debug)]
41#[cynic(
42 graphql_type = "Mutation",
43 schema = "linear",
44 variables = "IssueCreateArguments"
45)]
46pub struct IssueCreateMutation {
47 #[arguments(input: $input)]
48 #[cynic(rename = "issueCreate")]
49 pub issue_create: IssuePayload,
50}
51
52#[derive(cynic::InputObject, Clone, Debug, Default)]
53#[cynic(schema = "linear")]
54pub struct CommentCreateInput {
55 #[cynic(rename = "issueId")]
56 pub issue_id: String,
57 #[cynic(skip_serializing_if = "Option::is_none")]
58 pub body: Option<String>,
59 #[cynic(rename = "parentId", skip_serializing_if = "Option::is_none")]
60 pub parent_id: Option<String>,
61}
62
63#[derive(cynic::QueryFragment, Debug, Clone)]
64#[cynic(schema = "linear")]
65pub struct Comment {
66 pub id: cynic::Id,
67 pub body: String,
68 #[cynic(rename = "createdAt")]
69 pub created_at: DateTime,
70}
71
72#[derive(cynic::QueryFragment, Debug, Clone)]
73#[cynic(schema = "linear")]
74pub struct CommentPayload {
75 pub success: bool,
76 pub comment: Option<Comment>,
77}
78
79#[derive(cynic::QueryVariables, Debug, Clone)]
80pub struct CommentCreateArguments {
81 pub input: CommentCreateInput,
82}
83
84#[derive(cynic::QueryFragment, Debug)]
85#[cynic(
86 graphql_type = "Mutation",
87 schema = "linear",
88 variables = "CommentCreateArguments"
89)]
90pub struct CommentCreateMutation {
91 #[arguments(input: $input)]
92 #[cynic(rename = "commentCreate")]
93 pub comment_create: CommentPayload,
94}
95
96#[derive(cynic::QueryVariables, Debug, Clone)]
97pub struct IssueArchiveArguments {
98 pub id: String,
99}
100
101#[derive(cynic::QueryFragment, Debug, Clone)]
102#[cynic(schema = "linear")]
103pub struct IssueArchivePayload {
104 pub success: bool,
105}
106
107#[derive(cynic::QueryFragment, Debug)]
108#[cynic(
109 graphql_type = "Mutation",
110 schema = "linear",
111 variables = "IssueArchiveArguments"
112)]
113pub struct IssueArchiveMutation {
114 #[arguments(id: $id)]
115 #[cynic(rename = "issueArchive")]
116 pub issue_archive: IssueArchivePayload,
117}