Commit 4553d86d0988f76b4ac24dc8e0b37c3ec1fccbd7

Authored by Victor Costa
1 parent 550c2015

api: return profile members

app/models/profile.rb
@@ -421,6 +421,10 @@ class Profile < ActiveRecord::Base @@ -421,6 +421,10 @@ class Profile < ActiveRecord::Base
421 !profiles.exists? 421 !profiles.exists?
422 end 422 end
423 423
  424 + def self.visible_for_person(person)
  425 + self.all
  426 + end
  427 +
424 validates_presence_of :identifier, :name 428 validates_presence_of :identifier, :name
425 validates_length_of :nickname, :maximum => 16, :allow_nil => true 429 validates_length_of :nickname, :maximum => 16, :allow_nil => true
426 validate :valid_template 430 validate :valid_template
lib/noosfero/api/v1/people.rb
@@ -105,6 +105,19 @@ module Noosfero @@ -105,6 +105,19 @@ module Noosfero
105 present output 105 present output
106 end 106 end
107 end 107 end
  108 +
  109 + resource :profiles do
  110 + segment '/:profile_id' do
  111 + resource :members do
  112 + get do
  113 + profile = environment.profiles.find_by_id(params[:profile_id])
  114 + members = profile.members
  115 + present members, :with => Entities::Person, :current_person => current_person
  116 + end
  117 + end
  118 + end
  119 + end
  120 +
108 end 121 end
109 end 122 end
110 end 123 end
lib/noosfero/api/v1/profiles.rb
@@ -8,13 +8,15 @@ module Noosfero @@ -8,13 +8,15 @@ module Noosfero
8 8
9 get do 9 get do
10 profiles = select_filtered_collection_of(environment, 'profiles', params) 10 profiles = select_filtered_collection_of(environment, 'profiles', params)
11 - profiles = profiles.visible_for_person(current_person) if profiles.respond_to?(:visible_for_person) 11 + profiles = profiles.visible_for_person(current_person)
12 profiles = profiles.by_location(params) # Must be the last. May return Exception obj. 12 profiles = profiles.by_location(params) # Must be the last. May return Exception obj.
13 present profiles, :with => Entities::Profile, :current_person => current_person 13 present profiles, :with => Entities::Profile, :current_person => current_person
14 end 14 end
15 15
16 get ':id' do 16 get ':id' do
17 - profile = environment.profiles.visible_for_person(current_person).find_by_id(params[:id]) 17 + profiles = environment.profiles
  18 + profiles = profiles.visible_for_person(current_person)
  19 + profile = profiles.find_by_id(params[:id])
18 present profile, :with => Entities::Profile, :current_person => current_person 20 present profile, :with => Entities::Profile, :current_person => current_person
19 end 21 end
20 end 22 end