modules-pack
Version:
JavaScript Modules for Modern Frontend & Backend Projects
50 lines (44 loc) • 1.28 kB
JavaScript
import { gqlRequestDecorator, updateCacheList } from 'modules-pack/graphql'
import { LOGOUT } from 'utils-pack'
import { USER, USERS } from './constants'
import { user as mutation } from './mutations'
import { logout, user as query, usersSummary } from './queries'
/**
* API REQUESTS ================================================================
* GraphQL queries and mutations, or REST API request Decorators
* =============================================================================
*/
/**
* Use Logout Query GraphQL Decorator
*/
export const withUserLogout = gqlRequestDecorator({
field: LOGOUT,
query: logout,
skip: false,
})
/**
* Last Updated Users Query GraphQL Decorator
*/
export const withUsersSummary = gqlRequestDecorator({
field: USERS,
query: usersSummary,
skip: false,
})
/**
* Query User without caching and checking for error (using route or prop Id) GraphQL Decorator
*/
export const withUserFetch = gqlRequestDecorator({
field: USER,
query,
fetchPolicy: 'network-only',
errorPolicy: 'ignore',
})
/**
* Query and Mutation (using route or prop Id) GraphQL Decorator
*/
export const withUserEditRoute = gqlRequestDecorator({
field: USER,
query,
mutation,
update: updateCacheList(withUsersSummary, USER),
})