51 lines
1.1 KiB
Ruby
51 lines
1.1 KiB
Ruby
module Travis
|
|
module Api
|
|
module V2
|
|
module Http
|
|
class Permissions
|
|
attr_reader :permissions, :options
|
|
|
|
def initialize(permissions, options = {})
|
|
@permissions = permissions
|
|
@options = options
|
|
end
|
|
|
|
def data
|
|
{
|
|
'permissions' => repo_ids,
|
|
'admin' => admin_ids,
|
|
'pull' => pull_ids,
|
|
'push' => push_ids
|
|
}
|
|
end
|
|
|
|
private
|
|
def filtered_ids(perm = nil)
|
|
if perm
|
|
permissions.find_all { |p| p.send("#{perm}?") }.map { |permission| permission.repository_id }
|
|
else
|
|
permissions.map { |permission| permission.repository_id }
|
|
end
|
|
end
|
|
|
|
def repo_ids
|
|
filtered_ids
|
|
end
|
|
|
|
def admin_ids
|
|
filtered_ids(:admin)
|
|
end
|
|
|
|
def pull_ids
|
|
filtered_ids(:pull)
|
|
end
|
|
|
|
def push_ids
|
|
filtered_ids(:push)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|