doc.yeswiki.pro/node_modules/@algolia/client-personalization/dist/client-personalization.esm.js
2023-05-20 19:38:02 +03:00

43 lines
1.5 KiB
JavaScript

import { createAuth, AuthMode, addMethods } from '@algolia/client-common';
import { createTransporter } from '@algolia/transporter';
import { MethodEnum } from '@algolia/requester-common';
const createPersonalizationClient = options => {
const region = options.region || 'us';
const auth = createAuth(AuthMode.WithinHeaders, options.appId, options.apiKey);
const transporter = createTransporter({
hosts: [{ url: `personalization.${region}.algolia.com` }],
...options,
headers: {
...auth.headers(),
...{ 'content-type': 'application/json' },
...options.headers,
},
queryParameters: {
...auth.queryParameters(),
...options.queryParameters,
},
});
return addMethods({ appId: options.appId, transporter }, options.methods);
};
const getPersonalizationStrategy = (base) => {
return (requestOptions) => {
return base.transporter.read({
method: MethodEnum.Get,
path: '1/strategies/personalization',
}, requestOptions);
};
};
const setPersonalizationStrategy = (base) => {
return (personalizationStrategy, requestOptions) => {
return base.transporter.write({
method: MethodEnum.Post,
path: '1/strategies/personalization',
data: personalizationStrategy,
}, requestOptions);
};
};
export { createPersonalizationClient, getPersonalizationStrategy, setPersonalizationStrategy };