158
js/src/graphql/discussion.ts
Normal file
158
js/src/graphql/discussion.ts
Normal file
@@ -0,0 +1,158 @@
|
||||
import gql from "graphql-tag";
|
||||
|
||||
export const DISCUSSION_BASIC_FIELDS_FRAGMENT = gql`
|
||||
fragment DiscussionBasicFields on Discussion {
|
||||
id
|
||||
title
|
||||
slug
|
||||
lastComment {
|
||||
id
|
||||
text
|
||||
actor {
|
||||
id
|
||||
preferredUsername
|
||||
avatar {
|
||||
url
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
export const DISCUSSION_FIELDS_FOR_REPLY_FRAGMENT = gql`
|
||||
fragment DiscussionFieldsReply on Discussion {
|
||||
id
|
||||
title
|
||||
slug
|
||||
lastComment {
|
||||
id
|
||||
text
|
||||
updatedAt
|
||||
actor {
|
||||
id
|
||||
preferredUsername
|
||||
avatar {
|
||||
url
|
||||
}
|
||||
}
|
||||
}
|
||||
actor {
|
||||
id
|
||||
preferredUsername
|
||||
}
|
||||
creator {
|
||||
id
|
||||
preferredUsername
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
export const DISCUSSION_FIELDS_FRAGMENT = gql`
|
||||
fragment DiscussionFields on Discussion {
|
||||
id
|
||||
title
|
||||
slug
|
||||
lastComment {
|
||||
id
|
||||
text
|
||||
updatedAt
|
||||
}
|
||||
actor {
|
||||
id
|
||||
domain
|
||||
name
|
||||
preferredUsername
|
||||
}
|
||||
creator {
|
||||
id
|
||||
domain
|
||||
name
|
||||
preferredUsername
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
export const CREATE_DISCUSSION = gql`
|
||||
mutation createDiscussion($title: String!, $creatorId: ID!, $actorId: ID!, $text: String!) {
|
||||
createDiscussion(title: $title, text: $text, creatorId: $creatorId, actorId: $actorId) {
|
||||
...DiscussionFields
|
||||
}
|
||||
}
|
||||
${DISCUSSION_FIELDS_FRAGMENT}
|
||||
`;
|
||||
|
||||
export const REPLY_TO_DISCUSSION = gql`
|
||||
mutation replyToDiscussion($discussionId: ID!, $text: String!) {
|
||||
replyToDiscussion(discussionId: $discussionId, text: $text) {
|
||||
...DiscussionFields
|
||||
}
|
||||
}
|
||||
${DISCUSSION_FIELDS_FRAGMENT}
|
||||
`;
|
||||
|
||||
export const GET_DISCUSSION = gql`
|
||||
query getDiscussion($slug: String!, $page: Int, $limit: Int) {
|
||||
discussion(slug: $slug) {
|
||||
comments(page: $page, limit: $limit)
|
||||
@connection(key: "discussion-comments", filter: ["slug"]) {
|
||||
total
|
||||
elements {
|
||||
id
|
||||
text
|
||||
actor {
|
||||
id
|
||||
avatar {
|
||||
url
|
||||
}
|
||||
name
|
||||
domain
|
||||
preferredUsername
|
||||
}
|
||||
insertedAt
|
||||
updatedAt
|
||||
}
|
||||
}
|
||||
...DiscussionFields
|
||||
}
|
||||
}
|
||||
${DISCUSSION_FIELDS_FRAGMENT}
|
||||
`;
|
||||
|
||||
export const UPDATE_DISCUSSION = gql`
|
||||
mutation updateDiscussion($discussionId: ID!, $title: String!) {
|
||||
updateDiscussion(discussionId: $discussionId, title: $title) {
|
||||
...DiscussionFields
|
||||
}
|
||||
}
|
||||
${DISCUSSION_FIELDS_FRAGMENT}
|
||||
`;
|
||||
|
||||
export const DELETE_DISCUSSION = gql`
|
||||
mutation deleteDiscussion($discussionId: ID!) {
|
||||
deleteDiscussion(discussionId: $discussionId) {
|
||||
id
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
export const DISCUSSION_COMMENT_CHANGED = gql`
|
||||
subscription($slug: String!) {
|
||||
discussionCommentChanged(slug: $slug) {
|
||||
id
|
||||
lastComment {
|
||||
id
|
||||
text
|
||||
updatedAt
|
||||
insertedAt
|
||||
actor {
|
||||
id
|
||||
preferredUsername
|
||||
domain
|
||||
avatar {
|
||||
url
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`;
|
||||
Reference in New Issue
Block a user