class GoodData::ProjectRole

Constants

EMPTY_OBJECT

Public Class Methods

create_object(data) click to toggle source
# File lib/gooddata/models/project_role.rb, line 29
def self.create_object(data)
  meta_data = {}.tap do |d|
    d[:created] = data[:created] || Time.now
    d[:identifier] = data[:identifier]
    d[:updated] = data[:updated] || d[:created] || Time.now
    d[:title] = data[:title]
    d[:summary] = data[:summary]
    d[:uri] = data[:uri]
  end
  new_data = GoodData::Helpers.deep_dup(EMPTY_OBJECT).tap do |d|
    d['projectRole']['links']['self'] = data[:uri] if data[:uri]
    d['projectRole']['meta'] = d['projectRole']['meta'].merge(GoodData::Helpers.stringify_keys(meta_data))
    d['projectRole']['permissions'] = d['projectRole']['permissions'].merge(GoodData::Helpers.stringify_keys(data[:permissions] || {}))
  end
  new(new_data)
end
new(json) click to toggle source
# File lib/gooddata/models/project_role.rb, line 46
def initialize(json)
  @json = json
end

Public Instance Methods

==(other) click to toggle source
# File lib/gooddata/models/project_role.rb, line 74
def ==(other)
  uri == other.uri
end
uri() click to toggle source

Gets Raw object URI

@return [string] URI of this project role

# File lib/gooddata/models/project_role.rb, line 70
def uri
  @json['projectRole']['meta']['uri']
end
users() click to toggle source

Gets Users with this Role

@return [Array<GoodData::Profile>] List of users

# File lib/gooddata/models/project_role.rb, line 57
def users
  url = uri + '/users'
  tmp = client.get url
  tmp['associatedUsers']['users'].pmap do |user_url|
    url = user_url
    user = client.get url
    client.create(GoodData::Profile, user)
  end
end