forked from Gitlink/forgeplus
change watchers controller and related routes
This commit is contained in:
parent
3a14106cfd
commit
a8aae3618b
|
@ -1,17 +1,18 @@
|
|||
class WatchersController < ApplicationController
|
||||
before_action :require_login, except: %i[index]
|
||||
before_action :find_project_with_id
|
||||
# before_action :find_project_with_id
|
||||
before_action :get_target
|
||||
|
||||
def index
|
||||
scope = @project.watchers.includes(:user)
|
||||
scope = @target.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({watchers_count: @project.watchers_count, watched: current_user.watched?(@project)})
|
||||
return normal_status(2, "你还没有关注哦") unless current_user.watched?(@target)
|
||||
current_user.unwatch!(@target)
|
||||
render_ok({watchers_count: @target.watchers_count, watched: false})
|
||||
rescue Exception => e
|
||||
uid_logger_error(e.message)
|
||||
tip_exception(e.message)
|
||||
|
@ -21,9 +22,9 @@ class WatchersController < ApplicationController
|
|||
|
||||
def follow
|
||||
begin
|
||||
return normal_status(2, "你已关注了") if current_user.watched?(@project)
|
||||
current_user.watch!(@project)
|
||||
render_ok({watchers_count: @project.watchers_count, watched: current_user.watched?(@project)})
|
||||
return normal_status(2, "你已关注了") if current_user.watched?(@target)
|
||||
current_user.watch!(@target)
|
||||
render_ok({watchers_count: @target.watchers_count, watched: true})
|
||||
rescue Exception => e
|
||||
uid_logger_error(e.message)
|
||||
tip_exception(e.message)
|
||||
|
@ -32,11 +33,28 @@ class WatchersController < ApplicationController
|
|||
end
|
||||
|
||||
def check_watch
|
||||
is_watch = current_user.watched?(@project)
|
||||
is_watch = current_user.watched?(@target)
|
||||
render_result(is_watch ? 1 : 0)
|
||||
rescue Exception => e
|
||||
uid_logger_error(e.message)
|
||||
tip_exception(e.message)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def get_target
|
||||
target_type = params[:target_type].to_s
|
||||
case target_type
|
||||
when "project"
|
||||
@target = target_type.capitalize.constantize.find_by(id: params[:id])
|
||||
else
|
||||
@target = target_type.capitalize.constantize.find_by(login: params[:id]) #用户
|
||||
end
|
||||
|
||||
unless @target.present?
|
||||
normal_status(-1, "目标不存在")
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -44,7 +44,14 @@ Rails.application.routes.draw do
|
|||
resources :project_languages, only: [:index, :show]
|
||||
resources :ignores, only: [:index, :show]
|
||||
resources :licenses, only: [:index, :show]
|
||||
|
||||
|
||||
resources :watchers, only: [:index] do
|
||||
collection do
|
||||
post :follow
|
||||
delete :unfollow
|
||||
get :check_watch
|
||||
end
|
||||
end
|
||||
resources :projects do
|
||||
resources :pull_requests, except: [:destroy] do
|
||||
member do
|
||||
|
@ -75,13 +82,7 @@ Rails.application.routes.draw do
|
|||
post :update_status
|
||||
end
|
||||
end
|
||||
resources :watchers, only: [:index] do
|
||||
collection do
|
||||
post :follow
|
||||
delete :unfollow
|
||||
get :check_watch
|
||||
end
|
||||
end
|
||||
|
||||
resources :praise_tread, only: [:index] do
|
||||
collection do
|
||||
post :like
|
||||
|
|
Loading…
Reference in New Issue