Sha256: 05775e2ec6b62b19651f95d5f4fa9e188dc4832142803de7a1de98bc5c5b5537

Contents?: true

Size: 771 Bytes

Versions: 10

Compression:

Stored size: 771 Bytes

Contents

module Arpa
  module Services
    module Roles
      module Create
        class RoleCreator

          def create(params)
            role = role_instance(params)
            validate_role(role)
            creator_repo.create(role)
          end

          private

          def role_instance(params)
            Arpa::Entities::Role.new(params)
          end

          def validate_role(role)
            validator = Arpa::Validators::RoleValidator.new(role)
            raise Arpa::Exceptions::RecordInvalid.new(message: validator.errors.messages, errors: validator.errors) unless validator.valid?
          end

          def creator_repo
            @creator_repo ||= Arpa::Repositories::Roles::Creator.new
          end

        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
arpa-0.2.0 lib/arpa/services/roles/create/role_creator.rb
arpa-0.1.0 lib/arpa/services/roles/create/role_creator.rb
arpa-0.0.9 lib/arpa/services/roles/create/role_creator.rb
arpa-0.0.8 lib/arpa/services/roles/create/role_creator.rb
arpa-0.0.7 lib/arpa/services/roles/create/role_creator.rb
arpa-0.0.6 lib/arpa/services/roles/create/role_creator.rb
arpa-0.0.5 lib/arpa/services/roles/create/role_creator.rb
arpa-0.0.4 lib/arpa/services/roles/create/role_creator.rb
arpa-0.0.3 lib/arpa/services/roles/create/role_creator.rb
arpa-0.0.2 lib/arpa/services/roles/create/role_creator.rb