import gql from 'graphql-tag' import { graphql, compose } from 'react-apollo' const PostTransfer = gql` mutation PostTransfer($transferid: Int, $senderid: String, $amount: Float, $currency: String, $refAccountidReceiver: Int, $refAccountidSender: Int) { postTransfer(transferid: $transferid, senderid: $senderid, amount: $amount, currency: $currency, refAccountidReceiver: $refAccountidReceiver, refAccountidSender: $refAccountidSender) { transferid senderid amount ref_accountid_receiver ref_accountid_sender currency } }` const PutTransfer = gql` mutation PutTransfer($transferid: Int, $senderid: String, $amount: Float, $currency: String, $refAccountidReceiver: Int, $refAccountidSender: Int) { putTransfer(transferid: $transferid, senderid: $senderid, amount: $amount, currency: $currency, refAccountidReceiver: $refAccountidReceiver, refAccountidSender: $refAccountidSender) { transferid senderid amount ref_accountid_receiver ref_accountid_sender currency } }` const DeleteTransfer = gql` mutation DeleteTransfer($transferid: Int) { deleteTransfer(transferid: $transferid) { } }` const GetTransfer = gql` query GetTransfer($transferid: Int, $senderid: String, $amount: Float, $currency: String, $refAccountidReceiver: Int, $refAccountidSender: Int) { getTransfer(transferid: $transferid, senderid: $senderid, amount: $amount, currency: $currency, refAccountidReceiver: $refAccountidReceiver, refAccountidSender: $refAccountidSender) { accountid ownerid total_amount currency sold debit } }` const GetTransfer = gql` query GetTransfer($transferid: Int, $senderid: String, $amount: Float, $currency: String, $refAccountidReceiver: Int, $refAccountidSender: Int) { getTransfer(transferid: $transferid, senderid: $senderid, amount: $amount, currency: $currency, refAccountidReceiver: $refAccountidReceiver, refAccountidSender: $refAccountidSender) { } }` const withAppSyncTransfer = compose( graphql(GetTransfer, { name: 'getTransfer', options: (ownProps) => ({ fetchPolicy: 'cache-and-network', variables: { transferid: ownProps.transferid, senderid: ownProps.senderid, amount: ownProps.amount, currency: ownProps.currency, refAccountidReceiver: ownProps.refAccountidReceiver, refAccountidSender: ownProps.refAccountidSender } }), props: (props) => { if (props.getTransfer.error) console.log(props.getTransfer.error) return props } }), graphql(PutTransfer, { props: (props) => ({ putTransfer: ownProps => props.mutate({ variables: { transferid: ownProps.transferid, senderid: ownProps.senderid, amount: ownProps.amount, currency: ownProps.currency, refAccountidReceiver: ownProps.refAccountidReceiver, refAccountidSender: ownProps.refAccountidSender }, optimisticResponse: () => ({ putTransfer: { ...ownProps.transfer, __typename: 'Transfer', version: 1 } }) }) }) }), graphql(DeleteTransfer, { props: (props) => ({ deleteTransfer: ownProps => props.mutate({ variables: { transferid: ownProps.transferid }, optimisticResponse: () => ({ deleteTransfer: { ...ownProps, __typename: 'Transfer', version: 1 } }) }) }) }) ) export { PostTransfer, PutTransfer, DeleteTransfer, GetTransfer, GetTransfer, withAppSyncTransfer }