UNPKG

contentful-management

Version:
44 lines (42 loc) 1.3 kB
import { freezeSys, toPlainObject } from 'contentful-sdk-core'; import copy from 'fast-copy'; import { wrapCollection } from '../common-utils'; import enhanceWithMethods from '../enhance-with-methods'; /** * @private */ function createAppActionApi(makeRequest) { const getParams = data => ({ organizationId: data.sys.organization.sys.id, appDefinitionId: data.sys.appDefinition.sys.id, appActionId: data.sys.id }); return { delete: function del() { const data = this.toPlainObject(); return makeRequest({ entityType: 'AppAction', action: 'delete', params: getParams(data) }); } }; } /** * @private * @param makeRequest - function to make requests via an adapter * @param data - Raw App Bundle data * @return Wrapped App Bundle data */ export function wrapAppAction(makeRequest, data) { const appAction = toPlainObject(copy(data)); const appActionWithMethods = enhanceWithMethods(appAction, createAppActionApi(makeRequest)); return freezeSys(appActionWithMethods); } /** * @private * @param makeRequest - function to make requests via an adapter * @param data - Raw App Bundle collection data * @return Wrapped App Bundle collection data */ export const wrapAppActionCollection = wrapCollection(wrapAppAction);