@amityco/ts-sdk-react-native
Version:
Amity Social Cloud Typescript SDK
38 lines (33 loc) • 1.28 kB
text/typescript
import { AmityCommunityMemberStatusFilter } from '~/communityRepository/constants';
import { PaginationController } from '~/core/liveCollection/PaginationController';
import { COLLECTION_DEFAULT_PAGINATION_LIMIT } from '~/utils/constants';
export class SemanticSearchCommunityPaginationController extends PaginationController<
'semanticSearchCommunity',
Amity.SemanticSearchCommunityLiveCollection
> {
async getRequest(
queryParams: Amity.SemanticSearchCommunityLiveCollection,
token: string | undefined,
) {
const {
limit = COLLECTION_DEFAULT_PAGINATION_LIMIT,
communityMembershipStatus,
...params
} = queryParams;
const baseOptions = {
type: queryParams.limit ? 'pagination' : undefined,
};
const options = token ? { ...baseOptions, token } : { ...baseOptions, limit };
const { data: queryResponse } = await this.http.get<
Amity.SemanticSearchCommunityPayload & Amity.Pagination
>(`/api/v1/semantic-search/communities`, {
params: {
...params,
filter: communityMembershipStatus ?? AmityCommunityMemberStatusFilter.ALL,
options,
includeDiscoverablePrivateCommunity: params.includeDiscoverablePrivateCommunity ?? true,
},
});
return queryResponse;
}
}