Skip to content
Snippets Groups Projects
Commit 9daef03e authored by Israel Barreto Sant'Anna's avatar Israel Barreto Sant'Anna
Browse files

Added filter to activities

parent 2fb0ab22
No related branches found
No related tags found
No related merge requests found
...@@ -18,13 +18,13 @@ class V1::ActivitiesController < ApplicationController ...@@ -18,13 +18,13 @@ class V1::ActivitiesController < ApplicationController
# Only followers can see user activities # Only followers can see user activities
def user_activities def user_activities
raise ::Pundit::NotAuthorizedError unless ::ActivityPolicy.new(current_user, resource_model).user_activities? raise ::Pundit::NotAuthorizedError unless ::ActivityPolicy.new(current_user, resource_model).user_activities?
activities = paginate resource_model.activities activities = paginate resource_model.activities_filtered
render json: activities render json: activities
end end
def me def me
authorize :activity, :index? authorize :activity, :index?
activities = paginate current_user.activities activities = paginate current_user.activities_filtered
render json: activities render json: activities
end end
end end
...@@ -15,7 +15,7 @@ class V1::FeedController < ApplicationController ...@@ -15,7 +15,7 @@ class V1::FeedController < ApplicationController
def activities_followed def activities_followed
activities = [] activities = []
current_user.watching.each do |watching| current_user.watching.each do |watching|
activities.push(*watching.activities.to_a) activities.push(*watching.activities_filtered.to_a)
end end
activities activities
end end
......
...@@ -6,5 +6,27 @@ module Trackable ...@@ -6,5 +6,27 @@ module Trackable
tracked owner: proc { |controller, model| model.try(:user) || model.try(:owner) || controller.try(:current_user) } tracked owner: proc { |controller, model| model.try(:user) || model.try(:owner) || controller.try(:current_user) }
tracked recipient: proc { |_controller, model| model.try(:recipient) || model } tracked recipient: proc { |_controller, model| model.try(:recipient) || model }
tracked privacy: proc { |_controller, model| model.try(:privacy) || "public" } tracked privacy: proc { |_controller, model| model.try(:privacy) || "public" }
end
def activities_filtered
p "--------------------- LOLOLOLOLLOLO"
@activities.where.not(key: activities_filter)
end
def activities_filter
[ 'complaint.update', 'complaint.destroy',
'complaint_reason.create', 'complaint_reason.update', 'complaint_reason.destroy',
'institution.create', 'institution.update', 'institution.destroy',
'review.update', 'review.destroy',
'rate.create', 'rate.update', 'rate.destroy',
'follow.create', 'follow.update', 'follow.destroy',
'share.create', 'share.update', 'share.destroy',
'view.create', 'view.update', 'view.destroy',
'tagging.create', 'tagging.update', 'tagging.destroy',
'bookmark.create', 'bookmark.update', 'bookmark.destroy',
'download.update', 'download.destroy',
'like.update'
]
end end
end end
...@@ -177,8 +177,29 @@ class User < ApplicationRecord ...@@ -177,8 +177,29 @@ class User < ApplicationRecord
# ~~~~ end followable actions ~~~~ # # ~~~~ end followable actions ~~~~ #
def activities_filtered
p "--------------------- LOLOLOLOLLOLO"
self.activities.where.not(key: activities_filter)
end
private private
def activities_filter
[ 'complaint.update', 'complaint.destroy',
'complaint_reason.create', 'complaint_reason.update', 'complaint_reason.destroy',
'institution.create', 'institution.update', 'institution.destroy',
'review.update', 'review.destroy',
'rate.create', 'rate.update', 'rate.destroy',
'follow.create', 'follow.update', 'follow.destroy',
'share.create', 'share.update', 'share.destroy',
'view.create', 'view.update', 'view.destroy',
'tagging.create', 'tagging.update', 'tagging.destroy',
'bookmark.create', 'bookmark.update', 'bookmark.destroy',
'download.update', 'download.destroy',
'like.update'
]
end
def default_role def default_role
roles << Role.teacher roles << Role.teacher
end end
......
...@@ -8,7 +8,23 @@ class ActivityPolicy < ApplicationPolicy ...@@ -8,7 +8,23 @@ class ActivityPolicy < ApplicationPolicy
end end
def resolve def resolve
scope.includes(:owner,:recipient).where("privacy = 'public'").order('created_at DESC').all scope.includes(:owner,:recipient).where("privacy = 'public'").where.not(key: except).order('created_at DESC').all
end
def except
[ 'complaint.update', 'complaint.destroy',
'complaint_reason.create', 'complaint_reason.update', 'complaint_reason.destroy',
'institution.create', 'institution.update', 'institution.destroy',
'review.update', 'review.destroy',
'rate.create', 'rate.update', 'rate.destroy',
'follow.create', 'follow.update', 'follow.destroy',
'share.create', 'share.update', 'share.destroy',
'view.create', 'view.update', 'view.destroy',
'tagging.create', 'tagging.update', 'tagging.destroy',
'bookmark.create', 'bookmark.update', 'bookmark.destroy',
'download.update', 'download.destroy',
'like.update'
]
end end
end end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment