contentful-management
Version:
Client for Contentful's Content Management API
33 lines (32 loc) • 1.02 kB
JavaScript
import { freezeSys, toPlainObject } from 'contentful-sdk-core';
import copy from 'fast-copy';
import enhanceWithMethods from '../enhance-with-methods';
/**
* @private
*/
function createUploadCredentialsApi(makeRequest) {
return {
create: async function create() {
const raw = this.toPlainObject();
return makeRequest({
entityType: 'UploadCredential',
action: 'create',
params: {
spaceId: raw.sys.space.sys.id,
environmentId: raw.sys.id
}
});
}
};
}
/**
* @private
* @param {function} makeRequest - function to make requests via an adapter
* @param {object} data - Raw upload credential data
* @return {UploadCredential} Wrapped upload credential data
*/
export function wrapUploadCredential(makeRequest, data) {
const uploadCredential = toPlainObject(copy(data));
const uploadCredentialWithMethods = enhanceWithMethods(uploadCredential, createUploadCredentialsApi(makeRequest));
return freezeSys(uploadCredentialWithMethods);
}