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 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}