Skip to content

Commit 0a96cc5

Browse files
committed
added /subsriptions/qualifiers route for getting qualifier options on demand
1 parent 5b458c9 commit 0a96cc5

2 files changed

Lines changed: 29 additions & 0 deletions

File tree

app/controllers/subscriptions_controller.rb

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,34 @@ def index
2020
@subscriptions = current_user.subscriptions
2121
end
2222

23+
def qualifiers
24+
per_page = 20
25+
26+
@items = case params[:type]
27+
when 'category'
28+
Category.accessible_to(current_user)
29+
.order(sequence: :asc, id: :asc)
30+
when 'tag'
31+
Tag.order(name: :asc)
32+
when 'user'
33+
User.accessible_to(current_user)
34+
.joins(:community_user)
35+
.undeleted
36+
.where.not(community_users: { deleted: true })
37+
.order(username: :asc)
38+
end
39+
40+
@items = params[:q].present? ? @items&.search(params[:q]) : @items
41+
@items = @items&.paginate(page: params[:page], per_page: per_page).to_a
42+
43+
items = @items.map do |item|
44+
{ id: item.is_a?(Tag) ? item.name : item.id,
45+
text: item.is_a?(User) ? item.username : item.name }
46+
end
47+
48+
render json: items
49+
end
50+
2351
def enable
2452
@subscription = Subscription.find params[:id]
2553
if current_user.admin? || current_user.id == @subscription.user_id

config/routes.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,7 @@
256256
get 'subscriptions/new', to: 'subscriptions#new', as: :new_subscription
257257
post 'subscriptions/new', to: 'subscriptions#create', as: :create_subscription
258258
get 'subscriptions', to: 'subscriptions#index', as: :subscriptions
259+
get 'subscriptions/qualifiers', to: 'subscriptions#qualifiers', as: :subscription_qualifiers
259260
post 'subscriptions/:id/enable', to: 'subscriptions#enable', as: :enable_subscription
260261
delete 'subscriptions/:id', to: 'subscriptions#destroy', as: :destroy_subscription
261262

0 commit comments

Comments
 (0)