forked from potsda.mn/mobilizon
0c667b13ae
* CSV * PDF (requires Python dependency `weasyprint`) * ODS (requires Python dependency `pyexcel_ods3`) Signed-off-by: Thomas Citharel <tcit@tcit.fr>
587 lines
10 KiB
TypeScript
587 lines
10 KiB
TypeScript
import gql from "graphql-tag";
|
|
import { ADDRESS_FRAGMENT } from "./address";
|
|
import { TAG_FRAGMENT } from "./tags";
|
|
|
|
const PARTICIPANT_QUERY_FRAGMENT = gql`
|
|
fragment ParticipantQuery on Participant {
|
|
role
|
|
id
|
|
actor {
|
|
preferredUsername
|
|
avatar {
|
|
id
|
|
url
|
|
}
|
|
name
|
|
id
|
|
domain
|
|
}
|
|
event {
|
|
id
|
|
uuid
|
|
}
|
|
metadata {
|
|
cancellationToken
|
|
message
|
|
}
|
|
insertedAt
|
|
}
|
|
`;
|
|
|
|
const PARTICIPANTS_QUERY_FRAGMENT = gql`
|
|
fragment ParticipantsQuery on PaginatedParticipantList {
|
|
total
|
|
elements {
|
|
...ParticipantQuery
|
|
}
|
|
}
|
|
${PARTICIPANT_QUERY_FRAGMENT}
|
|
`;
|
|
|
|
const EVENT_OPTIONS_FRAGMENT = gql`
|
|
fragment EventOptions on EventOptions {
|
|
maximumAttendeeCapacity
|
|
remainingAttendeeCapacity
|
|
showRemainingAttendeeCapacity
|
|
anonymousParticipation
|
|
showStartTime
|
|
showEndTime
|
|
offers {
|
|
price
|
|
priceCurrency
|
|
url
|
|
}
|
|
participationConditions {
|
|
title
|
|
content
|
|
url
|
|
}
|
|
attendees
|
|
program
|
|
commentModeration
|
|
showParticipationPrice
|
|
hideOrganizerWhenGroupEvent
|
|
}
|
|
`;
|
|
|
|
const FULL_EVENT_FRAGMENT = gql`
|
|
fragment FullEvent on Event {
|
|
id
|
|
uuid
|
|
url
|
|
local
|
|
title
|
|
description
|
|
beginsOn
|
|
endsOn
|
|
status
|
|
visibility
|
|
joinOptions
|
|
draft
|
|
picture {
|
|
id
|
|
url
|
|
name
|
|
metadata {
|
|
width
|
|
height
|
|
blurhash
|
|
}
|
|
}
|
|
publishAt
|
|
onlineAddress
|
|
phoneAddress
|
|
physicalAddress {
|
|
...AdressFragment
|
|
}
|
|
organizerActor {
|
|
avatar {
|
|
id
|
|
url
|
|
}
|
|
preferredUsername
|
|
domain
|
|
name
|
|
url
|
|
id
|
|
summary
|
|
}
|
|
contacts {
|
|
avatar {
|
|
id
|
|
url
|
|
}
|
|
preferredUsername
|
|
name
|
|
summary
|
|
domain
|
|
url
|
|
id
|
|
}
|
|
attributedTo {
|
|
avatar {
|
|
id
|
|
url
|
|
}
|
|
preferredUsername
|
|
name
|
|
summary
|
|
domain
|
|
url
|
|
id
|
|
}
|
|
participantStats {
|
|
going
|
|
notApproved
|
|
participant
|
|
}
|
|
tags {
|
|
...TagFragment
|
|
}
|
|
relatedEvents {
|
|
id
|
|
uuid
|
|
title
|
|
beginsOn
|
|
picture {
|
|
id
|
|
url
|
|
name
|
|
metadata {
|
|
width
|
|
height
|
|
blurhash
|
|
}
|
|
}
|
|
physicalAddress {
|
|
id
|
|
description
|
|
}
|
|
organizerActor {
|
|
id
|
|
avatar {
|
|
id
|
|
url
|
|
}
|
|
preferredUsername
|
|
domain
|
|
name
|
|
}
|
|
}
|
|
options {
|
|
...EventOptions
|
|
}
|
|
metadata {
|
|
key
|
|
title
|
|
value
|
|
type
|
|
}
|
|
}
|
|
${ADDRESS_FRAGMENT}
|
|
${TAG_FRAGMENT}
|
|
${EVENT_OPTIONS_FRAGMENT}
|
|
`;
|
|
|
|
export const FETCH_EVENT = gql`
|
|
query FetchEvent($uuid: UUID!) {
|
|
event(uuid: $uuid) {
|
|
...FullEvent
|
|
}
|
|
}
|
|
${FULL_EVENT_FRAGMENT}
|
|
`;
|
|
|
|
export const FETCH_EVENT_BASIC = gql`
|
|
query ($uuid: UUID!) {
|
|
event(uuid: $uuid) {
|
|
id
|
|
uuid
|
|
joinOptions
|
|
participantStats {
|
|
going
|
|
notApproved
|
|
notConfirmed
|
|
participant
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
|
|
export const FETCH_EVENTS = gql`
|
|
query FetchEvents(
|
|
$orderBy: EventOrderBy
|
|
$direction: SortDirection
|
|
$page: Int
|
|
$limit: Int
|
|
) {
|
|
events(
|
|
orderBy: $orderBy
|
|
direction: $direction
|
|
page: $page
|
|
limit: $limit
|
|
) {
|
|
total
|
|
elements {
|
|
id
|
|
uuid
|
|
url
|
|
local
|
|
title
|
|
description
|
|
beginsOn
|
|
endsOn
|
|
status
|
|
visibility
|
|
insertedAt
|
|
picture {
|
|
id
|
|
url
|
|
}
|
|
publishAt
|
|
# online_address,
|
|
# phone_address,
|
|
physicalAddress {
|
|
id
|
|
description
|
|
locality
|
|
}
|
|
organizerActor {
|
|
id
|
|
avatar {
|
|
id
|
|
url
|
|
}
|
|
preferredUsername
|
|
domain
|
|
name
|
|
}
|
|
attributedTo {
|
|
avatar {
|
|
id
|
|
url
|
|
}
|
|
preferredUsername
|
|
name
|
|
}
|
|
category
|
|
tags {
|
|
...TagFragment
|
|
}
|
|
}
|
|
}
|
|
}
|
|
${TAG_FRAGMENT}
|
|
`;
|
|
|
|
export const CREATE_EVENT = gql`
|
|
mutation createEvent(
|
|
$organizerActorId: ID!
|
|
$attributedToId: ID
|
|
$title: String!
|
|
$description: String!
|
|
$beginsOn: DateTime!
|
|
$endsOn: DateTime
|
|
$status: EventStatus
|
|
$visibility: EventVisibility
|
|
$joinOptions: EventJoinOptions
|
|
$draft: Boolean
|
|
$tags: [String]
|
|
$picture: MediaInput
|
|
$onlineAddress: String
|
|
$phoneAddress: String
|
|
$category: String
|
|
$physicalAddress: AddressInput
|
|
$options: EventOptionsInput
|
|
$contacts: [Contact]
|
|
) {
|
|
createEvent(
|
|
organizerActorId: $organizerActorId
|
|
attributedToId: $attributedToId
|
|
title: $title
|
|
description: $description
|
|
beginsOn: $beginsOn
|
|
endsOn: $endsOn
|
|
status: $status
|
|
visibility: $visibility
|
|
joinOptions: $joinOptions
|
|
draft: $draft
|
|
tags: $tags
|
|
picture: $picture
|
|
onlineAddress: $onlineAddress
|
|
phoneAddress: $phoneAddress
|
|
category: $category
|
|
physicalAddress: $physicalAddress
|
|
options: $options
|
|
contacts: $contacts
|
|
) {
|
|
...FullEvent
|
|
}
|
|
}
|
|
${FULL_EVENT_FRAGMENT}
|
|
`;
|
|
|
|
export const EDIT_EVENT = gql`
|
|
mutation updateEvent(
|
|
$id: ID!
|
|
$title: String
|
|
$description: String
|
|
$beginsOn: DateTime
|
|
$endsOn: DateTime
|
|
$status: EventStatus
|
|
$visibility: EventVisibility
|
|
$joinOptions: EventJoinOptions
|
|
$draft: Boolean
|
|
$tags: [String]
|
|
$picture: MediaInput
|
|
$onlineAddress: String
|
|
$phoneAddress: String
|
|
$organizerActorId: ID
|
|
$attributedToId: ID
|
|
$category: String
|
|
$physicalAddress: AddressInput
|
|
$options: EventOptionsInput
|
|
$contacts: [Contact]
|
|
$metadata: EventMetadataInput
|
|
) {
|
|
updateEvent(
|
|
eventId: $id
|
|
title: $title
|
|
description: $description
|
|
beginsOn: $beginsOn
|
|
endsOn: $endsOn
|
|
status: $status
|
|
visibility: $visibility
|
|
joinOptions: $joinOptions
|
|
draft: $draft
|
|
tags: $tags
|
|
picture: $picture
|
|
onlineAddress: $onlineAddress
|
|
phoneAddress: $phoneAddress
|
|
organizerActorId: $organizerActorId
|
|
attributedToId: $attributedToId
|
|
category: $category
|
|
physicalAddress: $physicalAddress
|
|
options: $options
|
|
contacts: $contacts
|
|
metadata: $metadata
|
|
) {
|
|
...FullEvent
|
|
}
|
|
}
|
|
${FULL_EVENT_FRAGMENT}
|
|
`;
|
|
|
|
export const JOIN_EVENT = gql`
|
|
mutation JoinEvent(
|
|
$eventId: ID!
|
|
$actorId: ID!
|
|
$email: String
|
|
$message: String
|
|
$locale: String
|
|
) {
|
|
joinEvent(
|
|
eventId: $eventId
|
|
actorId: $actorId
|
|
email: $email
|
|
message: $message
|
|
locale: $locale
|
|
) {
|
|
...ParticipantQuery
|
|
}
|
|
}
|
|
${PARTICIPANT_QUERY_FRAGMENT}
|
|
`;
|
|
|
|
export const LEAVE_EVENT = gql`
|
|
mutation LeaveEvent($eventId: ID!, $actorId: ID!, $token: String) {
|
|
leaveEvent(eventId: $eventId, actorId: $actorId, token: $token) {
|
|
actor {
|
|
id
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
|
|
export const CONFIRM_PARTICIPATION = gql`
|
|
mutation ConfirmParticipation($token: String!) {
|
|
confirmParticipation(confirmationToken: $token) {
|
|
actor {
|
|
id
|
|
}
|
|
event {
|
|
id
|
|
uuid
|
|
joinOptions
|
|
}
|
|
role
|
|
}
|
|
}
|
|
`;
|
|
|
|
export const UPDATE_PARTICIPANT = gql`
|
|
mutation UpdateParticipant($id: ID!, $role: ParticipantRoleEnum!) {
|
|
updateParticipation(id: $id, role: $role) {
|
|
role
|
|
id
|
|
}
|
|
}
|
|
`;
|
|
|
|
export const DELETE_EVENT = gql`
|
|
mutation DeleteEvent($eventId: ID!) {
|
|
deleteEvent(eventId: $eventId) {
|
|
id
|
|
}
|
|
}
|
|
`;
|
|
|
|
export const PARTICIPANTS = gql`
|
|
query Participants($uuid: UUID!, $page: Int, $limit: Int, $roles: String) {
|
|
event(uuid: $uuid) {
|
|
id
|
|
uuid
|
|
title
|
|
participants(page: $page, limit: $limit, roles: $roles) {
|
|
...ParticipantsQuery
|
|
}
|
|
participantStats {
|
|
going
|
|
notApproved
|
|
rejected
|
|
participant
|
|
}
|
|
}
|
|
}
|
|
${PARTICIPANTS_QUERY_FRAGMENT}
|
|
`;
|
|
|
|
export const EVENT_PERSON_PARTICIPATION = gql`
|
|
query EventPersonParticipation($actorId: ID!, $eventId: ID!) {
|
|
person(id: $actorId) {
|
|
id
|
|
participations(eventId: $eventId) {
|
|
total
|
|
elements {
|
|
id
|
|
role
|
|
actor {
|
|
id
|
|
}
|
|
event {
|
|
id
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
|
|
export const EVENT_PERSON_PARTICIPATION_SUBSCRIPTION_CHANGED = gql`
|
|
subscription EventPersonParticipationSubscriptionChanged(
|
|
$actorId: ID!
|
|
$eventId: ID!
|
|
) {
|
|
eventPersonParticipationChanged(personId: $actorId) {
|
|
id
|
|
participations(eventId: $eventId) {
|
|
total
|
|
elements {
|
|
id
|
|
role
|
|
actor {
|
|
id
|
|
}
|
|
event {
|
|
id
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
|
|
export const FETCH_GROUP_EVENTS = gql`
|
|
query FetchGroupEvents(
|
|
$name: String!
|
|
$afterDateTime: DateTime
|
|
$beforeDateTime: DateTime
|
|
$organisedEventsPage: Int
|
|
$organisedEventslimit: Int
|
|
) {
|
|
group(preferredUsername: $name) {
|
|
id
|
|
preferredUsername
|
|
domain
|
|
name
|
|
organizedEvents(
|
|
afterDatetime: $afterDateTime
|
|
beforeDatetime: $beforeDateTime
|
|
page: $organisedEventsPage
|
|
limit: $organisedEventslimit
|
|
) {
|
|
elements {
|
|
id
|
|
uuid
|
|
title
|
|
beginsOn
|
|
draft
|
|
options {
|
|
maximumAttendeeCapacity
|
|
}
|
|
participantStats {
|
|
participant
|
|
notApproved
|
|
}
|
|
attributedTo {
|
|
id
|
|
preferredUsername
|
|
name
|
|
domain
|
|
}
|
|
organizerActor {
|
|
id
|
|
preferredUsername
|
|
name
|
|
domain
|
|
}
|
|
}
|
|
total
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
|
|
export const CLOSE_EVENTS = gql`
|
|
query CloseEvents($location: String, $radius: Float) {
|
|
searchEvents(location: $location, radius: $radius, page: 1, limit: 10) {
|
|
total
|
|
elements {
|
|
id
|
|
title
|
|
uuid
|
|
beginsOn
|
|
picture {
|
|
id
|
|
url
|
|
}
|
|
tags {
|
|
slug
|
|
title
|
|
}
|
|
__typename
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
|
|
export const EXPORT_EVENT_PARTICIPATIONS = gql`
|
|
mutation ExportEventParticipants(
|
|
$eventId: ID!
|
|
$format: ExportFormatEnum
|
|
$roles: [ParticipantRoleEnum]
|
|
) {
|
|
exportEventParticipants(eventId: $eventId, format: $format, roles: $roles)
|
|
}
|
|
`;
|