Sha256: 542860db3cb0172491412ba65cd8bc250372678d62ba56b2264c7161b224a001

Contents?: true

Size: 1.47 KB

Versions: 53

Compression:

Stored size: 1.47 KB

Contents

# frozen_string_literal: true

module Decidim
  module Core
    module HasPublishableInputFilter
      def self.included(child_class)
        child_class.argument :published_before,
                             type: GraphQL::Types::String,
                             description: "List result published **before** (and **excluding**) this date. Expected format `YYYY-MM-DD`",
                             required: false,
                             prepare: lambda { |date, _ctx|
                               proc do |model_class|
                                 model_class.arel_table[:published_at].lt(date_to_iso8601(date, :publishedBefore))
                               end
                             }
        child_class.argument :published_since,
                             type: GraphQL::Types::String,
                             description: "List result published after (and **including**) this date. Expected format `YYYY-MM-DD`",
                             required: false,
                             prepare: lambda { |date, _ctx|
                               proc do |model_class|
                                 model_class.arel_table[:published_at].gteq(date_to_iso8601(date, :publishedBefore))
                               end
                             }
      end

      def self.date_to_iso8601(date, key)
        Date.iso8601(date)
      rescue StandardError
        raise GraphQL::ExecutionError, "Invalid date format for #{key}"
      end
    end
  end
end

Version data entries

53 entries across 53 versions & 1 rubygems

Version Path
decidim-core-0.30.0.rc1 lib/decidim/api/input_filters/has_publishable_input_filter.rb
decidim-core-0.29.2 lib/decidim/api/input_filters/has_publishable_input_filter.rb
decidim-core-0.28.5 lib/decidim/api/input_filters/has_publishable_input_filter.rb
decidim-core-0.29.1 lib/decidim/api/input_filters/has_publishable_input_filter.rb
decidim-core-0.28.4 lib/decidim/api/input_filters/has_publishable_input_filter.rb
decidim-core-0.27.9 lib/decidim/api/input_filters/has_publishable_input_filter.rb
decidim-core-0.29.0 lib/decidim/api/input_filters/has_publishable_input_filter.rb
decidim-core-0.28.3 lib/decidim/api/input_filters/has_publishable_input_filter.rb
decidim-core-0.27.8 lib/decidim/api/input_filters/has_publishable_input_filter.rb
decidim-core-0.29.0.rc4 lib/decidim/api/input_filters/has_publishable_input_filter.rb
decidim-core-0.29.0.rc3 lib/decidim/api/input_filters/has_publishable_input_filter.rb
decidim-core-0.29.0.rc2 lib/decidim/api/input_filters/has_publishable_input_filter.rb
decidim-core-0.29.0.rc1 lib/decidim/api/input_filters/has_publishable_input_filter.rb
decidim-core-0.28.2 lib/decidim/api/input_filters/has_publishable_input_filter.rb
decidim-core-0.27.7 lib/decidim/api/input_filters/has_publishable_input_filter.rb
decidim-core-0.28.1 lib/decidim/api/input_filters/has_publishable_input_filter.rb
decidim-core-0.27.6 lib/decidim/api/input_filters/has_publishable_input_filter.rb
decidim-core-0.26.10 lib/decidim/api/input_filters/has_publishable_input_filter.rb
decidim-core-0.26.9 lib/decidim/api/input_filters/has_publishable_input_filter.rb
decidim-core-0.28.0 lib/decidim/api/input_filters/has_publishable_input_filter.rb