Sha256: 0cac497a5cefa91328926cc2d02d0b2f72b8e6ccc8ac72287eb6e24f91b1812a

Contents?: true

Size: 914 Bytes

Versions: 9

Compression:

Stored size: 914 Bytes

Contents

module Interaction
  module QueryInteraction
    attr_reader :errors

    private

    def unpack_params
      @tags = @params[:tags] || []
      @title = @params[:title]
      @user = @params[:user]
      @result = fetch_result
      @roles = build_roles

      return unless @params[:version]
      @parameters = @params[:version][:parameters] || []
      @comment = @params[:version][:comment]
      @body = @params[:version][:body]
    end

    def build_roles
      roles = [@user.role]
      roles.concat(@params[:roles]) if @params[:roles]
      superior_roles = roles.map { |role| ROLE_HIERARCHY[role] }
      roles.concat(superior_roles).flatten.uniq.delete_if { |x| !x.present? }
    end

    def merge_query_errors
      @errors.concat(@query.errors.full_messages) if @query.errors.any?
    end

    def fetch_result
      Result.find_by_id(@params[:result_id]) if @params[:result_id]
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
aleph_analytics-0.2.0 lib/interaction/query_interaction.rb
aleph_analytics-0.1.0 lib/interaction/query_interaction.rb
aleph_analytics-0.0.6 lib/interaction/query_interaction.rb
aleph_analytics-0.0.5 lib/interaction/query_interaction.rb
aleph_analytics-0.0.4 lib/interaction/query_interaction.rb
aleph_analytics-0.0.3 lib/interaction/query_interaction.rb
aleph_analytics-0.0.2 lib/interaction/query_interaction.rb
aleph_analytics-0.0.1.alpha lib/interaction/query_interaction.rb
aleph_analytics-0.0.0.alpha lib/interaction/query_interaction.rb