discourse/plugins/chat/app/controllers/api/chat_channels_memberships_c...

30 lines
810 B
Ruby

# frozen_string_literal: true
class Chat::Api::ChatChannelsMembershipsController < Chat::Api::ChatChannelsController
def index
params.permit(:username, :offset, :limit)
offset = params[:offset].to_i
limit = (params[:limit] || 50).to_i.clamp(1, 50)
memberships =
ChatChannelMembershipsQuery.call(
channel_from_params,
offset: offset,
limit: limit,
username: params[:username],
)
render_serialized(
memberships,
UserChatChannelMembershipSerializer,
root: "memberships",
meta: {
total_rows: channel_from_params.user_count,
load_more_url:
"/chat/api/channels/#{channel_from_params.id}/memberships?offset=#{offset + limit}&limit=#{limit}&username=#{params[:username]}",
},
)
end
end