From 29e8337f35d723cde4afd85e670035a64bf26026 Mon Sep 17 00:00:00 2001 From: Jasder <2053003901@@qq.com> Date: Thu, 9 Jan 2020 16:39:48 +0800 Subject: [PATCH] ADD user list api --- app/controllers/users_controller.rb | 7 ++++++- app/models/user.rb | 4 ++++ app/views/users/list.json.jbuilder | 4 ++++ config/routes.rb | 4 +++- 4 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 app/views/users/list.json.jbuilder diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index ea50d278b..3d4d8568a 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -2,8 +2,13 @@ class UsersController < ApplicationController before_action :load_user, only: [:show, :homepage_info] before_action :check_user_exist, only: [:show, :homepage_info] - before_action :require_login, only: %i[me] + before_action :require_login, only: %i[me list] + def list + scope = User.active.recent.like(params[:search]).includes(:user_extension) + @total_count = scope.size + @users = paginate(scope) + end def show;end diff --git a/app/models/user.rb b/app/models/user.rb index 39fc7ae79..388445e7d 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1,6 +1,7 @@ class User < ApplicationRecord include Watchable include Likeable + include BaseModel include Searchable::Dependents::User # Account statuses @@ -171,6 +172,9 @@ class User < ApplicationRecord # Groups and active users scope :active, lambda { where(status: STATUS_ACTIVE) } + scope :like, lambda { |keywords| + where("LOWER(concat(lastname, firstname, login)) LIKE ?", "%#{keywords.split(" ").join('|')}%") unless keywords.blank? + } attr_accessor :password, :password_confirmation diff --git a/app/views/users/list.json.jbuilder b/app/views/users/list.json.jbuilder new file mode 100644 index 000000000..64102b215 --- /dev/null +++ b/app/views/users/list.json.jbuilder @@ -0,0 +1,4 @@ +json.total_count @total_count +json.users do + json.partial! 'user_small', users: @users +end diff --git a/config/routes.rb b/config/routes.rb index 2dc4044cf..8ac59006b 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -39,7 +39,7 @@ Rails.application.routes.draw do resources :ignores, only: [:index, :show] resources :licenses, only: [:index, :show] - resources :projects, only: [:index, :create, :show] do + resources :projects, only: [:index, :create, :show, :update] do resources :version_releases, only: [:index,:new, :create, :edit, :update, :destroy] resources :project_trends, only: [:index, :create] resources :issues do @@ -82,6 +82,7 @@ Rails.application.routes.draw do member do get :branches post :watch + get :fork end end @@ -121,6 +122,7 @@ Rails.application.routes.draw do post :attendance get :system_update get :me + get :list resource :trial_apply, only: [:create] resources :projects, module: :users, only: [] do