[Git][noosfero/noosfero][master] 2 commits: api: return network activities from a profile

Victor Costa gitlab at mg.gitlab.com
Thu Mar 23 13:43:09 BRT 2017


Victor Costa pushed to branch master at Noosfero / noosfero


Commits:
65a8c007 by Josafá Souza Jr at 2017-03-23T16:42:49+00:00
api: return network activities from a profile

- - - - -
1d56278d by Victor Costa at 2017-03-23T16:42:50+00:00
Merge branch 'noosferogov/profile-cards' into 'master'

api: return network activities from a profile

See merge request !1144
- - - - -


3 changed files:

- app/api/helpers.rb
- app/api/v1/activities.rb
- test/api/activities_test.rb


Changes:

=====================================
app/api/helpers.rb
=====================================
--- a/app/api/helpers.rb
+++ b/app/api/helpers.rb
@@ -215,17 +215,20 @@ module Api
     ###########################
     #        Activities       #
     ###########################
-    def find_activities(asset, method_or_relation = 'activities')
+    def find_activities(asset, method_or_relation = 'tracked_notifications')
 
       not_found! if asset.blank? || asset.secret || !asset.visible
       forbidden! if !asset.display_private_info_to?(current_person)
-
-      activities = select_filtered_collection_of(asset, method_or_relation, params)
-      activities = activities.map(&:activity)
+      if method_or_relation == 'activities'
+        activities = select_filtered_collection_of(asset, method_or_relation, params)
+        activities = activities.map(&:activity)
+      else
+        activities = select_filtered_collection_of(asset, method_or_relation, params)
+      end
       activities
     end
 
-    def present_activities_for_asset(asset, method_or_relation = 'activities')
+    def present_activities_for_asset(asset, method_or_relation = 'tracked_notifications')
       tasks = find_activities(asset, method_or_relation)
       present_activities(tasks)
     end


=====================================
app/api/v1/activities.rb
=====================================
--- a/app/api/v1/activities.rb
+++ b/app/api/v1/activities.rb
@@ -6,7 +6,12 @@ module Api
 
         get ':id/activities' do
           profile = environment.profiles.find_by id: params[:id]
-          present_activities_for_asset(profile)
+          present_activities_for_asset(profile, 'activities')
+        end
+
+        get ':id/network_activities' do
+          profile = environment.profiles.find_by id: params[:id]
+          present_activities_for_asset(profile, 'tracked_notifications')
         end
       end
     end


=====================================
test/api/activities_test.rb
=====================================
--- a/test/api/activities_test.rb
+++ b/test/api/activities_test.rb
@@ -17,6 +17,15 @@ class ActivitiesTest < ActiveSupport::TestCase
     assert_equivalent person.activities.map(&:activity).map(&:id), json.map{|c| c["id"]}
   end
 
+  should 'get network activities' do
+    fast_create(ActionTrackerNotification, :profile_id => person.id, :action_tracker_id => fast_create(ActionTracker::Record, :user_id => user.id))
+    
+    get "/api/v1/profiles/#{person.id}/network_activities?#{params.to_query}"
+    json = JSON.parse(last_response.body)
+    assert 1, json.count
+    assert_equivalent person.tracked_notifications.map(&:id), json.map{|c| c["id"]}
+  end
+
   should 'not get private community activities' do
     community = fast_create(Community, :public_profile => false)
     create_activity(:target => community)



View it on GitLab: https://gitlab.com/noosfero/noosfero/compare/1c18761c95bb95c3458dcf699e50a0f39a2d7b36...1d56278dcdd0e01304f3d2747bc738cf679fb4d6
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.softwarelivre.org/pipermail/noosfero-dev/attachments/20170323/f2c76767/attachment-0001.html>


More information about the Noosfero-dev mailing list