lib/gooddata/models/membership.rb in gooddata-0.6.7 vs lib/gooddata/models/membership.rb in gooddata-0.6.8

- old
+ new

@@ -1,14 +1,17 @@ # encoding: UTF-8 require 'multi_json' +require 'pmap' require_relative 'project' require_relative 'project_role' +require_relative '../rest/object' + module GoodData - class Membership + class Membership < GoodData::Rest::Object attr_reader :json ASSIGNABLE_MEMBERS = [ :email, :first_name, @@ -126,21 +129,21 @@ # Gets author (person who created) of this object # # @return [String] Author def author url = @json['user']['meta']['author'] - data = GoodData.get url - GoodData::Membership.new(data) + data = client.get url + client.factory.create(GoodData::Membership, data) end # Gets the contributor # # @return [String] Contributor def contributor url = @json['user']['meta']['contributor'] - data = GoodData.get url - GoodData::Membership.new(data) + data = client.get url + client.factory.create(GoodData::Membership, data) end # Gets date when created # # @return [DateTime] Created date @@ -188,11 +191,11 @@ # # @return [Array<GoodData::Invitation>] List of invitations def invitations res = [] - tmp = GoodData.get @json['user']['links']['invitations'] + tmp = client.get @json['user']['links']['invitations'] tmp['invitations'].each do |invitation| # TODO: Something is missing here end res @@ -237,11 +240,11 @@ # # @return [Hash] Hash with permissions def permissions res = {} - tmp = GoodData.get @json['user']['links']['permissions'] + tmp = client.get @json['user']['links']['permissions'] tmp['associatedPermissions']['permissions'].each do |permission_name, permission_value| res[permission_name] = permission_value end res @@ -261,23 +264,23 @@ @json['user']['content']['phonenumber'] = new_phone_number end # Gets profile of this membership def profile - raw = GoodData.get @json['user']['links']['self'] - GoodData::Profile.new(raw) + raw = client.get @json['user']['links']['self'] + client.factory.create(GoodData::Profile, raw) end # Gets URL of profile membership def profile_url @json['user']['links']['self'] end # Gets project which this membership relates to def project - raw = GoodData.get project_url - GoodData::Project.new(raw) + raw = client.get project_url + client.factory.create(GoodData::Project, raw) end # Gets project id def project_id @json['user']['links']['roles'].split('/')[3] @@ -290,20 +293,16 @@ # Gets the projects of user # # @return [Array<GoodData::Project>] Array of projets def projects - res = [] - - tmp = GoodData.get @json['user']['links']['projects'] - tmp['projects'].each do |project_meta| + tmp = client.get @json['user']['links']['projects'] + tmp['projects'].map do |project_meta| project_uri = project_meta['project']['links']['self'] - project = GoodData.get project_uri - res << GoodData::Project.new(project) + project = client.get project_uri + client.factory.create(GoodData::Project, project) end - - res end # Gets first role def role roles.first @@ -311,19 +310,15 @@ # Gets the project roles of user # # @return [Array<GoodData::ProjectRole>] Array of project roles def roles - res = [] - - tmp = GoodData.get @json['user']['links']['roles'] - tmp['associatedRoles']['roles'].each do |role_uri| - role = GoodData.get role_uri - res << GoodData::ProjectRole.new(role) + tmp = client.get @json['user']['links']['roles'] + tmp['associatedRoles']['roles'].pmap do |role_uri| + role = client.get role_uri + client.factory.create(GoodData::ProjectRole, role) end - - res end # Gets the status # # @return [String] Status @@ -394,9 +389,9 @@ 'self' => uri } } } - @json = GoodData.post("/gdc/projects/#{project_id}/users", payload) + @json = client.post("/gdc/projects/#{project_id}/users", payload) end end end