1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- class Gql::ZammadSchema < GraphQL::Schema
- mutation(Gql::EntryPoints::Mutations)
- query(Gql::EntryPoints::Queries)
-
-
- use GraphQL::Batch
-
-
-
- def self.resolve_type(_abstract_type, obj, _ctx)
- "Gql::Types::#{obj.class.name}Type".constantize
- rescue
- raise(GraphQL::RequiredImplementationMissingError)
- end
-
-
- def self.id_from_object(object, _type_definition, _query_ctx)
- object.to_gid.to_param
- end
-
- def self.object_from_id(id, _query_ctx)
- GlobalID.find(id)
- end
- def self.unauthorized_object(error)
- raise Exceptions::Forbidden, error.message
- end
- def self.unauthorized_field(error)
- raise Exceptions::Forbidden, error.message
- end
-
- rescue_from(StandardError) do |err, _obj, _args, _ctx, _field|
-
- [ArgumentError, IndexError, NameError, RangeError, RegexpError, SystemCallError, ThreadError, TypeError, ZeroDivisionError].each do |klass|
- raise err if err.is_a? klass
- end
- extensions = {
- type: err.class.name,
- }
- if Rails.env.development? || Rails.env.test?
- extensions[:backtrace] = Rails.backtrace_cleaner.clean(err.backtrace)
- end
- # We need to throw an ExecutionError, all others would cause the GraphQL processing to die.
- raise GraphQL::ExecutionError.new(err.message, extensions: extensions)
- end
- end
|