Sha256: 63956e671a3efdfa6b88815aba0348ebf792d19a3d97e88fe76d8d217b26cf02

Contents?: true

Size: 1.05 KB

Versions: 1

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

module Osso
  module GraphQL
    module Mutations
      class AddRedirectUrisToOauthClient < BaseMutation
        null false

        argument :oauth_client_id, ID, required: true
        argument :uris, [String], required: true

        field :oauth_client, Types::OauthClient, null: true
        field :errors, [String], null: false

        def resolve(oauth_client_id:, uris:)
          oauth_client = Osso::Models::OauthClient.find(oauth_client_id)

          uris.each do |uri|
            oauth_client.redirect_uris.create(uri: uri)
          end

          unless oauth_client.primary_redirect_uri
            oauth_client.reload.redirect_uris.first.update(primary: true)
          end

          response_data(oauth_client: oauth_client.reload)
        rescue StandardError => e
          response_error(errors: e.message)
        end

        def ready?(*)
          return true if context[:scope] == :admin

          raise ::GraphQL::ExecutionError, 'Only admin users may mutate OauthClients'
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
osso-0.0.3.12 lib/osso/graphql/mutations/add_redirect_uris_to_oauth_client.rb