class Admins::VideoAppliesController < Admins::BaseController def index params[:status] ||= 'pending' status = params[:status] if status == 'all' status = %w(agreed refused) end applies = VideoApply.where(status: status).order('video_applies.updated_at desc') search = params[:keyword].to_s.strip if search.present? applies = applies.joins(:video) .where('videos.title like :search', search: "%#{search}%") end @video_applies = paginate applies.includes(video: { user: :user_extension }) end def agree Videos::AgreeApplyService.new(current_video_apply, current_user).call render_success_js rescue Videos::AgreeApplyService::Error => e render json: { status: -1, message: e.message } end def refuse Videos::RefuseApplyService.new(current_video_apply, current_user, reason: params[:reason]).call render_success_js rescue Videos::RefuseApplyService::Error => e render json: { status: -1, message: e.message } end private def current_video_apply @_current_video_apply ||= VideoApply.find(params[:id]) end end