[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