-
Notifications
You must be signed in to change notification settings - Fork 216
/
deleteSynonym.ts
30 lines (26 loc) · 1.14 KB
/
deleteSynonym.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
29
30
import { createWaitablePromise, encode, WaitablePromise } from '@algolia/client-common';
import { MethodEnum } from '@algolia/requester-common';
import { createMappedRequestOptions, RequestOptions } from '@algolia/transporter';
import { DeleteResponse, DeleteSynonymOptions, SearchIndex, waitTask } from '../..';
export const deleteSynonym = (base: SearchIndex) => {
return (
objectID: string,
requestOptions?: RequestOptions & DeleteSynonymOptions
): 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.Delete,
path: encode('1/indexes/%s/synonyms/%s', base.indexName, objectID),
},
mappedRequestOptions
),
(response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)
);
};
};