services:
  builderius_form.type_config.root_type:
    class: Builderius\Bundle\GraphQLBundle\Config\GraphQLObjectRootTypeConfigDecorator
    decorates: builderius_graphql.type_config.root_type
    arguments:
      - '@builderius_form.type_config.root_type.inner'
    calls:
      - [ 'addField', [ '@builderius_graphql.type_config.field.form_submission_url' ] ]
      - [ 'addField', [ '@builderius_graphql.type_config.field.form_nonce' ] ]

  builderius_graphql.type_config.field.form_submission_url:
    class: Builderius\Bundle\GraphQLBundle\Config\GraphQLFieldConfig
    lazy: true
    arguments:
      - name: 'form_submission_url'
        type: 'String'
    calls:
      - ['addArgument', ['@builderius_graphql.type_config.field.argument.form']]

  builderius_graphql.type_config.field.form_nonce:
    class: Builderius\Bundle\GraphQLBundle\Config\GraphQLFieldConfig
    lazy: true
    arguments:
      - name: 'form_nonce'
        type: 'String'
    calls:
      - ['addArgument', ['@builderius_graphql.type_config.field.argument.form']]

  builderius_graphql.type_config.field.argument.form:
    class: Builderius\Bundle\GraphQLBundle\Config\GraphQLFieldArgumentConfig
    arguments:
      - name: 'form'
        type: 'String!'

  builderius_graphql.field_resolver.all.form_submission_url:
    class: Builderius\Bundle\FormBundle\GraphQL\Resolver\FormSubmissionUrlResolver
    arguments:
      - '@builderius_form.forms_provider.composite'
    tags:
      - { name: builderius_graphql_field_resolver }

  builderius_graphql.field_resolver.all.form_nonce:
    class: Builderius\Bundle\FormBundle\GraphQL\Resolver\FormNonceResolver
    arguments:
      - '@builderius_form.forms_provider.composite'
    tags:
      - { name: builderius_graphql_field_resolver }
