Sha256: 6a35fb594c0b5b8673b24dd947af2b8b43ac4f0e4a6afaf935dcffcf1e280852

Contents?: true

Size: 1.29 KB

Versions: 39

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

require 'graphql'
require_relative 'types'
require_relative 'resolvers'
require_relative 'mutation'
require_relative 'query'

GraphQL::Relay::BaseConnection.register_connection_implementation(
  ActiveRecord::Relation,
  GraphQL::Relay::RelationConnection,
)

module Osso
  module GraphQL
    class Schema < ::GraphQL::Schema
      use ::GraphQL::Pagination::Connections
      query Types::QueryType
      mutation Types::MutationType

      def self.id_from_object(object, _type_definition = nil, _query_ctx = nil)
        GraphQL::Schema::UniqueWithinType.encode(object.class.name, object.id)
      end

      def self.object_from_id(id, _query_ctx = nil)
        class_name, item_id = GraphQL::Schema::UniqueWithinType.decode(id)
        Object.const_get(class_name).find(item_id)
      end

      def self.resolve_type(_type, obj, _ctx)
        case obj
        when Osso::Models::EnterpriseAccount
          Types::EnterpriseAccount
        when Osso::Models::IdentityProvider
          Types::IdentityProvider
        else
          raise("Unexpected object: #{obj}")
        end
      end

      def self.unauthorized_object(error)
        raise ::GraphQL::ExecutionError, "An object of type #{error.type.graphql_name} was hidden due to permissions"
      end
    end
  end
end

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
osso-0.0.11 lib/osso/graphql/schema.rb
osso-0.0.10 lib/osso/graphql/schema.rb
osso-0.0.8 lib/osso/graphql/schema.rb
osso-0.0.7 lib/osso/graphql/schema.rb
osso-0.0.6 lib/osso/graphql/schema.rb
osso-0.0.6.alpha lib/osso/graphql/schema.rb
osso-0.0.5 lib/osso/graphql/schema.rb
osso-0.0.5.pre.lambda lib/osso/graphql/schema.rb
osso-0.0.5.pre.kappa lib/osso/graphql/schema.rb
osso-0.0.5.pre.iota lib/osso/graphql/schema.rb
osso-0.0.5.pre.theta lib/osso/graphql/schema.rb
osso-0.0.5.pre.eta lib/osso/graphql/schema.rb
osso-0.0.5.pre.zeta lib/osso/graphql/schema.rb
osso-0.0.5.pre.epsilon lib/osso/graphql/schema.rb
osso-0.0.5.pre.delta lib/osso/graphql/schema.rb
osso-0.0.5.pre.gamma lib/osso/graphql/schema.rb
osso-0.0.5.pre.beta lib/osso/graphql/schema.rb
osso-0.0.5.pre.alpha lib/osso/graphql/schema.rb
osso-0.0.4 lib/osso/graphql/schema.rb
osso-0.0.3.27 lib/osso/graphql/schema.rb