import gql from 'graphql-tag' import { graphql, compose } from 'react-apollo' const GetMembership = gql` query GetMembership($orgGuid: String, $orgKey: String, $userGuid: String, $role: String, $limit: Int, $offset: Int) { getMembership(orgGuid: $orgGuid, orgKey: $orgKey, userGuid: $userGuid, role: $role, limit: $limit, offset: $offset) { } }` const GetMembership = gql` query GetMembership($guid: String) { getMembership(guid: $guid) { guid user { guid email nickname name audit } organization { guid key name namespace visibility domains { name } audit } role audit } }` const DeleteMembership = gql` mutation DeleteMembership($guid: String) { deleteMembership(guid: $guid) { } }` const withAppSyncMembership = compose( graphql(GetMembership, { name: 'getMembership', options: (ownProps) => ({ fetchPolicy: 'cache-and-network', variables: { orgGuid: ownProps.orgGuid, orgKey: ownProps.orgKey, userGuid: ownProps.userGuid, role: ownProps.role, limit: ownProps.limit, offset: ownProps.offset } }), props: (props) => { if (props.getMembership.error) console.log(props.getMembership.error) return props } }) graphql(DeleteMembership, { props: (props) => ({ deleteMembership: ownProps => props.mutate({ variables: { guid: ownProps.guid }, optimisticResponse: () => ({ deleteMembership: { ...ownProps, __typename: 'Membership', version: 1 } }) }) }) }) ) export { GetMembership, GetMembership, DeleteMembership, withAppSyncMembership }