mobilizon.chapril.org-mobil.../js/src/graphql/actor.ts

622 lines
11 KiB
TypeScript

import gql from "graphql-tag";
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!) {
fetchPerson(preferredUsername: $username) {
id
url
name
domain
summary
preferredUsername
suspended
avatar {
name
url
}
banner {
url
}
feedTokens {
token
}
organizedEvents {
total
elements {
uuid
title
beginsOn
}
}
}
}
`;
export const GET_PERSON = gql`
query(
$actorId: ID!
$organizedEventsPage: Int
$organizedEventsLimit: Int
$participationPage: Int
$participationLimit: Int
) {
person(id: $actorId) {
id
url
name
domain
summary
preferredUsername
suspended
avatar {
name
url
}
banner {
url
}
feedTokens {
token
}
organizedEvents(page: $organizedEventsPage, limit: $organizedEventsLimit) {
total
elements {
id
uuid
title
beginsOn
}
}
participations(page: $participationPage, limit: $participationLimit) {
total
elements {
id
event {
id
uuid
title
beginsOn
}
}
}
user {
id
email
}
}
}
`;
export const LIST_PROFILES = gql`
query ListProfiles(
$preferredUsername: String
$name: String
$domain: String
$local: Boolean
$suspended: Boolean
$page: Int
$limit: Int
) {
persons(
preferredUsername: $preferredUsername
name: $name
domain: $domain
local: $local
suspended: $suspended
page: $page
limit: $limit
) {
total
elements {
id
preferredUsername
domain
name
avatar {
url
}
}
}
}
`;
export const LOGGED_PERSON = gql`
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
}
}
`;
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
}
`;
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
) {
total
elements {
event {
id
uuid
title
picture {
id
url
alt
}
beginsOn
visibility
organizerActor {
id
preferredUsername
name
domain
summary
avatar {
url
}
}
participantStats {
going
notApproved
participant
}
options {
maximumAttendeeCapacity
remainingAttendeeCapacity
}
}
id
role
actor {
id
preferredUsername
name
domain
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
avatar {
url
}
}
}
`;
export const DELETE_PERSON = gql`
mutation DeletePerson($id: ID!) {
deletePerson(id: $id) {
preferredUsername
}
}
`;
/**
* 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
email: $email
) {
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 {
url
}
banner {
url
}
organizedEvents {
elements {
id
uuid
title
beginsOn
}
total
}
discussions {
total
elements {
...DiscussionBasicFields
}
}
posts {
total
elements {
...PostBasicFields
}
}
members {
elements {
role
actor {
id
name
domain
preferredUsername
avatar {
url
}
}
insertedAt
}
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
}
}
}
${DISCUSSION_BASIC_FIELDS_FRAGMENT}
${POST_BASIC_FIELDS}
${RESOURCE_METADATA_BASIC_FIELDS_FRAGMENT}
`;
export const CREATE_GROUP = gql`
mutation CreateGroup(
$creatorActorId: ID!
$preferredUsername: String!
$name: String!
$summary: String
$avatar: PictureInput
$banner: PictureInput
) {
createGroup(
creatorActorId: $creatorActorId
preferredUsername: $preferredUsername
name: $name
summary: $summary
banner: $banner
avatar: $avatar
) {
id
preferredUsername
name
summary
avatar {
url
}
banner {
url
}
}
}
`;
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) {
id
}
}
`;
export const UNSUSPEND_PROFILE = gql`
mutation UnSuspendProfile($id: ID!) {
unsuspendProfile(id: $id) {
id
}
}
`;