Introduce group basic federation, event new page and notifications

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2020-02-18 08:57:00 +01:00
parent 300ef8f245
commit 4144e9ffd0
416 changed files with 32220 additions and 16750 deletions

View File

@@ -1,222 +1,328 @@
import gql from 'graphql-tag';
import gql from "graphql-tag";
import { CONVERSATION_BASIC_FIELDS_FRAGMENT } from "@/graphql/conversation";
import { RESOURCE_METADATA_BASIC_FIELDS_FRAGMENT } from "@/graphql/resources";
export const FETCH_PERSON = gql`
query($username: String!) {
fetchPerson(preferredUsername: $username) {
id,
url,
name,
domain,
summary,
preferredUsername,
suspended,
avatar {
name,
query($username: String!) {
fetchPerson(preferredUsername: $username) {
id
url
},
banner {
url
},
feedTokens {
name
domain
summary
preferredUsername
suspended
avatar {
name
url
}
banner {
url
}
feedTokens {
token
},
organizedEvents {
uuid,
title,
}
organizedEvents {
uuid
title
beginsOn
},
}
}
}
}
`;
export const GET_PERSON = gql`
query($actorId: ID!) {
person(id: $actorId) {
id,
url,
name,
domain,
summary,
preferredUsername,
suspended,
avatar {
name,
url
},
banner {
url
},
feedTokens {
token
},
organizedEvents {
uuid,
title,
beginsOn
},
}
query($actorId: ID!) {
person(id: $actorId) {
id
url
name
domain
summary
preferredUsername
suspended
avatar {
name
url
}
banner {
url
}
feedTokens {
token
}
organizedEvents {
uuid
title
beginsOn
}
}
}
`;
export const LOGGED_PERSON = gql`
query {
loggedPerson {
id,
avatar {
url
},
preferredUsername,
query {
loggedPerson {
id
avatar {
url
}
preferredUsername
}
}
}`;
`;
export const UPDATE_DEFAULT_ACTOR = gql`
mutation ChangeDefaultActor($preferredUsername: String!) {
changeDefaultActor(preferredUsername: $preferredUsername) {
id
defaultActor {
id
}
}
}
`;
export const CURRENT_ACTOR_CLIENT = gql`
query currentActor {
currentActor @client {
id,
avatar {
url
},
preferredUsername,
name
}
query currentActor {
currentActor @client {
id
avatar {
url
}
preferredUsername
name
}
}
`;
export const UPDATE_CURRENT_ACTOR_CLIENT = gql`
mutation UpdateCurrentActor($id: String!, $avatar: String, $preferredUsername: String!, $name: String!) {
updateCurrentActor(id: $id, avatar: $avatar, preferredUsername: $preferredUsername, name: $name) @client
}
mutation UpdateCurrentActor(
$id: String!
$avatar: String
$preferredUsername: String!
$name: String!
) {
updateCurrentActor(
id: $id
avatar: $avatar
preferredUsername: $preferredUsername
name: $name
) @client
}
`;
export const LOGGED_USER_PARTICIPATIONS = gql`
query LoggedUserParticipations($afterDateTime: DateTime, $beforeDateTime: DateTime, $page: Int, $limit: Int) {
loggedUser {
participations(afterDatetime: $afterDateTime, beforeDatetime: $beforeDateTime, page: $page, limit: $limit) {
query LoggedUserParticipations(
$afterDateTime: DateTime
$beforeDateTime: DateTime
$page: Int
$limit: Int
) {
loggedUser {
participations(
afterDatetime: $afterDateTime
beforeDatetime: $beforeDateTime
page: $page
limit: $limit
) {
total
elements {
event {
id,
uuid,
title,
picture {
id,
url,
alt
},
beginsOn,
visibility,
organizerActor {
id,
preferredUsername,
name,
domain,
avatar {
url
}
},
participantStats {
notApproved
participant
},
options {
maximumAttendeeCapacity
remainingAttendeeCapacity
}
},
id,
role,
actor {
id,
preferredUsername,
name,
domain,
avatar {
url
}
}
}
}
}`;
export const LOGGED_USER_DRAFTS = gql`
query LoggedUserDrafts($page: Int, $limit: Int) {
loggedUser {
drafts(page: $page, limit: $limit) {
id,
uuid,
title,
picture {
id,
url,
alt
},
beginsOn,
visibility,
organizerActor {
id,
preferredUsername,
name,
domain,
avatar {
url
}
},
participantStats {
going,
notApproved
},
options {
maximumAttendeeCapacity
remainingAttendeeCapacity
}
id
uuid
title
picture {
id
url
alt
}
beginsOn
visibility
organizerActor {
id
preferredUsername
name
domain
avatar {
url
}
}
participantStats {
notApproved
participant
}
options {
maximumAttendeeCapacity
remainingAttendeeCapacity
}
}
id
role
actor {
id
preferredUsername
name
domain
avatar {
url
}
}
}
}`;
export const IDENTITIES = gql`
query {
identities {
id,
avatar {
url
},
preferredUsername,
name
}
}`;
export const CREATE_PERSON = gql`
mutation CreatePerson($preferredUsername: String!, $name: String!, $summary: String, $avatar: PictureInput) {
createPerson(
preferredUsername: $preferredUsername,
name: $name,
summary: $summary,
avatar: $avatar
) {
id,
preferredUsername,
name,
summary,
avatar {
url
}
}
}
`;
export const LOGGED_USER_DRAFTS = gql`
query LoggedUserDrafts($page: Int, $limit: Int) {
loggedUser {
drafts(page: $page, limit: $limit) {
id
uuid
title
picture {
id
url
alt
}
beginsOn
visibility
organizerActor {
id
preferredUsername
name
domain
avatar {
url
}
}
participantStats {
going
notApproved
}
options {
maximumAttendeeCapacity
remainingAttendeeCapacity
}
}
}
}
`;
export const LOGGED_USER_MEMBERSHIPS = gql`
query LoggedUserMemberships($page: Int, $limit: Int) {
loggedUser {
memberships(page: $page, limit: $limit) {
total
elements {
id
role
parent {
id
preferredUsername
domain
name
avatar {
url
}
organizedEvents {
elements {
id
title
picture {
url
}
}
total
}
}
invitedBy {
id
preferredUsername
domain
name
avatar {
url
}
}
}
}
}
}
`;
export const IDENTITIES = gql`
query {
identities {
id
avatar {
url
}
preferredUsername
name
}
}
`;
export const PERSON_MEMBERSHIPS = gql`
query PersonMemberships($id: ID!) {
person(id: $id) {
id
memberships {
total
elements {
id
role
parent {
id
preferredUsername
name
domain
avatar {
url
}
}
}
}
}
}
`;
export const CREATE_PERSON = gql`
mutation CreatePerson(
$preferredUsername: String!
$name: String!
$summary: String
$avatar: PictureInput
) {
createPerson(
preferredUsername: $preferredUsername
name: $name
summary: $summary
avatar: $avatar
) {
id
preferredUsername
name
summary
avatar {
url
}
}
}
}
`;
export const UPDATE_PERSON = gql`
mutation UpdatePerson($id: ID!, $name: String, $summary: String, $avatar: PictureInput) {
updatePerson(
id: $id,
name: $name,
summary: $summary,
avatar: $avatar
) {
id,
preferredUsername,
name,
summary,
updatePerson(id: $id, name: $name, summary: $summary, avatar: $avatar) {
id
preferredUsername
name
summary
avatar {
url
},
}
}
}
`;
@@ -224,91 +330,175 @@ export const UPDATE_PERSON = gql`
export const DELETE_PERSON = gql`
mutation DeletePerson($id: ID!) {
deletePerson(id: $id) {
preferredUsername,
preferredUsername
}
}
`;
/**
* This one is used only to register the first account. Prefer CREATE_PERSON when creating another identity
* This one is used only to register the first account.
* Prefer CREATE_PERSON when creating another identity
*/
export const REGISTER_PERSON = gql`
mutation ($preferredUsername: String!, $name: String!, $summary: String!, $email: String!) {
registerPerson(
preferredUsername: $preferredUsername,
name: $name,
summary: $summary,
mutation($preferredUsername: String!, $name: String!, $summary: String!, $email: String!) {
registerPerson(
preferredUsername: $preferredUsername
name: $name
summary: $summary
email: $email
) {
id,
preferredUsername,
name,
summary,
avatar {
url
},
id
preferredUsername
name
summary
avatar {
url
}
}
}
`;
export const LIST_GROUPS = gql`
query {
groups {
elements {
id
url
name
domain
summary
preferredUsername
suspended
avatar {
url
}
banner {
url
}
organizedEvents {
elements {
uuid
title
beginsOn
}
total
}
}
total
}
}
}
`;
export const FETCH_GROUP = gql`
query($name:String!) {
group(preferredUsername: $name) {
id,
url,
name,
domain,
summary,
preferredUsername,
suspended,
avatar {
query($name: String!) {
group(preferredUsername: $name) {
id
url
},
banner {
url
}
organizedEvents {
uuid,
title,
beginsOn
},
members {
role,
actor {
id,
name,
domain,
preferredUsername
name
domain
summary
preferredUsername
suspended
avatar {
url
}
banner {
url
}
organizedEvents {
elements {
id
uuid
title
beginsOn
}
total
}
conversations {
total
elements {
...ConversationBasicFields
}
}
members {
elements {
role
actor {
id
name
domain
preferredUsername
avatar {
url
}
}
}
total
}
resources(page: 1, limit: 3) {
elements {
id
title
resourceUrl
summary
updatedAt
type
path
metadata {
...ResourceMetadataBasicFields
}
}
total
}
todoLists {
elements {
id
title
todos {
elements {
id
title
status
dueDate
assignedTo {
id
preferredUsername
}
}
total
}
}
total
}
}
}
}
${CONVERSATION_BASIC_FIELDS_FRAGMENT}
${RESOURCE_METADATA_BASIC_FIELDS_FRAGMENT}
`;
export const CREATE_GROUP = gql`
mutation CreateGroup(
$creatorActorId: ID!,
$preferredUsername: String!,
$name: String!,
$summary: String,
$avatar: PictureInput,
$creatorActorId: ID!
$preferredUsername: String!
$name: String!
$summary: String
$avatar: PictureInput
$banner: PictureInput
) {
createGroup(
creatorActorId: $creatorActorId,
preferredUsername: $preferredUsername,
name: $name,
summary: $summary,
banner: $banner,
creatorActorId: $creatorActorId
preferredUsername: $preferredUsername
name: $name
summary: $summary
banner: $banner
avatar: $avatar
) {
id,
preferredUsername,
name,
summary,
id
preferredUsername
name
summary
avatar {
url
},
}
banner {
url
}

View File

@@ -1,4 +1,4 @@
import gql from 'graphql-tag';
import gql from "graphql-tag";
const $addressFragment = `
id,

View File

@@ -1,147 +1,148 @@
import gql from 'graphql-tag';
import gql from "graphql-tag";
export const DASHBOARD = gql`
query {
dashboard {
lastPublicEventPublished {
uuid,
title,
picture {
id,
alt,
url
},
},
numberOfUsers,
numberOfEvents,
numberOfComments,
numberOfReports
query {
dashboard {
lastPublicEventPublished {
uuid
title
picture {
id
alt
url
}
}
numberOfUsers
numberOfEvents
numberOfComments
numberOfReports
}
`;
}
`;
export const RELAY_FRAGMENT = gql`
fragment relayFragment on Follower {
actor {
id,
preferredUsername,
name,
domain,
type,
summary
},
targetActor {
id,
preferredUsername,
name,
domain,
type,
summary
},
approved,
insertedAt,
updatedAt
fragment relayFragment on Follower {
actor {
id
preferredUsername
name
domain
type
summary
}
targetActor {
id
preferredUsername
name
domain
type
summary
}
approved
insertedAt
updatedAt
}
`;
export const RELAY_FOLLOWERS = gql`
query relayFollowers($page: Int, $limit: Int) {
relayFollowers(page: $page, limit: $limit) {
elements {
...relayFragment
},
total
}
query relayFollowers($page: Int, $limit: Int) {
relayFollowers(page: $page, limit: $limit) {
elements {
...relayFragment
}
total
}
${RELAY_FRAGMENT}
}
${RELAY_FRAGMENT}
`;
export const RELAY_FOLLOWINGS = gql`
query relayFollowings($page: Int, $limit: Int) {
relayFollowings(page: $page, limit: $limit) {
elements {
...relayFragment
},
total
}
query relayFollowings($page: Int, $limit: Int) {
relayFollowings(page: $page, limit: $limit) {
elements {
...relayFragment
}
total
}
${RELAY_FRAGMENT}
}
${RELAY_FRAGMENT}
`;
export const ADD_RELAY = gql`
mutation addRelay($address: String!) {
addRelay(address: $address) {
...relayFragment
}
mutation addRelay($address: String!) {
addRelay(address: $address) {
...relayFragment
}
${RELAY_FRAGMENT}
}
${RELAY_FRAGMENT}
`;
export const REMOVE_RELAY = gql`
mutation removeRelay($address: String!) {
removeRelay(address: $address) {
...relayFragment
}
mutation removeRelay($address: String!) {
removeRelay(address: $address) {
...relayFragment
}
${RELAY_FRAGMENT}
}
${RELAY_FRAGMENT}
`;
export const ACCEPT_RELAY = gql`
mutation acceptRelay($address: String!) {
acceptRelay(address: $address) {
...relayFragment
}
mutation acceptRelay($address: String!) {
acceptRelay(address: $address) {
...relayFragment
}
${RELAY_FRAGMENT}
}
${RELAY_FRAGMENT}
`;
export const REJECT_RELAY = gql`
mutation rejectRelay($address: String!) {
rejectRelay(address: $address) {
...relayFragment
}
mutation rejectRelay($address: String!) {
rejectRelay(address: $address) {
...relayFragment
}
${RELAY_FRAGMENT}
}
${RELAY_FRAGMENT}
`;
export const ADMIN_SETTINGS_FRAGMENT = gql`
fragment adminSettingsFragment on AdminSettings {
instanceName,
instanceDescription,
instanceTerms,
instanceTermsType,
instanceTermsUrl
registrationsOpen
}
fragment adminSettingsFragment on AdminSettings {
instanceName
instanceDescription
instanceTerms
instanceTermsType
instanceTermsUrl
registrationsOpen
}
`;
export const ADMIN_SETTINGS = gql`
query {
adminSettings {
...adminSettingsFragment
}
query {
adminSettings {
...adminSettingsFragment
}
${ADMIN_SETTINGS_FRAGMENT}
}
${ADMIN_SETTINGS_FRAGMENT}
`;
export const SAVE_ADMIN_SETTINGS = gql`
mutation SaveAdminSettings(
$instanceName: String,
$instanceDescription: String,
$instanceTerms: String,
$instanceTermsType: InstanceTermsType,
$instanceTermsUrl: String,
$registrationsOpen: Boolean) {
saveAdminSettings(
instanceName: $instanceName,
instanceDescription: $instanceDescription,
instanceTerms: $instanceTerms,
instanceTermsType: $instanceTermsType,
instanceTermsUrl: $instanceTermsUrl,
registrationsOpen: $registrationsOpen
) {
...adminSettingsFragment
}
mutation SaveAdminSettings(
$instanceName: String
$instanceDescription: String
$instanceTerms: String
$instanceTermsType: InstanceTermsType
$instanceTermsUrl: String
$registrationsOpen: Boolean
) {
saveAdminSettings(
instanceName: $instanceName
instanceDescription: $instanceDescription
instanceTerms: $instanceTerms
instanceTermsType: $instanceTermsType
instanceTermsUrl: $instanceTermsUrl
registrationsOpen: $registrationsOpen
) {
...adminSettingsFragment
}
${ADMIN_SETTINGS_FRAGMENT}
}
${ADMIN_SETTINGS_FRAGMENT}
`;

View File

@@ -1,48 +1,48 @@
import gql from 'graphql-tag';
import gql from "graphql-tag";
export const LOGIN = gql`
mutation Login($email: String!, $password: String!) {
login(email: $email, password: $password) {
accessToken,
refreshToken,
user {
id,
email,
role
mutation Login($email: String!, $password: String!) {
login(email: $email, password: $password) {
accessToken
refreshToken
user {
id
email
role
}
}
},
}
}
`;
export const SEND_RESET_PASSWORD = gql`
mutation SendResetPassword($email: String!) {
sendResetPassword(email: $email)
}
mutation SendResetPassword($email: String!) {
sendResetPassword(email: $email)
}
`;
export const RESET_PASSWORD = gql`
mutation ResetPassword($token: String!, $password: String!) {
resetPassword(token: $token, password: $password) {
accessToken,
refreshToken
user {
id,
mutation ResetPassword($token: String!, $password: String!) {
resetPassword(token: $token, password: $password) {
accessToken
refreshToken
user {
id
}
}
},
}
}
`;
export const RESEND_CONFIRMATION_EMAIL = gql`
mutation ResendConfirmationEmail($email: String!) {
resendConfirmationEmail(email: $email)
}
mutation ResendConfirmationEmail($email: String!) {
resendConfirmationEmail(email: $email)
}
`;
export const REFRESH_TOKEN = gql`
mutation RefreshToken($refreshToken: String!) {
refreshToken(refreshToken: $refreshToken) {
accessToken,
refreshToken,
accessToken
refreshToken
}
}
`;

View File

@@ -1,85 +1,101 @@
import gql from 'graphql-tag';
import gql from "graphql-tag";
export const COMMENT_FIELDS_FRAGMENT_NAME = 'CommentFields';
export const COMMENT_FIELDS_FRAGMENT_NAME = "CommentFields";
export const COMMENT_FIELDS_FRAGMENT = gql`
fragment CommentFields on Comment {
id,
uuid,
url,
text,
visibility,
local,
actor {
avatar {
url
},
id,
domain,
preferredUsername,
name
},
totalReplies,
updatedAt,
deletedAt
},
fragment CommentFields on Comment {
id
uuid
url
text
visibility
local
actor {
avatar {
url
}
id
domain
preferredUsername
name
}
totalReplies
updatedAt
deletedAt
}
`;
export const COMMENT_RECURSIVE_FRAGMENT = gql`
fragment CommentRecursive on Comment {
fragment CommentRecursive on Comment {
...CommentFields
inReplyToComment {
...CommentFields
}
originComment {
...CommentFields
}
replies {
...CommentFields
replies {
...CommentFields
inReplyToComment {
...CommentFields
},
originComment {
...CommentFields
},
replies {
...CommentFields
replies {
...CommentFields
}
},
},
${COMMENT_FIELDS_FRAGMENT}
}
}
}
${COMMENT_FIELDS_FRAGMENT}
`;
export const FETCH_THREAD_REPLIES = gql`
query($threadId: ID!) {
thread(id: $threadId) {
...CommentRecursive
}
query($threadId: ID!) {
thread(id: $threadId) {
...CommentRecursive
}
${COMMENT_RECURSIVE_FRAGMENT}
}
${COMMENT_RECURSIVE_FRAGMENT}
`;
export const COMMENTS_THREADS = gql`
query($eventUUID: UUID!) {
event(uuid: $eventUUID) {
id,
uuid,
comments {
...CommentFields,
}
}
query($eventUUID: UUID!) {
event(uuid: $eventUUID) {
id
uuid
comments {
...CommentFields
}
}
${COMMENT_RECURSIVE_FRAGMENT}
}
${COMMENT_RECURSIVE_FRAGMENT}
`;
export const CREATE_COMMENT_FROM_EVENT = gql`
mutation CreateCommentFromEvent($eventId: ID!, $actorId: ID!, $text: String!, $inReplyToCommentId: ID) {
createComment(eventId: $eventId, actorId: $actorId, text: $text, inReplyToCommentId: $inReplyToCommentId) {
...CommentRecursive
}
mutation CreateCommentFromEvent(
$eventId: ID!
$actorId: ID!
$text: String!
$inReplyToCommentId: ID
) {
createComment(
eventId: $eventId
actorId: $actorId
text: $text
inReplyToCommentId: $inReplyToCommentId
) {
...CommentRecursive
}
${COMMENT_RECURSIVE_FRAGMENT}
}
${COMMENT_RECURSIVE_FRAGMENT}
`;
export const DELETE_COMMENT = gql`
mutation DeleteComment($commentId: ID!, $actorId: ID!) {
deleteComment(commentId: $commentId, actorId: $actorId) {
id
}
mutation DeleteComment($commentId: ID!, $actorId: ID!) {
deleteComment(commentId: $commentId, actorId: $actorId) {
id
}
}
`;
export const UPDATE_COMMENT = gql`
mutation UpdateComment($commentId: ID!, $text: String!) {
updateComment(commentId: $commentId, text: $text) {
...CommentFields
}
}
`;

View File

@@ -1,68 +1,81 @@
import gql from 'graphql-tag';
import gql from "graphql-tag";
export const CONFIG = gql`
query {
config {
name,
description,
registrationsOpen,
registrationsWhitelist,
demoMode,
countryCode,
anonymous {
participation {
allowed,
validation {
email {
enabled,
confirmationRequired
},
captcha {
enabled
query {
config {
name
description
registrationsOpen
registrationsWhitelist
demoMode
countryCode
anonymous {
participation {
allowed
validation {
email {
enabled
confirmationRequired
}
captcha {
enabled
}
}
}
}
eventCreation {
allowed,
validation {
email {
enabled,
confirmationRequired
},
captcha {
enabled
eventCreation {
allowed
validation {
email {
enabled
confirmationRequired
}
captcha {
enabled
}
}
}
actorId
}
actorId
},
location {
latitude,
longitude,
accuracyRadius
},
maps {
tiles {
endpoint,
attribution
location {
latitude
longitude
accuracyRadius
}
maps {
tiles {
endpoint
attribution
}
}
geocoding {
provider
autocomplete
}
resourceProviders {
type
endpoint
software
}
},
geocoding {
provider,
autocomplete
}
}
}
`;
export const TERMS = gql`
query Terms($locale: String) {
config {
terms(locale: $locale) {
type,
url,
bodyHtml
query Terms($locale: String) {
config {
terms(locale: $locale) {
type
url
bodyHtml
}
}
}
`;
export const TIMEZONES = gql`
query {
config {
timezones
}
}
}
`;

View File

@@ -0,0 +1,120 @@
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}
`;

View File

@@ -1,29 +1,33 @@
import gql from 'graphql-tag';
import { COMMENT_FIELDS_FRAGMENT } from '@/graphql/comment';
import gql from "graphql-tag";
import { COMMENT_FIELDS_FRAGMENT } from "@/graphql/comment";
const participantQuery = `
role,
id,
actor {
preferredUsername,
avatar {
url
},
name,
id,
domain
},
event {
id,
uuid
},
metadata {
cancellationToken,
message
},
insertedAt
`;
const participantsQuery = `
total,
elements {
role,
id,
actor {
preferredUsername,
avatar {
url
},
name,
id,
domain
},
event {
id,
uuid
},
metadata {
cancellationToken,
message
},
insertedAt
${participantQuery}
}
`;
@@ -66,7 +70,8 @@ const optionsQuery = `
attendees,
program,
commentModeration,
showParticipationPrice
showParticipationPrice,
hideOrganizerWhenGroupEvent,
__typename
`;
@@ -106,14 +111,19 @@ export const FETCH_EVENT = gql`
name,
url,
id,
summary
},
attributedTo {
avatar {
url,
}
preferredUsername,
name,
summary,
domain,
url,
id
},
# attributedTo {
# avatar {
# url,
# }
# preferredUsername,
# name,
# },
participantStats {
going,
notApproved,
@@ -147,7 +157,6 @@ export const FETCH_EVENT = gql`
}
}
}
${COMMENT_FIELDS_FRAGMENT}
`;
export const FETCH_EVENTS = gql`
@@ -193,7 +202,7 @@ export const FETCH_EVENTS = gql`
# },
category,
participants {
${participantQuery}
${participantsQuery}
},
tags {
slug,
@@ -206,6 +215,7 @@ export const FETCH_EVENTS = gql`
export const CREATE_EVENT = gql`
mutation createEvent(
$organizerActorId: ID!,
$attributedToId: ID,
$title: String!,
$description: String!,
$beginsOn: DateTime!,
@@ -224,6 +234,7 @@ export const CREATE_EVENT = gql`
) {
createEvent(
organizerActorId: $organizerActorId,
attributedToId: $attributedToId,
title: $title,
description: $description,
beginsOn: $beginsOn,
@@ -263,6 +274,16 @@ export const CREATE_EVENT = gql`
physicalAddress {
${physicalAddressQuery}
},
attributedTo {
id,
domain,
name,
url,
preferredUsername,
avatar {
url
}
},
organizerActor {
avatar {
url
@@ -304,6 +325,7 @@ export const EDIT_EVENT = gql`
$onlineAddress: String,
$phoneAddress: String,
$organizerActorId: ID,
$attributedToId: ID,
$category: String,
$physicalAddress: AddressInput,
$options: EventOptionsInput,
@@ -323,6 +345,7 @@ export const EDIT_EVENT = gql`
onlineAddress: $onlineAddress,
phoneAddress: $phoneAddress,
organizerActorId: $organizerActorId,
attributedToId: $attributedToId,
category: $category,
physicalAddress: $physicalAddress
options: $options,
@@ -350,6 +373,16 @@ export const EDIT_EVENT = gql`
physicalAddress {
${physicalAddressQuery}
},
attributedTo {
id,
domain,
name,
url,
preferredUsername,
avatar {
url
}
},
organizerActor {
avatar {
url
@@ -390,11 +423,7 @@ export const JOIN_EVENT = gql`
export const LEAVE_EVENT = gql`
mutation LeaveEvent($eventId: ID!, $actorId: ID!, $token: String) {
leaveEvent(
eventId: $eventId,
actorId: $actorId,
token: $token
) {
leaveEvent(eventId: $eventId, actorId: $actorId, token: $token) {
actor {
id
}
@@ -406,11 +435,11 @@ export const CONFIRM_PARTICIPATION = gql`
mutation ConfirmParticipation($token: String!) {
confirmParticipation(confirmationToken: $token) {
actor {
id,
},
id
}
event {
uuid
},
}
role
}
}
@@ -419,7 +448,7 @@ export const CONFIRM_PARTICIPATION = gql`
export const UPDATE_PARTICIPANT = gql`
mutation AcceptParticipant($id: ID!, $moderatorActorId: ID!, $role: ParticipantRoleEnum!) {
updateParticipation(id: $id, moderatorActorId: $moderatorActorId, role: $role) {
role,
role
id
}
}
@@ -427,11 +456,8 @@ export const UPDATE_PARTICIPANT = gql`
export const DELETE_EVENT = gql`
mutation DeleteEvent($eventId: ID!, $actorId: ID!) {
deleteEvent(
eventId: $eventId,
actorId: $actorId
) {
id
deleteEvent(eventId: $eventId, actorId: $actorId) {
id
}
}
`;
@@ -441,7 +467,7 @@ export const PARTICIPANTS = gql`
event(uuid: $uuid) {
id,
participants(page: $page, limit: $limit, roles: $roles, actorId: $actorId) {
${participantQuery}
${participantsQuery}
},
participantStats {
going,
@@ -456,13 +482,13 @@ export const PARTICIPANTS = gql`
export const EVENT_PERSON_PARTICIPATION = gql`
query($actorId: ID!, $eventId: ID!) {
person(id: $actorId) {
id,
id
participations(eventId: $eventId) {
id,
role,
id
role
actor {
id
},
}
event {
id
}
@@ -472,15 +498,15 @@ export const EVENT_PERSON_PARTICIPATION = gql`
`;
export const EVENT_PERSON_PARTICIPATION_SUBSCRIPTION_CHANGED = gql`
subscription ($actorId: ID!, $eventId: ID!) {
subscription($actorId: ID!, $eventId: ID!) {
eventPersonParticipationChanged(personId: $actorId) {
id,
id
participations(eventId: $eventId) {
id,
role,
id
role
actor {
id
},
}
event {
id
}

View File

@@ -1,51 +1,54 @@
import gql from 'graphql-tag';
import gql from "graphql-tag";
export const LOGGED_PERSON = gql`
query {
loggedPerson {
id,
avatar {
url
},
preferredUsername,
query {
loggedPerson {
id
avatar {
url
}
preferredUsername
}
}
}`;
`;
export const CREATE_FEED_TOKEN_ACTOR = gql`
mutation createFeedToken($actor_id: ID!) {
createFeedToken(actorId: $actor_id) {
token,
actor {
id
},
user {
id
}
}
}`;
export const CREATE_FEED_TOKEN = gql`
mutation {
createFeedToken {
token,
actor {
id
},
user {
id
}
}
}`;
export const DELETE_FEED_TOKEN = gql`
mutation deleteFeedToken($token: String!) {
deleteFeedToken(token: $token) {
actor {
id
},
user {
id
}
mutation createFeedToken($actor_id: ID!) {
createFeedToken(actorId: $actor_id) {
token
actor {
id
}
user {
id
}
}
}
`;
export const CREATE_FEED_TOKEN = gql`
mutation {
createFeedToken {
token
actor {
id
}
user {
id
}
}
}
`;
export const DELETE_FEED_TOKEN = gql`
mutation deleteFeedToken($token: String!) {
deleteFeedToken(token: $token) {
actor {
id
}
user {
id
}
}
}
`;

View File

@@ -1 +1,11 @@
{"__schema":{"types":[{"possibleTypes":[{"name":"Event"},{"name":"Actor"}],"name":"SearchResult","kind":"UNION"}]}}
{
"__schema": {
"types": [
{
"possibleTypes": [{ "name": "Event" }, { "name": "Actor" }],
"name": "SearchResult",
"kind": "UNION"
}
]
}
}

24
js/src/graphql/member.ts Normal file
View File

@@ -0,0 +1,24 @@
import gql from "graphql-tag";
export const INVITE_MEMBER = gql`
mutation InviteMember($groupId: ID!, $targetActorUsername: String!) {
inviteMember(groupId: $groupId, targetActorUsername: $targetActorUsername) {
id
role
parent {
id
}
actor {
id
}
}
}
`;
export const ACCEPT_INVITATION = gql`
mutation AcceptInvitation($id: ID!) {
acceptInvitation(id: $id) {
id
}
}
`;

View File

@@ -1,186 +1,185 @@
import gql from 'graphql-tag';
import gql from "graphql-tag";
export const REPORTS = gql`
query Reports($status: ReportStatus) {
reports(status: $status) {
id,
reported {
id,
preferredUsername,
domain,
name,
avatar {
url
}
},
reporter {
id,
preferredUsername,
name,
avatar {
url
},
domain,
type
},
event {
id,
uuid,
title,
picture {
id,
url
}
},
status,
content
query Reports($status: ReportStatus) {
reports(status: $status) {
id
reported {
id
preferredUsername
domain
name
avatar {
url
}
}
reporter {
id
preferredUsername
name
avatar {
url
}
domain
type
}
event {
id
uuid
title
picture {
id
url
}
}
status
content
}
}
`;
const REPORT_FRAGMENT = gql`
fragment ReportFragment on Report {
id,
reported {
id,
preferredUsername,
name,
avatar {
url
},
domain
},
reporter {
id,
preferredUsername,
name,
avatar {
url
},
domain,
type
},
event {
id,
uuid,
title,
description,
picture {
id,
url
}
},
comments {
id,
text,
actor {
id,
preferredUsername,
domain,
name,
avatar {
url
}
}
}
notes {
id,
content
moderator {
id,
preferredUsername,
name,
avatar {
url
}
},
insertedAt
},
insertedAt,
updatedAt,
status,
content
fragment ReportFragment on Report {
id
reported {
id
preferredUsername
name
avatar {
url
}
domain
}
reporter {
id
preferredUsername
name
avatar {
url
}
domain
type
}
event {
id
uuid
title
description
picture {
id
url
}
}
comments {
id
text
actor {
id
preferredUsername
domain
name
avatar {
url
}
}
}
notes {
id
content
moderator {
id
preferredUsername
name
avatar {
url
}
}
insertedAt
}
insertedAt
updatedAt
status
content
}
`;
export const REPORT = gql`
query Report($id: ID!) {
report(id: $id) {
...ReportFragment
}
query Report($id: ID!) {
report(id: $id) {
...ReportFragment
}
${REPORT_FRAGMENT}
}
${REPORT_FRAGMENT}
`;
export const CREATE_REPORT = gql`
mutation CreateReport(
$eventId: ID!,
$reporterId: ID!,
$reportedId: ID!,
$content: String,
$commentsIds: [ID],
$forward: Boolean
mutation CreateReport(
$eventId: ID!
$reporterId: ID!
$reportedId: ID!
$content: String
$commentsIds: [ID]
$forward: Boolean
) {
createReport(
eventId: $eventId
reporterId: $reporterId
reportedId: $reportedId
content: $content
commentsIds: $commentsIds
forward: $forward
) {
createReport(eventId: $eventId, reporterId: $reporterId, reportedId: $reportedId, content: $content, commentsIds: $commentsIds, forward: $forward) {
id
}
id
}
`;
}
`;
export const UPDATE_REPORT = gql`
mutation UpdateReport(
$reportId: ID!,
$moderatorId: ID!,
$status: ReportStatus!
) {
updateReportStatus(reportId: $reportId, moderatorId: $moderatorId, status: $status) {
...ReportFragment
}
mutation UpdateReport($reportId: ID!, $moderatorId: ID!, $status: ReportStatus!) {
updateReportStatus(reportId: $reportId, moderatorId: $moderatorId, status: $status) {
...ReportFragment
}
${REPORT_FRAGMENT}
}
${REPORT_FRAGMENT}
`;
export const CREATE_REPORT_NOTE = gql`
mutation CreateReportNote(
$reportId: ID!,
$moderatorId: ID!,
$content: String!
) {
createReportNote(reportId: $reportId, moderatorId: $moderatorId, content: $content) {
id,
content,
insertedAt
}
mutation CreateReportNote($reportId: ID!, $moderatorId: ID!, $content: String!) {
createReportNote(reportId: $reportId, moderatorId: $moderatorId, content: $content) {
id
content
insertedAt
}
`;
}
`;
export const LOGS = gql`
query {
actionLogs {
id,
action,
actor {
id,
preferredUsername
avatar {
url
}
},
object {
...on Report {
id
},
... on ReportNote {
report {
id,
}
}
... on Event {
id,
title
}
},
insertedAt
query {
actionLogs {
id
action
actor {
id
preferredUsername
avatar {
url
}
}
object {
... on Report {
id
}
... on ReportNote {
report {
id
}
}
... on Event {
id
title
}
}
insertedAt
}
`;
}
`;

142
js/src/graphql/resources.ts Normal file
View File

@@ -0,0 +1,142 @@
import gql from "graphql-tag";
export const RESOURCE_METADATA_BASIC_FIELDS_FRAGMENT = gql`
fragment ResourceMetadataBasicFields on ResourceMetadata {
imageRemoteUrl
height
width
type
faviconUrl
}
`;
export const GET_RESOURCE = gql`
query GetResource($path: String!, $username: String!) {
resource(path: $path, username: $username) {
id
title
summary
url
path
metadata {
...ResourceMetadataBasicFields
authorName
authorUrl
providerName
providerUrl
html
}
parent {
id
}
actor {
id
preferredUsername
domain
}
children {
total
elements {
id
title
summary
url
type
path
resourceUrl
metadata {
...ResourceMetadataBasicFields
}
}
}
}
}
${RESOURCE_METADATA_BASIC_FIELDS_FRAGMENT}
`;
export const CREATE_RESOURCE = gql`
mutation CreateResource(
$title: String!
$parentId: ID
$summary: String
$actorId: ID!
$resourceUrl: String
$type: String
) {
createResource(
title: $title
parentId: $parentId
summary: $summary
actorId: $actorId
resourceUrl: $resourceUrl
type: $type
) {
id
title
summary
url
resourceUrl
updatedAt
path
type
metadata {
...ResourceMetadataBasicFields
authorName
authorUrl
providerName
providerUrl
html
}
}
}
${RESOURCE_METADATA_BASIC_FIELDS_FRAGMENT}
`;
export const UPDATE_RESOURCE = gql`
mutation UpdateResource(
$id: ID!
$title: String
$summary: String
$parentId: ID
$resourceUrl: String
) {
updateResource(
id: $id
title: $title
parentId: $parentId
summary: $summary
resourceUrl: $resourceUrl
) {
id
title
summary
url
path
resourceUrl
}
}
`;
export const DELETE_RESOURCE = gql`
mutation DeleteResource($id: ID!) {
deleteResource(id: $id) {
id
}
}
`;
export const PREVIEW_RESOURCE_LINK = gql`
mutation PreviewResourceLink($resourceUrl: String!) {
previewResourceLink(resourceUrl: $resourceUrl) {
title
description
...ResourceMetadataBasicFields
authorName
authorUrl
providerName
providerUrl
html
}
}
${RESOURCE_METADATA_BASIC_FIELDS_FRAGMENT}
`;

View File

@@ -1,55 +1,55 @@
import gql from 'graphql-tag';
import gql from "graphql-tag";
export const SEARCH_EVENTS = gql`
query SearchEvents($searchText: String!) {
searchEvents(search: $searchText) {
total,
elements {
title,
uuid,
beginsOn,
picture {
url,
},
tags {
slug,
title
},
__typename
}
}
}
`;
export const SEARCH_GROUPS = gql`
query SearchGroups($searchText: String!) {
searchGroups(search: $searchText) {
total,
elements {
avatar {
url
},
domain,
preferredUsername,
name,
__typename
}
}
}
`;
export const SEARCH_PERSONS = gql`
query SearchPersons($searchText: String!) {
searchPersons(search: $searchText) {
total,
query SearchEvents($searchText: String!) {
searchEvents(search: $searchText) {
total
elements {
id,
avatar {
title
uuid
beginsOn
picture {
url
},
domain,
preferredUsername,
name,
}
tags {
slug
title
}
__typename
}
}
}
`;
export const SEARCH_GROUPS = gql`
query SearchGroups($searchText: String!) {
searchGroups(search: $searchText) {
total
elements {
avatar {
url
}
domain
preferredUsername
name
__typename
}
}
}
`;
export const SEARCH_PERSONS = gql`
query SearchPersons($searchText: String!, $page: Int, $limit: Int) {
searchPersons(search: $searchText, page: $page, limit: $limit) {
total
elements {
id
avatar {
url
}
domain
preferredUsername
name
__typename
}
}

View File

@@ -1,16 +1,17 @@
import gql from 'graphql-tag';
import gql from "graphql-tag";
/* eslint-disable import/prefer-default-export */
export const TAGS = gql`
query {
tags {
id,
related {
id,
slug,
query {
tags {
id
related {
id
slug
title
}
slug
title
}
slug,
title
}
}
`;

130
js/src/graphql/todos.ts Normal file
View File

@@ -0,0 +1,130 @@
import gql from "graphql-tag";
export const GET_TODO = gql`
query GetTodo($id: ID!) {
todo(id: $id) {
id
title
status
dueDate
todoList {
actor {
id
preferredUsername
}
title
id
}
assignedTo {
id
preferredUsername
domain
name
avatar {
url
}
}
}
}
`;
export const FETCH_TODO_LIST = gql`
query FetchTodoList($id: ID!) {
todoList(id: $id) {
id
title
todos {
total
elements {
id
title
status
assignedTo {
id
preferredUsername
domain
}
dueDate
}
}
actor {
id
preferredUsername
domain
}
}
}
`;
export const CREATE_TODO_LIST = gql`
mutation CreateTodoList($title: String!, $groupId: ID!) {
createTodoList(title: $title, groupId: $groupId) {
id
title
todos {
total
elements {
id
}
}
}
}
`;
export const CREATE_TODO = gql`
mutation createTodo(
$title: String!
$todoListId: ID!
$status: Boolean
$assignedToId: ID
$dueDate: DateTime
) {
createTodo(
title: $title
todoListId: $todoListId
status: $status
assignedToId: $assignedToId
dueDate: $dueDate
) {
id
title
status
assignedTo {
id
}
creator {
id
}
dueDate
}
}
`;
export const UPDATE_TODO = gql`
mutation updateTodo(
$id: ID!
$title: String
$status: Boolean
$assignedToId: ID
$dueDate: DateTime
) {
updateTodo(
id: $id
title: $title
status: $status
assignedToId: $assignedToId
dueDate: $dueDate
) {
id
title
status
assignedTo {
id
}
creator {
id
}
dueDate
}
}
`;

View File

@@ -1,10 +1,11 @@
import gql from 'graphql-tag';
import gql from "graphql-tag";
/* eslint-disable import/prefer-default-export */
export const UPLOAD_PICTURE = gql`
mutation UploadPicture($file: Upload!, $alt: String, $name: String!, $actorId: ID!){
uploadPicture(file: $file, alt: $alt, name: $name, actorId: $actorId) {
url,
id
}
mutation UploadPicture($file: Upload!, $alt: String, $name: String!, $actorId: ID!) {
uploadPicture(file: $file, alt: $alt, name: $name, actorId: $actorId) {
url
id
}
}
`;

View File

@@ -1,39 +1,39 @@
import gql from 'graphql-tag';
import gql from "graphql-tag";
export const CREATE_USER = gql`
mutation CreateUser($email: String!, $password: String!, $locale: String) {
createUser(email: $email, password: $password, locale: $locale) {
email,
confirmationSentAt
mutation CreateUser($email: String!, $password: String!, $locale: String) {
createUser(email: $email, password: $password, locale: $locale) {
email
confirmationSentAt
}
}
}
`;
export const VALIDATE_USER = gql`
mutation ValidateUser($token: String!) {
validateUser(token: $token) {
accessToken,
refreshToken,
user {
id,
email,
defaultActor {
id,
preferredUsername,
name,
avatar {
mutation ValidateUser($token: String!) {
validateUser(token: $token) {
accessToken
refreshToken
user {
id
email
defaultActor {
id
preferredUsername
name
avatar {
url
}
}
}
}
}
}
`;
export const LOGGED_USER = gql`
query {
loggedUser {
id,
id
email
}
}
@@ -57,9 +57,7 @@ export const CHANGE_EMAIL = gql`
export const VALIDATE_EMAIL = gql`
mutation ValidateEmail($token: String!) {
validateEmail(
token: $token
) {
validateEmail(token: $token) {
id
}
}
@@ -67,25 +65,69 @@ export const VALIDATE_EMAIL = gql`
export const DELETE_ACCOUNT = gql`
mutation DeleteAccount($password: String!) {
deleteAccount (password: $password) {
deleteAccount(password: $password) {
id
}
}
`;
export const CURRENT_USER_CLIENT = gql`
query {
currentUser @client {
id,
email,
isLoggedIn,
role
query {
currentUser @client {
id
email
isLoggedIn
role
}
}
}
`;
export const UPDATE_CURRENT_USER_CLIENT = gql`
mutation UpdateCurrentUser($id: String!, $email: String!, $isLoggedIn: Boolean!, $role: UserRole!) {
updateCurrentUser(id: $id, email: $email, isLoggedIn: $isLoggedIn, role: $role) @client
}
mutation UpdateCurrentUser(
$id: String!
$email: String!
$isLoggedIn: Boolean!
$role: UserRole!
) {
updateCurrentUser(id: $id, email: $email, isLoggedIn: $isLoggedIn, role: $role) @client
}
`;
export const USER_SETTINGS_FRAGMENT = gql`
fragment UserSettingFragment on UserSettings {
timezone
notificationOnDay
notificationEachWeek
notificationBeforeEvent
}
`;
export const USER_SETTINGS = gql`
query UserSetting {
loggedUser {
settings {
...UserSettingFragment
}
}
}
${USER_SETTINGS_FRAGMENT}
`;
export const SET_USER_SETTINGS = gql`
mutation SetUserSettings(
$timezone: String
$notificationOnDay: Boolean
$notificationEachWeek: Boolean
$notificationBeforeEvent: Boolean
) {
setUserSettings(
timezone: $timezone
notificationOnDay: $notificationOnDay
notificationEachWeek: $notificationEachWeek
notificationBeforeEvent: $notificationBeforeEvent
) {
...UserSettingFragment
}
}
${USER_SETTINGS_FRAGMENT}
`;