Sha256: d622221691b84f6c58b8c4cad116867541e11bf3bf52c10d2f7586b5eb6c6768
Contents?: true
Size: 1.65 KB
Versions: 12
Compression:
Stored size: 1.65 KB
Contents
module Cellect module Server class API module Helpers def workflow @workflow ||= Workflow[params[:workflow_id]] end def four_oh_four error! 'Not Found', 404 end def bad_request error! 'Bad Request', 400 end def validate_param(hash, key, expect: nil) hash[key] && hash[key].is_a?(expect) end def valid_subject_id_update? validate_param update_params, :subject_id, expect: Fixnum end def valid_group_id_update? return true unless workflow.grouped? validate_param update_params, :group_id, expect: Fixnum end def valid_priority_update? return true unless workflow.prioritized? validate_param update_params, :priority, expect: Numeric end def selector_params { limit: param_to_int(:limit, default: 5), user_id: param_to_int(:user_id), group_id: param_to_int(:group_id) } end def update_params { subject_id: param_to_int(:subject_id), group_id: param_to_int(:group_id), priority: param_to_float(:priority) } end def param_to_int(param, default: nil) _param_to param, :to_i, default end def param_to_float(param, default: nil) _param_to param, :to_f, default end def _param_to(param, conversion, default) val = params[param] && params[param].send(conversion) params[param] && val && val > 0 ? val : default end end end end end
Version data entries
12 entries across 12 versions & 1 rubygems