import gql from 'graphql-tag' import { graphql, compose } from 'react-apollo' const GetProcessDefinition = gql` query GetProcessDefinition() { getProcessDefinition() { } }` const GetProcessDefinition = gql` query GetProcessDefinition($processDefinitionName: String) { getProcessDefinition(processDefinitionName: $processDefinitionName) { process_definition_name paused process_description schedule task_definitions { task_definition_name dependencies { task_definition_name success_required } executable max_attempts max_runtime_seconds backoff_base_seconds backoff_exponent require_explicit_success } overlap_action notifications } }` const PutProcessDefinition = gql` mutation PutProcessDefinition($processDefinition: ProcessDefinitionInput! , $processDefinitionName: String) { putProcessDefinition(processDefinition: $processDefinition, processDefinitionName: $processDefinitionName) { process_definition_name paused process_description schedule task_definitions { task_definition_name dependencies { task_definition_name success_required } executable max_attempts max_runtime_seconds backoff_base_seconds backoff_exponent require_explicit_success } overlap_action notifications } }` const DeleteProcessDefinition = gql` mutation DeleteProcessDefinition($processDefinitionName: String) { deleteProcessDefinition(processDefinitionName: $processDefinitionName) { } }` const PostProcessDefinition = gql` mutation PostProcessDefinition($processDefinitionName: String, $taskDefinitionName: String) { postProcessDefinition(processDefinitionName: $processDefinitionName, taskDefinitionName: $taskDefinitionName) { } }` const PostProcessDefinition = gql` mutation PostProcessDefinition($processDefinitionName: String) { postProcessDefinition(processDefinitionName: $processDefinitionName) { } }` const PostProcessDefinition = gql` mutation PostProcessDefinition($processDefinitionName: String) { postProcessDefinition(processDefinitionName: $processDefinitionName) { } }` const withAppSyncProcessDefinition = compose( graphql(GetProcessDefinition, { name: 'getProcessDefinition', options: (ownProps) => ({ fetchPolicy: 'cache-and-network', variables: { } }), props: (props) => { if (props.getProcessDefinition.error) console.log(props.getProcessDefinition.error) return props } }), graphql(PutProcessDefinition, { props: (props) => ({ putProcessDefinition: ownProps => props.mutate({ variables: { processDefinition: ownProps.processDefinition, processDefinitionName: ownProps.processDefinitionName }, optimisticResponse: () => ({ putProcessDefinition: { ...ownProps.processDefinition, __typename: 'ProcessDefinition', version: 1 } }) }) }) }), graphql(DeleteProcessDefinition, { props: (props) => ({ deleteProcessDefinition: ownProps => props.mutate({ variables: { processDefinitionName: ownProps.processDefinitionName }, optimisticResponse: () => ({ deleteProcessDefinition: { ...ownProps, __typename: 'ProcessDefinition', version: 1 } }) }) }) }) ) export { GetProcessDefinition, GetProcessDefinition, PutProcessDefinition, DeleteProcessDefinition, PostProcessDefinition, PostProcessDefinition, PostProcessDefinition, withAppSyncProcessDefinition }