@@ -1,6 +1,7 @@
|
||||
import gql from "graphql-tag";
|
||||
import { CONVERSATION_BASIC_FIELDS_FRAGMENT } from "@/graphql/conversation";
|
||||
import { DISCUSSION_BASIC_FIELDS_FRAGMENT } from "@/graphql/discussion";
|
||||
import { RESOURCE_METADATA_BASIC_FIELDS_FRAGMENT } from "@/graphql/resources";
|
||||
import { POST_BASIC_FIELDS } from "./post";
|
||||
|
||||
export const FETCH_PERSON = gql`
|
||||
query($username: String!) {
|
||||
@@ -479,10 +480,16 @@ export const FETCH_GROUP = gql`
|
||||
}
|
||||
total
|
||||
}
|
||||
conversations {
|
||||
discussions {
|
||||
total
|
||||
elements {
|
||||
...ConversationBasicFields
|
||||
...DiscussionBasicFields
|
||||
}
|
||||
}
|
||||
posts {
|
||||
total
|
||||
elements {
|
||||
...PostBasicFields
|
||||
}
|
||||
}
|
||||
members {
|
||||
@@ -497,6 +504,7 @@ export const FETCH_GROUP = gql`
|
||||
url
|
||||
}
|
||||
}
|
||||
insertedAt
|
||||
}
|
||||
total
|
||||
}
|
||||
@@ -537,9 +545,11 @@ export const FETCH_GROUP = gql`
|
||||
}
|
||||
}
|
||||
}
|
||||
${CONVERSATION_BASIC_FIELDS_FRAGMENT}
|
||||
${DISCUSSION_BASIC_FIELDS_FRAGMENT}
|
||||
${POST_BASIC_FIELDS}
|
||||
${RESOURCE_METADATA_BASIC_FIELDS_FRAGMENT}
|
||||
`;
|
||||
|
||||
export const CREATE_GROUP = gql`
|
||||
mutation CreateGroup(
|
||||
$creatorActorId: ID!
|
||||
@@ -571,6 +581,29 @@ export const CREATE_GROUP = gql`
|
||||
}
|
||||
`;
|
||||
|
||||
export const UPDATE_GROUP = gql`
|
||||
mutation UpdateGroup(
|
||||
$id: ID!
|
||||
$name: String
|
||||
$summary: String
|
||||
$avatar: PictureInput
|
||||
$banner: PictureInput
|
||||
) {
|
||||
createGroup(id: $id, name: $name, summary: $summary, banner: $banner, avatar: $avatar) {
|
||||
id
|
||||
preferredUsername
|
||||
name
|
||||
summary
|
||||
avatar {
|
||||
url
|
||||
}
|
||||
banner {
|
||||
url
|
||||
}
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
export const SUSPEND_PROFILE = gql`
|
||||
mutation SuspendProfile($id: ID!) {
|
||||
suspendProfile(id: $id) {
|
||||
|
||||
@@ -1,120 +0,0 @@
|
||||
import gql from "graphql-tag";
|
||||
|
||||
export const CONVERSATION_BASIC_FIELDS_FRAGMENT = gql`
|
||||
fragment ConversationBasicFields on Conversation {
|
||||
id
|
||||
title
|
||||
slug
|
||||
lastComment {
|
||||
id
|
||||
text
|
||||
actor {
|
||||
preferredUsername
|
||||
avatar {
|
||||
url
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
export const CONVERSATION_FIELDS_FOR_REPLY_FRAGMENT = gql`
|
||||
fragment ConversationFieldsReply on Conversation {
|
||||
id
|
||||
title
|
||||
slug
|
||||
lastComment {
|
||||
id
|
||||
text
|
||||
updatedAt
|
||||
actor {
|
||||
id
|
||||
preferredUsername
|
||||
avatar {
|
||||
url
|
||||
}
|
||||
}
|
||||
}
|
||||
actor {
|
||||
id
|
||||
preferredUsername
|
||||
}
|
||||
creator {
|
||||
id
|
||||
preferredUsername
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
export const CONVERSATION_FIELDS_FRAGMENT = gql`
|
||||
fragment ConversationFields on Conversation {
|
||||
id
|
||||
title
|
||||
slug
|
||||
lastComment {
|
||||
id
|
||||
text
|
||||
updatedAt
|
||||
}
|
||||
actor {
|
||||
id
|
||||
preferredUsername
|
||||
}
|
||||
creator {
|
||||
id
|
||||
preferredUsername
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
export const CREATE_CONVERSATION = gql`
|
||||
mutation createConversation($title: String!, $creatorId: ID!, $actorId: ID!, $text: String!) {
|
||||
createConversation(title: $title, text: $text, creatorId: $creatorId, actorId: $actorId) {
|
||||
...ConversationFields
|
||||
}
|
||||
}
|
||||
${CONVERSATION_FIELDS_FRAGMENT}
|
||||
`;
|
||||
|
||||
export const REPLY_TO_CONVERSATION = gql`
|
||||
mutation replyToConversation($conversationId: ID!, $text: String!) {
|
||||
replyToConversation(conversationId: $conversationId, text: $text) {
|
||||
...ConversationFieldsReply
|
||||
}
|
||||
}
|
||||
${CONVERSATION_FIELDS_FOR_REPLY_FRAGMENT}
|
||||
`;
|
||||
|
||||
export const GET_CONVERSATION = gql`
|
||||
query getConversation($id: ID!, $page: Int, $limit: Int) {
|
||||
conversation(id: $id) {
|
||||
comments(page: $page, limit: $limit) {
|
||||
total
|
||||
elements {
|
||||
id
|
||||
text
|
||||
actor {
|
||||
id
|
||||
avatar {
|
||||
url
|
||||
}
|
||||
preferredUsername
|
||||
}
|
||||
insertedAt
|
||||
updatedAt
|
||||
}
|
||||
}
|
||||
...ConversationFields
|
||||
}
|
||||
}
|
||||
${CONVERSATION_FIELDS_FRAGMENT}
|
||||
`;
|
||||
|
||||
export const UPDATE_CONVERSATION = gql`
|
||||
mutation updateConversation($conversationId: ID!, $title: String!) {
|
||||
updateConversation(conversationId: $conversationId, title: $title) {
|
||||
...ConversationFields
|
||||
}
|
||||
}
|
||||
${CONVERSATION_FIELDS_FRAGMENT}
|
||||
`;
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`;
|
||||
@@ -22,3 +22,31 @@ export const ACCEPT_INVITATION = gql`
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
export const GROUP_MEMBERS = gql`
|
||||
query($name: String!, $roles: String, $page: Int, $limit: Int) {
|
||||
group(preferredUsername: $name) {
|
||||
id
|
||||
url
|
||||
name
|
||||
domain
|
||||
preferredUsername
|
||||
members(page: $page, limit: $limit, roles: $roles) {
|
||||
elements {
|
||||
role
|
||||
actor {
|
||||
id
|
||||
name
|
||||
domain
|
||||
preferredUsername
|
||||
avatar {
|
||||
url
|
||||
}
|
||||
}
|
||||
insertedAt
|
||||
}
|
||||
total
|
||||
}
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
151
js/src/graphql/post.ts
Normal file
151
js/src/graphql/post.ts
Normal file
@@ -0,0 +1,151 @@
|
||||
import gql from "graphql-tag";
|
||||
import { TAG_FRAGMENT } from "./tags";
|
||||
|
||||
export const POST_FRAGMENT = gql`
|
||||
fragment PostFragment on Post {
|
||||
id
|
||||
title
|
||||
slug
|
||||
url
|
||||
body
|
||||
author {
|
||||
id
|
||||
preferredUsername
|
||||
name
|
||||
domain
|
||||
avatar {
|
||||
url
|
||||
}
|
||||
}
|
||||
attributedTo {
|
||||
id
|
||||
preferredUsername
|
||||
name
|
||||
domain
|
||||
avatar {
|
||||
url
|
||||
}
|
||||
}
|
||||
insertedAt
|
||||
updatedAt
|
||||
publishAt
|
||||
draft
|
||||
visibility
|
||||
tags {
|
||||
...TagFragment
|
||||
}
|
||||
}
|
||||
${TAG_FRAGMENT}
|
||||
`;
|
||||
|
||||
export const POST_BASIC_FIELDS = gql`
|
||||
fragment PostBasicFields on Post {
|
||||
id
|
||||
title
|
||||
slug
|
||||
url
|
||||
author {
|
||||
id
|
||||
preferredUsername
|
||||
name
|
||||
avatar {
|
||||
url
|
||||
}
|
||||
}
|
||||
attributedTo {
|
||||
id
|
||||
preferredUsername
|
||||
name
|
||||
avatar {
|
||||
url
|
||||
}
|
||||
}
|
||||
insertedAt
|
||||
updatedAt
|
||||
publishAt
|
||||
draft
|
||||
}
|
||||
`;
|
||||
|
||||
export const FETCH_GROUP_POSTS = gql`
|
||||
query GroupPosts($preferredUsername: String!, $page: Int, $limit: Int) {
|
||||
group(preferredUsername: $preferredUsername) {
|
||||
id
|
||||
preferredUsername
|
||||
domain
|
||||
name
|
||||
posts(page: $page, limit: $limit) {
|
||||
total
|
||||
elements {
|
||||
...PostBasicFields
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
${POST_BASIC_FIELDS}
|
||||
`;
|
||||
|
||||
export const FETCH_POST = gql`
|
||||
query Post($slug: String!) {
|
||||
post(slug: $slug) {
|
||||
...PostFragment
|
||||
}
|
||||
}
|
||||
${POST_FRAGMENT}
|
||||
`;
|
||||
|
||||
export const CREATE_POST = gql`
|
||||
mutation CreatePost(
|
||||
$title: String!
|
||||
$body: String
|
||||
$attributedToId: ID!
|
||||
$visibility: PostVisibility
|
||||
$draft: Boolean
|
||||
$tags: [String]
|
||||
) {
|
||||
createPost(
|
||||
title: $title
|
||||
body: $body
|
||||
attributedToId: $attributedToId
|
||||
visibility: $visibility
|
||||
draft: $draft
|
||||
tags: $tags
|
||||
) {
|
||||
...PostFragment
|
||||
}
|
||||
}
|
||||
${POST_FRAGMENT}
|
||||
`;
|
||||
|
||||
export const UPDATE_POST = gql`
|
||||
mutation UpdatePost(
|
||||
$id: ID!
|
||||
$title: String
|
||||
$body: String
|
||||
$attributedToId: ID
|
||||
$visibility: PostVisibility
|
||||
$draft: Boolean
|
||||
$tags: [String]
|
||||
) {
|
||||
updatePost(
|
||||
id: $id
|
||||
title: $title
|
||||
body: $body
|
||||
attributedToId: $attributedToId
|
||||
visibility: $visibility
|
||||
draft: $draft
|
||||
tags: $tags
|
||||
) {
|
||||
...PostFragment
|
||||
}
|
||||
}
|
||||
${POST_FRAGMENT}
|
||||
`;
|
||||
|
||||
export const DELETE_POST = gql`
|
||||
mutation DeletePost($id: ID!) {
|
||||
deletePost(id: $id) {
|
||||
id
|
||||
}
|
||||
}
|
||||
`;
|
||||
@@ -1,6 +1,13 @@
|
||||
import gql from "graphql-tag";
|
||||
|
||||
/* eslint-disable import/prefer-default-export */
|
||||
export const TAG_FRAGMENT = gql`
|
||||
fragment TagFragment on Tag {
|
||||
id
|
||||
slug
|
||||
title
|
||||
}
|
||||
`;
|
||||
|
||||
export const TAGS = gql`
|
||||
query {
|
||||
tags {
|
||||
|
||||
Reference in New Issue
Block a user