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.
46 47 48 |
# File 'lib/gooddata/models/project_role.rb', line 46 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 44 |
# 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] 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()) d['projectRole']['permissions'] = d['projectRole']['permissions'].merge(GoodData::Helpers.stringify_keys(data[:permissions] || {})) end new(new_data) end |
Instance Method Details
#==(other) ⇒ Object
74 75 76 |
# File 'lib/gooddata/models/project_role.rb', line 74 def ==(other) uri == other.uri end |
#uri ⇒ string
Gets Raw object URI
70 71 72 |
# File 'lib/gooddata/models/project_role.rb', line 70 def uri @json['projectRole']['meta']['uri'] end |
#users ⇒ Array<GoodData::Profile>
Gets Users with this Role
57 58 59 60 61 62 63 64 65 |
# 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 |