Sha256: a522e357d952875e3909a5d6a0cb45ff6b8015b13a96ba8e60e8e86c91c51044

Contents?: true

Size: 917 Bytes

Versions: 4

Compression:

Stored size: 917 Bytes

Contents

# frozen_string_literal: true

module Ibrain
  module Types
    class BaseApiField < GraphQL::Schema::Field
      argument_class ::Ibrain::Types::BaseArgument

      def initialize(*args, session_required: true, roles: nil, active_required: true, authorize_required: true, **kwargs, &block)
        super(*args, camelize: false, **kwargs, &block)

        extension(Ibrain::Extentions::SessionRequired, session_required: session_required) if session_required
        extension(Ibrain::Extentions::Roles, roles: roles) if roles

        if Ibrain::Config.is_require_activated_account && active_required
          extension(Ibrain::Extentions::ActiveRequired)
        end

        required_roles = Ibrain::Config.authorize_resource_enabled_with_roles || []
        if required_roles.size.positive? && authorize_required
          extension(Ibrain::Extentions::AuthorizeRequired)
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ibrain-core-0.5.15 app/graphql/ibrain/types/base_api_field.rb
ibrain-core-0.5.13 app/graphql/ibrain/types/base_api_field.rb
ibrain-core-0.5.12 app/graphql/ibrain/types/base_api_field.rb
ibrain-core-0.5.10 app/graphql/ibrain/types/base_api_field.rb