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
|