discourse/app/controllers/groups_controller.rb

45 lines
1.1 KiB
Ruby
Raw Normal View History

class GroupsController < ApplicationController
def show
2014-02-18 16:43:02 -05:00
render_serialized(find_group(:id), BasicGroupSerializer)
end
2014-02-18 16:17:04 -05:00
def counts
2014-02-18 16:43:02 -05:00
group = find_group(:group_id)
2014-02-18 16:17:04 -05:00
render json: {counts: { posts: group.posts_for(guardian).count,
members: group.users.count } }
end
def posts
2014-02-18 16:43:02 -05:00
group = find_group(:group_id)
posts = group.posts_for(guardian, params[:before_post_id]).limit(20)
render_serialized posts.to_a, GroupPostSerializer
end
2014-02-06 13:06:19 -05:00
def members
2014-02-18 16:43:02 -05:00
group = find_group(:group_id)
members = group.users.order('username_lower asc')
# TODO: We should fix the root cause of the bug where if there
# are more than 200 groups it will truncate
if group.automatic?
limit = (params[:limit] || 200).to_i
offset = (params[:offset] || 0).to_i
members = members.limit(limit).offset(offset)
end
render_serialized(members.to_a, GroupUserSerializer)
2014-02-06 13:06:19 -05:00
end
2014-02-18 16:43:02 -05:00
private
def find_group(param_name)
name = params.require(param_name)
group = Group.find_by("lower(name) = ?", name.downcase)
2014-02-18 16:43:02 -05:00
guardian.ensure_can_see!(group)
group
end
end