mobilizon/js/src/graphql/actor.ts

460 lines
7.9 KiB
TypeScript

import gql from "graphql-tag";
export const ACTOR_FRAGMENT = gql`
fragment ActorFragment on Actor {
id
avatar {
id
url
}
type
preferredUsername
name
domain
summary
url
}
`;
export const FETCH_PERSON = gql`
query ($username: String!) {
fetchPerson(preferredUsername: $username) {
...ActorFragment
suspended
mediaSize
avatar {
id
name
url
}
banner {
id
url
}
feedTokens {
token
}
organizedEvents {
total
elements {
id
uuid
title
beginsOn
status
}
}
}
}
${ACTOR_FRAGMENT}
`;
export const GET_PERSON = gql`
query Person(
$actorId: ID!
$organizedEventsPage: Int
$organizedEventsLimit: Int
$participationPage: Int
$participationLimit: Int
$membershipsPage: Int
$membershipsLimit: Int
) {
person(id: $actorId) {
...ActorFragment
suspended
mediaSize
avatar {
id
name
url
}
banner {
id
url
}
feedTokens {
token
}
organizedEvents(
page: $organizedEventsPage
limit: $organizedEventsLimit
) {
total
elements {
id
uuid
title
beginsOn
status
}
}
participations(page: $participationPage, limit: $participationLimit) {
total
elements {
id
event {
id
uuid
title
beginsOn
status
}
}
}
memberships(page: $membershipsPage, limit: $membershipsLimit) {
total
elements {
id
role
insertedAt
parent {
...ActorFragment
}
}
}
user {
id
email
}
}
}
${ACTOR_FRAGMENT}
`;
export const PERSON_FRAGMENT = gql`
fragment PersonFragment on Person {
id
avatar {
id
url
}
type
preferredUsername
domain
name
}
`;
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 {
...ActorFragment
}
}
}
${ACTOR_FRAGMENT}
`;
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
preferredUsername
name
avatar
}
}
`;
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_DRAFTS = gql`
query LoggedUserDrafts($page: Int, $limit: Int) {
loggedUser {
id
drafts(page: $page, limit: $limit) {
id
uuid
title
draft
picture {
id
url
alt
}
beginsOn
status
visibility
attributedTo {
...ActorFragment
}
organizerActor {
...ActorFragment
}
participantStats {
going
notApproved
}
options {
maximumAttendeeCapacity
remainingAttendeeCapacity
}
}
}
}
${ACTOR_FRAGMENT}
`;
export const LOGGED_USER_MEMBERSHIPS = gql`
query LoggedUserMemberships(
$membershipName: String
$page: Int
$limit: Int
) {
loggedUser {
id
memberships(name: $membershipName, page: $page, limit: $limit) {
total
elements {
id
role
actor {
...ActorFragment
}
parent {
...ActorFragment
organizedEvents {
elements {
id
title
picture {
id
url
}
}
total
}
}
invitedBy {
...ActorFragment
}
}
}
}
}
${ACTOR_FRAGMENT}
`;
export const IDENTITIES = gql`
query Identities {
identities {
...ActorFragment
}
}
${ACTOR_FRAGMENT}
`;
export const PERSON_MEMBERSHIPS = gql`
query PersonMemberships($id: ID!) {
person(id: $id) {
id
memberships {
total
elements {
id
role
parent {
...ActorFragment
}
invitedBy {
...ActorFragment
}
insertedAt
updatedAt
}
}
}
}
${ACTOR_FRAGMENT}
`;
export const PERSON_STATUS_GROUP = gql`
query PersonMembershipGroup($id: ID!, $group: String!) {
person(id: $id) {
id
memberships(group: $group) {
total
elements {
id
role
parent {
...ActorFragment
}
invitedBy {
...ActorFragment
}
insertedAt
updatedAt
}
}
follows(group: $group) {
total
elements {
id
notify
approved
target_actor {
...ActorFragment
}
actor {
...ActorFragment
}
insertedAt
updatedAt
}
}
}
}
${ACTOR_FRAGMENT}
`;
export const GROUP_MEMBERSHIP_SUBSCRIPTION_CHANGED = gql`
subscription GroupMembershipSubscriptionChanged(
$actorId: ID!
$group: String!
) {
groupMembershipChanged(personId: $actorId, group: $group) {
id
memberships {
total
elements {
id
role
parent {
...ActorFragment
}
invitedBy {
...ActorFragment
}
insertedAt
updatedAt
}
}
}
}
${ACTOR_FRAGMENT}
`;
export const CREATE_PERSON = gql`
mutation CreatePerson(
$preferredUsername: String!
$name: String!
$summary: String
$avatar: MediaInput
) {
createPerson(
preferredUsername: $preferredUsername
name: $name
summary: $summary
avatar: $avatar
) {
...ActorFragment
}
}
${ACTOR_FRAGMENT}
`;
export const UPDATE_PERSON = gql`
mutation UpdatePerson(
$id: ID!
$name: String
$summary: String
$avatar: MediaInput
) {
updatePerson(id: $id, name: $name, summary: $summary, avatar: $avatar) {
...ActorFragment
}
}
${ACTOR_FRAGMENT}
`;
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
) {
...ActorFragment
}
}
${ACTOR_FRAGMENT}
`;
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
}
}
`;