debian-mirror-gitlab/app/graphql/types/range_input_type.rb
2021-04-17 20:07:23 +05:30

28 lines
665 B
Ruby

# frozen_string_literal: true
module Types
class RangeInputType < BaseInputObject
def self.[](type, closed = true)
@subtypes ||= {}
@subtypes[[type, closed]] ||= Class.new(self) do
argument :start, type,
required: closed,
description: 'The start of the range.'
argument :end, type,
required: closed,
description: 'The end of the range.'
end
end
def prepare
if self[:end] && self[:start] && self[:end] < self[:start]
raise ::Gitlab::Graphql::Errors::ArgumentError, 'start must be before end'
end
to_h
end
end
end