@amityco/ts-sdk-react-native
Version:
Amity Social Cloud Typescript SDK
36 lines (30 loc) • 1.24 kB
text/typescript
/* eslint-disable no-use-before-define */
import { PaginationController } from '~/core/liveCollection/PaginationController';
import { COLLECTION_DEFAULT_PAGINATION_LIMIT } from '~/utils/constants';
import { convertQueryParams } from '~/subChannelRepository/utils';
import { inferIsDeleted } from '~/utils/inferIsDeleted';
/**
* TODO: handle cache receive cache option, and cache policy
* TODO: check if querybyIds is supported
*/
export class SubChannelPaginationController extends PaginationController<
'subChannel',
Amity.SubChannelLiveCollection
> {
async getRequest(queryParams: Amity.SubChannelLiveCollection, token: string | undefined) {
const { limit = COLLECTION_DEFAULT_PAGINATION_LIMIT, ...params } = queryParams;
const { channelId, includeDeleted, ...restProcessedParams } = convertQueryParams(params) ?? {};
const options = token ? { token } : { limit };
const { data: queryResponse } = await this.http.get<Amity.SubChannelPayload & Amity.Pagination>(
`/api/v5/message-feeds/channel/${channelId}`,
{
params: {
...restProcessedParams,
isDeleted: inferIsDeleted(includeDeleted),
options,
},
},
);
return queryResponse;
}
}