From b9cf7baa3e36c11370ff4075b11abdffb07ebc45 Mon Sep 17 00:00:00 2001 From: Jeremiah VALERIE Date: Sat, 31 Dec 2016 10:42:50 +0100 Subject: [PATCH] :memo: Add mutation without relay see #89 --- Resources/doc/definitions/index.md | 1 + Resources/doc/definitions/mutation.md | 37 ++++++++++++++ Resources/doc/definitions/relay/mutation.md | 53 +++++++++++---------- 3 files changed, 65 insertions(+), 26 deletions(-) create mode 100644 Resources/doc/definitions/mutation.md diff --git a/Resources/doc/definitions/index.md b/Resources/doc/definitions/index.md index 453a8706e..766f72cc6 100644 --- a/Resources/doc/definitions/index.md +++ b/Resources/doc/definitions/index.md @@ -7,6 +7,7 @@ Definitions Go further ---------- +* [Mutation](mutation.md) * [Relay](relay/index.md) * [Builders](builders/index.md) * [Expression language](expression-language.md) diff --git a/Resources/doc/definitions/mutation.md b/Resources/doc/definitions/mutation.md new file mode 100644 index 000000000..2b65bb8f0 --- /dev/null +++ b/Resources/doc/definitions/mutation.md @@ -0,0 +1,37 @@ +# Mutation + +Here an example without using relay: + +```yaml +Mutation: + type: object + config: + fields: + IntroduceShip: + type: IntroduceShipPayload! + resolve: "@=mutation('create_ship', [args['input']['shipName'], args['input']['factionId']])" + args: + #using input object type is optionnal, we use it here to be iso with relay mutation example. + input: + type: IntroduceShipInput! + +IntroduceShipPayload: + type: object + config: + fields: + ship: + type: "Ship" + faction: + type: "Faction" + +IntroduceShipInput: + type: input-object + config: + fields: + shipName: + type: "String!" + factionId: + type: "String!" +``` + +Here the same example [using relay mutation](relay/mutation.md). diff --git a/Resources/doc/definitions/relay/mutation.md b/Resources/doc/definitions/relay/mutation.md index 8835fcaab..e4075d06f 100644 --- a/Resources/doc/definitions/relay/mutation.md +++ b/Resources/doc/definitions/relay/mutation.md @@ -2,43 +2,44 @@ Mutation ======== ```yaml -RootMutation: +Mutation: type: object config: fields: - simpleMutation: + introduceShip: builder: Mutation builderConfig: - inputType: simpleMutationInput - payloadType: simpleMutationPayload - mutateAndGetPayload: "@={'result': 1}" - simpleMutationWithThunkFields: - builder: Mutation - builderConfig: - inputType: simpleMutationWithThunkFieldsInput - payloadType: simpleMutationWithThunkFieldsPayload - mutateAndGetPayload: "@={'result': value['inputData'] }" - -simpleMutationInput: - type: relay-mutation-input - config: - fields: [] + inputType: IntroduceShipInput + payloadType: IntroduceShipPayload + mutateAndGetPayload: "@=mutation('create_ship', [value['shipName'], value['factionId']])" -simpleMutationWithThunkFieldsInput: +# input IntroduceShipInput { +# clientMutationId: string! +# shipName: string! +# factionId: ID! +# } +IntroduceShipInput: type: relay-mutation-input config: fields: - inputData : { type: "Int" } - -simpleMutationPayload: - type: relay-mutation-payload - config: - fields: - result: { type: "Int" } + shipName: + type: "String!" + factionId: + type: "String!" -simpleMutationWithThunkFieldsPayload: +# type IntroduceShipPayload { +# clientMutationId: string! +# ship: Ship +# faction: Faction +# } +IntroduceShipPayload: type: relay-mutation-payload config: fields: - result: { type: "Int" } + ship: + type: "Ship" + faction: + type: "Faction" ``` + +Here the same example [without using relay mutation](../mutation.md).