import gql from 'graphql-tag' import { graphql, compose } from 'react-apollo' const GetToken = gql` query GetToken($userGuid: String, $guid: String, $limit: Int, $offset: Int) { getToken(userGuid: $userGuid, guid: $guid, limit: $limit, offset: $offset) { } }` const GetToken = gql` query GetToken($guid: String) { getToken(guid: $guid) { token } }` const PostToken = gql` mutation PostToken($tokenForm: TokenFormInput! ) { postToken(tokenForm: $tokenForm) { guid user { guid email nickname name audit } masked_token description audit } }` const DeleteToken = gql` mutation DeleteToken($guid: String) { deleteToken(guid: $guid) { } }` const withAppSyncToken = compose( graphql(GetToken, { name: 'getToken', options: (ownProps) => ({ fetchPolicy: 'cache-and-network', variables: { userGuid: ownProps.userGuid, guid: ownProps.guid, limit: ownProps.limit, offset: ownProps.offset } }), props: (props) => { if (props.getToken.error) console.log(props.getToken.error) return props } }) graphql(DeleteToken, { props: (props) => ({ deleteToken: ownProps => props.mutate({ variables: { guid: ownProps.guid }, optimisticResponse: () => ({ deleteToken: { ...ownProps, __typename: 'Token', version: 1 } }) }) }) }) ) export { GetToken, GetToken, PostToken, DeleteToken, withAppSyncToken }