parent
48ea06ec8a
commit
9fbc04aa6e
@ -0,0 +1,40 @@
|
||||
class WatchersController < ApplicationController
|
||||
before_action :require_login, except: %i[index]
|
||||
before_action :find_user, :set_project
|
||||
|
||||
def index
|
||||
scope = @project.watchers.includes(:user)
|
||||
@watchers = paginate(scope)
|
||||
end
|
||||
|
||||
def unfollow
|
||||
begin
|
||||
return normal_status(2, "你还没有关注哦") unless current_user.watched?(@project)
|
||||
current_user.unwatch!(@project)
|
||||
render_ok
|
||||
rescue Exception => e
|
||||
uid_logger_error(e.message)
|
||||
tip_exception(e.message)
|
||||
raise ActiveRecord::Rollback
|
||||
end
|
||||
end
|
||||
|
||||
def follow
|
||||
begin
|
||||
return normal_status(2, "你已关注了") if current_user.watched?(@project)
|
||||
current_user.watch!(@project)
|
||||
render_ok
|
||||
rescue Exception => e
|
||||
uid_logger_error(e.message)
|
||||
tip_exception(e.message)
|
||||
raise ActiveRecord::Rollback
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def set_project
|
||||
@project = @user.projects.find_by_identifier params[:project_id]
|
||||
render_not_found("未找到’#{params[:id]}’相关的项目") unless @project
|
||||
end
|
||||
|
||||
end
|
@ -0,0 +1,2 @@
|
||||
module WatchersHelper
|
||||
end
|
@ -0,0 +1,3 @@
|
||||
json.name watcher.user.real_name
|
||||
json.login watcher.user.login
|
||||
json.image_url url_to_avatar(watcher.user)
|
@ -0,0 +1,4 @@
|
||||
json.total_count @watchers.size
|
||||
json.watchers do
|
||||
json.partial! 'watcher', collection: @watchers, as: :watcher
|
||||
end
|
Loading…
Reference in new issue