import gql from "graphql-tag"; import { ACTOR_FRAGMENT } from "./actor"; export const CREATE_USER = gql` 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 { ...ActorFragment } } } } ${ACTOR_FRAGMENT} `; export const LOGGED_USER = gql` query { loggedUser { id email defaultActor { ...ActorFragment } provider } } ${ACTOR_FRAGMENT} `; export const CHANGE_PASSWORD = gql` mutation ChangePassword($oldPassword: String!, $newPassword: String!) { changePassword(oldPassword: $oldPassword, newPassword: $newPassword) { id } } `; export const CHANGE_EMAIL = gql` mutation ChangeEmail($email: String!, $password: String!) { changeEmail(email: $email, password: $password) { id } } `; export const VALIDATE_EMAIL = gql` mutation ValidateEmail($token: String!) { validateEmail(token: $token) { id } } `; export const DELETE_ACCOUNT = gql` mutation DeleteAccount($password: String, $userId: ID) { deleteAccount(password: $password, userId: $userId) { id } } `; export const SUSPEND_USER = gql` mutation SuspendUser($userId: ID) { deleteAccount(userId: $userId) { id } } `; export const CURRENT_USER_CLIENT = gql` query CurrentUserClient { 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 } `; export const USER_SETTINGS_FRAGMENT = gql` fragment UserSettingFragment on UserSettings { timezone notificationOnDay notificationEachWeek notificationBeforeEvent notificationPendingParticipation notificationPendingMembership groupNotifications location { range geohash name } } `; export const USER_SETTINGS = gql` query UserSetting { loggedUser { id locale settings { ...UserSettingFragment } } } ${USER_SETTINGS_FRAGMENT} `; export const LOGGED_USER_TIMEZONE = gql` query LoggedUserTimezone { loggedUser { id settings { timezone } } } `; export const SET_USER_SETTINGS = gql` mutation SetUserSettings( $timezone: String $notificationOnDay: Boolean $notificationEachWeek: Boolean $notificationBeforeEvent: Boolean $notificationPendingParticipation: NotificationPendingEnum $notificationPendingMembership: NotificationPendingEnum $groupNotifications: NotificationPendingEnum $location: LocationInput ) { setUserSettings( timezone: $timezone notificationOnDay: $notificationOnDay notificationEachWeek: $notificationEachWeek notificationBeforeEvent: $notificationBeforeEvent notificationPendingParticipation: $notificationPendingParticipation notificationPendingMembership: $notificationPendingMembership groupNotifications: $groupNotifications location: $location ) { ...UserSettingFragment } } ${USER_SETTINGS_FRAGMENT} `; export const USER_NOTIFICATIONS = gql` query UserNotifications { loggedUser { id locale settings { ...UserSettingFragment } activitySettings { key method enabled } } } ${USER_SETTINGS_FRAGMENT} `; export const UPDATE_ACTIVITY_SETTING = gql` mutation UpdateActivitySetting( $key: String! $method: String! $enabled: Boolean! ) { updateActivitySetting(key: $key, method: $method, enabled: $enabled) { key method enabled } } `; export const LIST_USERS = gql` query ListUsers( $email: String $currentSignInIp: String $page: Int $limit: Int $sort: SortableUserField $direction: SortDirection ) { users( email: $email currentSignInIp: $currentSignInIp page: $page limit: $limit sort: $sort direction: $direction ) { total elements { id email locale confirmedAt currentSignInIp currentSignInAt disabled actors { ...ActorFragment } settings { timezone } } } } ${ACTOR_FRAGMENT} `; export const GET_USER = gql` query GetUser($id: ID!) { user(id: $id) { id email confirmedAt confirmationSentAt lastSignInAt lastSignInIp currentSignInIp currentSignInAt locale disabled mediaSize defaultActor { id } actors { ...ActorFragment } participations { total } role } } ${ACTOR_FRAGMENT} `; export const UPDATE_USER_LOCALE = gql` mutation UpdateUserLocale($locale: String!) { updateLocale(locale: $locale) { id locale } } `; export const FEED_TOKENS_LOGGED_USER = gql` query { loggedUser { id feedTokens { token actor { id } } } } `;