Ghost/ghost/admin/app/adapters/setting.js

29 lines
1.1 KiB
JavaScript
Raw Normal View History

import ApplicationAdapter from 'ghost-admin/adapters/application';
import {pluralize} from 'ember-inflector';
export default class Setting extends ApplicationAdapter {
updateRecord(store, type, record) {
let data = {};
let serializer = store.serializerFor(type.modelName);
// remove the fake id that we added onto the model.
delete record.id;
// use the SettingSerializer to transform the model back into
// an array of settings objects like the API expects
serializer.serializeIntoHash(data, type, record);
// Do not send empty data to the API
// This can probably be removed then this is fixed:
// https://github.com/TryGhost/Ghost/blob/main/ghost/api-framework/lib/validators/input/all.js#L128
let root = pluralize(type.modelName);
if (data[root].length === 0) {
return Promise.resolve();
}
// use the ApplicationAdapter's buildURL method but do not
// pass in an id.
return this.ajax(this.buildURL(type.modelName), 'PUT', {data});
}
}