class Arpa::Services::Actions::Create::ActionCreator

Public Instance Methods

create(params) click to toggle source
# File lib/arpa/services/actions/create/action_creator.rb, line 12
def create(params)
  action = action_instance(params)

  action_found = finder_repo.by_name_and_resource(params[:name], params[:resource_id])
  return action_found if action_found

  validate_action(action)
  creator_repo.create(action)
end
create_many(params) click to toggle source
# File lib/arpa/services/actions/create/action_creator.rb, line 6
def create_many(params)
  params[:actions_names].collect do |action_name|
    create(action_params(params, action_name))
  end
end

Private Instance Methods

action_instance(params) click to toggle source
# File lib/arpa/services/actions/create/action_creator.rb, line 28
def action_instance(params)
  Arpa::Entities::Action.new(params)
end
action_params(params, action_name) click to toggle source
# File lib/arpa/services/actions/create/action_creator.rb, line 24
def action_params(params, action_name)
  { name: action_name, resource_id: params[:resource].id }
end
creator_repo() click to toggle source
# File lib/arpa/services/actions/create/action_creator.rb, line 41
def creator_repo
  @creator_repo ||= Arpa::Repositories::Actions::Creator.new
end
finder_repo() click to toggle source
# File lib/arpa/services/actions/create/action_creator.rb, line 37
def finder_repo
  @finder_repo ||= Arpa::Repositories::Actions::Finder.new
end
validate_action(action) click to toggle source
# File lib/arpa/services/actions/create/action_creator.rb, line 32
def validate_action(action)
  validator = Arpa::Validators::ActionValidator.new(action)
  raise Arpa::Exceptions::RecordInvalid.new(message: validator.errors.messages, errors: validator.errors) unless validator.valid?
end