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