client-personalization.esm.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { createAuth, AuthMode, addMethods } from '@algolia/client-common';
  2. import { createTransporter } from '@algolia/transporter';
  3. import { MethodEnum } from '@algolia/requester-common';
  4. const createPersonalizationClient = options => {
  5. const region = options.region || 'us';
  6. const auth = createAuth(AuthMode.WithinHeaders, options.appId, options.apiKey);
  7. const transporter = createTransporter({
  8. hosts: [{ url: `personalization.${region}.algolia.com` }],
  9. ...options,
  10. headers: {
  11. ...auth.headers(),
  12. ...{ 'content-type': 'application/json' },
  13. ...options.headers,
  14. },
  15. queryParameters: {
  16. ...auth.queryParameters(),
  17. ...options.queryParameters,
  18. },
  19. });
  20. return addMethods({ appId: options.appId, transporter }, options.methods);
  21. };
  22. const getPersonalizationStrategy = (base) => {
  23. return (requestOptions) => {
  24. return base.transporter.read({
  25. method: MethodEnum.Get,
  26. path: '1/strategies/personalization',
  27. }, requestOptions);
  28. };
  29. };
  30. const setPersonalizationStrategy = (base) => {
  31. return (personalizationStrategy, requestOptions) => {
  32. return base.transporter.write({
  33. method: MethodEnum.Post,
  34. path: '1/strategies/personalization',
  35. data: personalizationStrategy,
  36. }, requestOptions);
  37. };
  38. };
  39. export { createPersonalizationClient, getPersonalizationStrategy, setPersonalizationStrategy };