Sha256: f44cde286f2a2d9ddb2159ee0089ea813068bbb435616c75cebb20038facc56c

Contents?: true

Size: 1.44 KB

Versions: 10

Compression:

Stored size: 1.44 KB

Contents

# frozen_string_literal: true

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

10 entries across 10 versions & 1 rubygems

Version Path
decidim-core-0.23.6 app/types/decidim/core/has_publishable_input_filter.rb
decidim-core-0.23.5 app/types/decidim/core/has_publishable_input_filter.rb
decidim-core-0.23.4 app/types/decidim/core/has_publishable_input_filter.rb
decidim-core-0.23.3 app/types/decidim/core/has_publishable_input_filter.rb
decidim-core-0.23.2 app/types/decidim/core/has_publishable_input_filter.rb
decidim-core-0.23.1 app/types/decidim/core/has_publishable_input_filter.rb
decidim-core-0.23.1.rc1 app/types/decidim/core/has_publishable_input_filter.rb
decidim-core-0.23.0 app/types/decidim/core/has_publishable_input_filter.rb
decidim-core-0.22.0 app/types/decidim/core/has_publishable_input_filter.rb
decidim-core-0.21.0 app/types/decidim/core/has_publishable_input_filter.rb