diff options
Diffstat (limited to 'app/graphql/resolvers/concerns/time_frame_arguments.rb')
-rw-r--r-- | app/graphql/resolvers/concerns/time_frame_arguments.rb | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/app/graphql/resolvers/concerns/time_frame_arguments.rb b/app/graphql/resolvers/concerns/time_frame_arguments.rb index ef333dd05a5..94bfe6f7f9f 100644 --- a/app/graphql/resolvers/concerns/time_frame_arguments.rb +++ b/app/graphql/resolvers/concerns/time_frame_arguments.rb @@ -3,21 +3,33 @@ module TimeFrameArguments extend ActiveSupport::Concern + OVERLAPPING_TIMEFRAME_DESC = 'List items overlapping a time frame defined by startDate..endDate (if one date is provided, both must be present)' + included do argument :start_date, Types::TimeType, required: false, - description: 'List items within a time frame where items.start_date is between startDate and endDate parameters (endDate parameter must be present)' + description: OVERLAPPING_TIMEFRAME_DESC, + deprecated: { reason: 'Use timeframe.start', milestone: '13.5' } argument :end_date, Types::TimeType, required: false, - description: 'List items within a time frame where items.end_date is between startDate and endDate parameters (startDate parameter must be present)' + description: OVERLAPPING_TIMEFRAME_DESC, + deprecated: { reason: 'Use timeframe.end', milestone: '13.5' } + + argument :timeframe, Types::TimeframeInputType, + required: false, + description: 'List items overlapping the given timeframe' end + # TODO: remove when the start_date and end_date arguments are removed def validate_timeframe_params!(args) - return unless args[:start_date].present? || args[:end_date].present? + return unless %i[start_date end_date timeframe].any? { |k| args[k].present? } + return if args[:timeframe] && %i[start_date end_date].all? { |k| args[k].nil? } error_message = - if args[:start_date].nil? || args[:end_date].nil? + if args[:timeframe].present? + "startDate and endDate are deprecated in favor of timeframe. Please use only timeframe." + elsif args[:start_date].nil? || args[:end_date].nil? "Both startDate and endDate must be present." elsif args[:start_date] > args[:end_date] "startDate is after endDate" |