Class: GoodData::ProjectRole
- Inherits:
-
Rest::Resource
- Object
- Rest::Object
- Rest::Resource
- GoodData::ProjectRole
- Includes:
- Mixin::Author, Mixin::Contributor, Mixin::Timestamps
- Defined in:
- lib/gooddata/models/project_role.rb
Constant Summary collapse
- EMPTY_OBJECT =
{ 'projectRole' => { 'permissions' => {}, 'links' => {}, 'meta' => {} } }
Instance Attribute Summary
Attributes inherited from Rest::Object
Class Method Summary collapse
Instance Method Summary collapse
- #==(other) ⇒ Object
-
#initialize(json) ⇒ ProjectRole
constructor
A new instance of ProjectRole.
-
#uri ⇒ string
Gets Raw object URI.
-
#users ⇒ Array<GoodData::Profile>
Gets Users with this Role.
Methods included from Mixin::Timestamps
Methods included from Mixin::Contributor
Methods included from Mixin::Author
Methods included from Mixin::ObjId
Methods inherited from Rest::Object
client, default_client, #saved?
Methods included from Mixin::DataPropertyReader
Methods included from Mixin::DataPropertyWriter
Methods included from Mixin::MetaPropertyReader
Methods included from Mixin::MetaPropertyWriter
Methods included from Mixin::MetaGetter
Methods included from Mixin::DataGetter
Methods included from Mixin::RootKeyGetter
Methods included from Mixin::ContentGetter
Constructor Details
#initialize(json) ⇒ ProjectRole
Returns a new instance of ProjectRole.
45 46 47 |
# File 'lib/gooddata/models/project_role.rb', line 45 def initialize(json) @json = json end |
Class Method Details
.create_object(data) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/gooddata/models/project_role.rb', line 29 def self.create_object(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] 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()) d['projectRole']['permissions'] = d['projectRole']['permissions'].merge(GoodData::Helpers.stringify_keys(data[:permissions] || {})) end new(new_data) end |
Instance Method Details
#==(other) ⇒ Object
75 76 77 |
# File 'lib/gooddata/models/project_role.rb', line 75 def ==(other) uri == other.uri end |
#uri ⇒ string
Gets Raw object URI
69 70 71 72 73 |
# File 'lib/gooddata/models/project_role.rb', line 69 def uri return @json['projectRole']['links']['self'] if @json['projectRole']['links']['self'] return nil unless @json['projectRole']['links']['roleUsers'] @json['projectRole']['links']['roleUsers'].split('/')[0...-1].join('/') end |
#users ⇒ Array<GoodData::Profile>
Gets Users with this Role
56 57 58 59 60 61 62 63 64 |
# File 'lib/gooddata/models/project_role.rb', line 56 def users url = data['links']['roleUsers'] 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 |