-
Notifications
You must be signed in to change notification settings - Fork 216
/
clearRules.ts
28 lines (25 loc) · 1.09 KB
/
clearRules.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import { createWaitablePromise, encode, WaitablePromise } from '@algolia/client-common';
import { MethodEnum } from '@algolia/requester-common';
import { createMappedRequestOptions, RequestOptions } from '@algolia/transporter';
import { ClearRulesOptions, DeleteResponse, SearchIndex, waitTask } from '../..';
export const clearRules = (base: SearchIndex) => {
return (
requestOptions?: RequestOptions & ClearRulesOptions
): Readonly<WaitablePromise<DeleteResponse>> => {
const { forwardToReplicas, ...options } = requestOptions || {};
const mappedRequestOptions = createMappedRequestOptions(options);
if (forwardToReplicas) {
mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data
}
return createWaitablePromise<DeleteResponse>(
base.transporter.write(
{
method: MethodEnum.Post,
path: encode('1/indexes/%s/rules/clear', base.indexName),
},
mappedRequestOptions
),
(response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)
);
};
};