File size: 2,287 Bytes
3c3f089
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
147
148
149
import { gql } from "@apollo/client";

export const ProjectsQuery = gql(`query Projects($input: ProjectsInput!) {
  projects(input: $input) {
    data {
      id
      createdAt
      title
      slug
      description
      content
      updatedAt
      hasvoted
      isProjectOwner
      files
      tags {
        id
        value
      }
      _count {
        votes
        comments
      }
      author {
        id
        username
        avatar
      }
      comments {
        author {
          id
          username
          avatar
        }
      }
    }
    message
    status
  }
}`);

export const ProjectsIDsQuery = gql(`query Projects($input: ProjectsInput!) {
  projects(input: $input) {
    data {
      id
    }
    message
    status
  }
}`);

export const ProjectQuery = gql(`query Project($input: ProjectInput!) {
  project(input: $input) {
    message
    status
    data {
      id
      title
      slug
      description
      content
      files
      author {
        id
        username
        avatar
      }
      tags {
        id
        value
      }
      _count {
        votes
        comments
      }
      createdAt
      updatedAt
      hasvoted
      isProjectOwner
      votes {
        author {
          id
          username
          avatar
        }
      }
    }
  }
  usersWhoComment(input: $input) {
    data {
      id
      email
      username
      avatar
    }
    message
    status
  }
}`);

export const HasVotedProjectQuery =
  gql(`query HasVotedProjectQuery($input: ProjectInput!) {
  project(input: $input) {
    data {
      hasvoted
      _count {
        votes
      }
    }
    message
    status
  }
}`);

export const CreateProjectMutation =
  gql(`mutation CreateProject($input: CreateProjectInput!) {
  createProject(input: $input) {
    message
    status
    data {
      id
      title
      slug
      description
      content
      files
    }
  }
}`);

export const UpdateProjectMutation =
  gql(`mutation UpdateProject($input: UpdateProjectInput!) {
  updateProject(input: $input) {
    message
    status
  }
}`);

export const DeleteProjectMutation =
  gql(`mutation DeleteProject($input: DeleteProjectInput!) {
  deleteProject(input: $input) {
    data {
      id
    }
    message
    status
  }
}`);