167 lines
3.0 KiB
JavaScript

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 {
notifications(read: false, orderBy: updatedAt_desc) {
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
}
}
`
}