Sha256: 13314fb7f3fa31bd2a937b63b5a7b92fe1dd34e9615f25fed58b4ce72e027b7a

Contents?: true

Size: 856 Bytes

Versions: 4

Compression:

Stored size: 856 Bytes

Contents

module Arpa
  module Repositories
    module Actions
      class Finder
        include Arpa::Repositories::Base

        def by_name_and_resource(name, resource_id)
          record = repository_class.where(name: name, repository_resource_id: resource_id).first
          mapper_instance.map_to_entity(record) if record
        end

        def permissions(profile_ids)
         records = repository_class.joins(roles: :profiles)
           .where(repository_profiles: {id: profile_ids})

          actions = records.collect do |action|
            mapper_instance.map_to_entity(action)
          end

          Arpa::Entities::Permissions.new(actions)
        end

        def mapper_instance
          Arpa::DataMappers::ActionMapper.instance
        end

        def repository_class
          RepositoryAction
        end

      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
arpa-0.0.8 lib/arpa/repositories/actions/finder.rb
arpa-0.0.7 lib/arpa/repositories/actions/finder.rb
arpa-0.0.6 lib/arpa/repositories/actions/finder.rb
arpa-0.0.5 lib/arpa/repositories/actions/finder.rb