import gql from 'graphql-tag' import { userFragment, postFragment, commentFragment } from './Fragments' export default i18n => { const lang = i18n.locale().toUpperCase() return gql` ${userFragment(lang)} query User($id: ID!) { User(id: $id) { ...user about locationName createdAt badgesCount followingCount following(first: 7) { ...user } followedByCount followedByCurrentUser isBlocked followedBy(first: 7) { ...user } socialMedia { id url } } } ` } export const minimisedUserQuery = () => { return gql` query { User(orderBy: slug_asc) { id slug name avatar } } ` } export const notificationQuery = i18n => { const lang = i18n.locale().toUpperCase() return gql` ${commentFragment(lang)} ${postFragment(lang)} query($read: Boolean, $orderBy: NotificationOrdering, $first: Int, $offset: Int) { notifications(read: $read, orderBy: $orderBy, first: $first, offset: $offset) { read reason createdAt from { __typename ... on Post { ...post } ... on Comment { ...comment post { ...post } } } } } ` } export const markAsReadMutation = i18n => { const lang = i18n.locale().toUpperCase() return gql` ${commentFragment(lang)} ${postFragment(lang)} mutation($id: ID!) { markAsRead(id: $id) { read reason createdAt from { __typename ... on Post { ...post } ... on Comment { ...comment post { ...post } } } } } ` } export const followUserMutation = i18n => { const lang = i18n.locale().toUpperCase() return gql` ${userFragment(lang)} mutation($id: ID!) { followUser(id: $id) { name followedByCount followedByCurrentUser followedBy(first: 7) { ...user } } } ` } export const unfollowUserMutation = i18n => { const lang = i18n.locale().toUpperCase() return gql` ${userFragment(lang)} mutation($id: ID!) { unfollowUser(id: $id) { name followedByCount followedByCurrentUser followedBy(first: 7) { ...user } } } ` } export const allowEmbedIframesMutation = () => { return gql` mutation($id: ID!, $allowEmbedIframes: Boolean) { UpdateUser(id: $id, allowEmbedIframes: $allowEmbedIframes) { id allowEmbedIframes } } ` } export const checkSlugAvailableQuery = gql` query($slug: String!) { User(slug: $slug) { slug } } ` export const localeMutation = () => { return gql` mutation($id: ID!, $locale: String) { UpdateUser(id: $id, locale: $locale) { id locale } } ` }