import gql from "graphql-tag"; import { ACTOR_FRAGMENT } from "./actor"; import { ADDRESS_FRAGMENT } from "./address"; import { EVENT_OPTIONS_FRAGMENT } from "./event_options"; import { TAG_FRAGMENT } from "./tags"; export const GROUP_RESULT_FRAGMENT = gql` fragment GroupResultFragment on GroupSearchResult { id avatar { id url } type preferredUsername name domain summary url } `; export const SEARCH_EVENTS_AND_GROUPS = gql` query SearchEventsAndGroups( $location: String $radius: Float $tags: String $term: String $type: EventType $categoryOneOf: [String] $statusOneOf: [EventStatus] $languageOneOf: [String] $searchTarget: SearchTarget $beginsOn: DateTime $endsOn: DateTime $bbox: String $zoom: Int $eventPage: Int $groupPage: Int $limit: Int ) { searchEvents( location: $location radius: $radius tags: $tags term: $term type: $type categoryOneOf: $categoryOneOf statusOneOf: $statusOneOf languageOneOf: $languageOneOf searchTarget: $searchTarget beginsOn: $beginsOn endsOn: $endsOn bbox: $bbox zoom: $zoom page: $eventPage limit: $limit ) { total elements { id title uuid beginsOn picture { id url } url status tags { ...TagFragment } physicalAddress { ...AdressFragment } organizerActor { ...ActorFragment } attributedTo { ...ActorFragment } options { isOnline } __typename } } searchGroups( term: $term location: $location radius: $radius languageOneOf: $languageOneOf searchTarget: $searchTarget bbox: $bbox zoom: $zoom page: $groupPage limit: $limit ) { total elements { __typename id avatar { id url } type preferredUsername name domain summary url ...GroupResultFragment banner { id url } followersCount membersCount physicalAddress { ...AdressFragment } } } } ${TAG_FRAGMENT} ${ADDRESS_FRAGMENT} ${GROUP_RESULT_FRAGMENT} ${ACTOR_FRAGMENT} `; export const SEARCH_EVENTS = gql` query SearchEvents( $location: String $radius: Float $tags: String $term: String $type: EventType $category: String $beginsOn: DateTime $endsOn: DateTime $eventPage: Int $limit: Int ) { searchEvents( location: $location radius: $radius tags: $tags term: $term type: $type category: $category beginsOn: $beginsOn endsOn: $endsOn page: $eventPage limit: $limit ) { total elements { id title uuid beginsOn picture { id url } status tags { ...TagFragment } physicalAddress { ...AdressFragment } organizerActor { ...ActorFragment } attributedTo { ...ActorFragment } options { ...EventOptions } __typename } } } ${EVENT_OPTIONS_FRAGMENT} ${TAG_FRAGMENT} ${ADDRESS_FRAGMENT} ${ACTOR_FRAGMENT} `; export const SEARCH_GROUPS = gql` query SearchGroups( $location: String $radius: Float $term: String $groupPage: Int $limit: Int ) { searchGroups( term: $term location: $location radius: $radius page: $groupPage limit: $limit ) { total elements { ...ActorFragment banner { id url } membersCount followersCount physicalAddress { ...AdressFragment } } } } ${ADDRESS_FRAGMENT} ${ACTOR_FRAGMENT} `; export const SEARCH_PERSONS = gql` query SearchPersons($searchText: String!, $page: Int, $limit: Int) { searchPersons(term: $searchText, page: $page, limit: $limit) { total elements { ...ActorFragment } } } ${ACTOR_FRAGMENT} `; export const INTERACT = gql` query Interact($uri: String!) { interact(uri: $uri) { ... on Event { id title uuid beginsOn status picture { id url } tags { slug title } __typename } ... on Group { ...ActorFragment } } } ${ACTOR_FRAGMENT} `;