43 lines
1.5 KiB
JavaScript
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 };
|