Sha256: cb23875d44dc82c1703651eee8469c253ca9cb1bd2b761377bf04664ed55e9c1

Contents?: true

Size: 1.03 KB

Versions: 4

Compression:

Stored size: 1.03 KB

Contents

# frozen_string_literal: true

module Decidim
  module ActionDelegator
    # Returns all PaperTrail versions of a consultation's delegated votes for auditing purposes.
    # It is intended to be used to easily fetch this data when a judge ask us so.
    class DelegatedVotesVersions
      def initialize(consultation)
        @consultation = consultation
      end

      def query
        statement = <<-SQL.squish
          SELECT *
          FROM versions
          INNER JOIN decidim_action_delegator_delegations
            ON decidim_action_delegator_delegations.id = versions.decidim_action_delegator_delegation_id
          INNER JOIN decidim_action_delegator_settings
            ON decidim_action_delegator_settings.id = decidim_action_delegator_delegations.decidim_action_delegator_setting_id
          WHERE decidim_action_delegator_settings.decidim_consultation_id = #{consultation.id}
        SQL

        ActiveRecord::Base.connection.execute(statement).to_a
      end

      private

      attr_reader :consultation
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
decidim-action_delegator-0.6.0 app/queries/decidim/action_delegator/delegated_votes_versions.rb
decidim-action_delegator-0.5.0 app/queries/decidim/action_delegator/delegated_votes_versions.rb
decidim-action_delegator-0.4.1 app/queries/decidim/action_delegator/delegated_votes_versions.rb
decidim-action_delegator-0.4 app/queries/decidim/action_delegator/delegated_votes_versions.rb