contentful-management
Version:
Client for Contentful's Content Management API
77 lines (74 loc) • 2.55 kB
JavaScript
import copy from 'fast-copy';
import { post, del as del$1, get as get$1, put } from './raw.mjs';
const getBaseUrl = (params) => `/spaces/${params.spaceId}/environments/${params.environmentId}/experiences`;
// Opts into the renamed ("new ExO entity types") Experience shape: sys.experienceTemplate
// instead of sys.template, and ExperienceFragment slot nodes. The renamed family shares the
// `/experiences` URLs with the legacy routes and is discriminated server-side on this header.
const ExperienceAlphaHeaders = {
'x-contentful-enable-alpha-feature': 'new-exo-entity-types',
};
const getMany = (http, params, headers) => {
return get$1(http, getBaseUrl(params), {
params: params.query,
headers: {
...ExperienceAlphaHeaders,
...headers,
},
});
};
const get = (http, params, headers) => {
return get$1(http, getBaseUrl(params) + `/${params.experienceId}`, {
headers: {
...ExperienceAlphaHeaders,
...headers,
},
});
};
const create = (http, params, rawData, headers) => {
const data = copy(rawData);
return post(http, getBaseUrl(params), data, {
headers: {
...ExperienceAlphaHeaders,
...headers,
},
});
};
const upsert = (http, params, rawData, headers) => {
const { sys, ...body } = copy(rawData);
return put(http, getBaseUrl(params) + `/${params.experienceId}`, body, {
headers: {
...ExperienceAlphaHeaders,
...(sys.version !== undefined && {
'X-Contentful-Version': sys.version,
}),
...headers,
},
});
};
const del = (http, params) => {
return del$1(http, getBaseUrl(params) + `/${params.experienceId}`, {
headers: {
...ExperienceAlphaHeaders,
},
});
};
const publish = (http, params, payload, headers) => {
return put(http, getBaseUrl(params) + `/${params.experienceId}/published`, payload ?? null, {
headers: {
...ExperienceAlphaHeaders,
'X-Contentful-Version': params.version,
...headers,
},
});
};
const unpublish = (http, params, headers) => {
return del$1(http, getBaseUrl(params) + `/${params.experienceId}/published`, {
headers: {
...ExperienceAlphaHeaders,
'X-Contentful-Version': params.version,
...headers,
},
});
};
export { create, del, get, getMany, publish, unpublish, upsert };
//# sourceMappingURL=experience.mjs.map