lib/graphiti_gql/schema.rb in graphiti_gql-0.1.0 vs lib/graphiti_gql/schema.rb in graphiti_gql-0.2.0
- old
+ new
@@ -1,41 +1,57 @@
module GraphitiGql
class Schema
+ class PreciseDatetime < GraphQL::Types::ISO8601DateTime
+ self.time_precision = 6
+ end
+
GQL_TYPE_MAP = {
integer_id: String,
string: String,
uuid: String,
integer: Integer,
+ big_integer: GraphQL::Types::BigInt,
float: Float,
boolean: GraphQL::Schema::Member::GraphQLTypeNames::Boolean,
date: GraphQL::Types::ISO8601Date,
datetime: GraphQL::Types::ISO8601DateTime,
+ precise_datetime: PreciseDatetime,
hash: GraphQL::Types::JSON,
array: [GraphQL::Types::JSON],
array_of_strings: [String],
array_of_integers: [Integer],
array_of_floats: [Float],
array_of_dates: [GraphQL::Types::ISO8601Date],
- array_of_datetimes: [GraphQL::Types::ISO8601DateTime]
+ array_of_datetimes: [GraphQL::Types::ISO8601DateTime],
+ array_of_precise_datetimes: [PreciseDatetime]
}
class RelayConnectionExtension < GraphQL::Schema::Field::ConnectionExtension
def resolve(object:, arguments:, context:)
next_args = arguments.dup
yield(object, next_args, arguments)
end
end
+ def self.registry
+ Registry.instance
+ end
+
+ def self.print
+ GraphQL::Schema::Printer.print_schema(GraphitiGql.schema)
+ end
+
def initialize(resources)
@resources = resources
end
def generate
klass = Class.new(::GraphQL::Schema)
klass.query(Query.new(@resources).build)
klass.use(GraphQL::Batch)
klass.connections.add(ResponseShim, Connection)
klass.connections.add(Array, ToManyConnection)
+ klass.orphan_types [GraphQL::Types::JSON]
klass
end
end
end