UNPKG

contentful-management

Version:
53 lines (51 loc) 1.41 kB
import copy from 'fast-copy'; import { freezeSys, toPlainObject } from 'contentful-sdk-core'; import enhanceWithMethods from '../enhance-with-methods'; import { wrapCollection } from '../common-utils'; /** * @private */ function createLocaleApi(makeRequest) { const getParams = locale => ({ spaceId: locale.sys.space.sys.id, environmentId: locale.sys.environment.sys.id, localeId: locale.sys.id }); return { update: function () { const raw = this.toPlainObject(); return makeRequest({ entityType: 'Locale', action: 'update', params: getParams(raw), payload: raw }).then(data => wrapLocale(makeRequest, data)); }, delete: function () { const raw = this.toPlainObject(); return makeRequest({ entityType: 'Locale', action: 'delete', params: getParams(raw) }).then(() => { // noop }); } }; } /** * @private * @param makeRequest - function to make requests via an adapter * @param data - Raw locale data * @return Wrapped locale data */ export function wrapLocale(makeRequest, data) { delete data.internal_code; const locale = toPlainObject(copy(data)); const localeWithMethods = enhanceWithMethods(locale, createLocaleApi(makeRequest)); return freezeSys(localeWithMethods); } /** * @private */ export const wrapLocaleCollection = wrapCollection(wrapLocale);