30 lines
810 B
Ruby
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
|