mirror of
https://github.com/kemko/nomad.git
synced 2026-01-08 03:15:42 +03:00
* variables.new initialized * Hacky but savey * Variable wildcard route and multiple creatable at a time * multiple KVs per variable * PR Prep cleanup and lintfix * Delog * Data mocking in mirage for variables * Linting fixes * Re-implement absent params * Adapter and model tests * Moves the path-as-id logic to a serializer instead of adapter * Classic to serializer and lint cleanup * Pluralized save button (#13140) * Autofocus modifier and better Add More button UX (#13145) * Secure Variables: show/hide functionality when adding new values (#13137) * Flight Icons added and show hide functionality * PR cleanup * Linting cleanup * Position of icon moved to the right of input * PR feedback addressed * Delete button and stylistic changes to show hide * Hmm, eslint doesnt like jsdoc-usage as only reason for import * More closely match the button styles and delete test * Simplified new.js model * Secure Variables: /variables/*path/edit route and functionality (#13170) * Variable edit page init * Significant change to where we house model methods * Lintfix * Edit a variable tests * Remove redundant tests * Asserts expected * Mirage factory updated to reflect model state
41 lines
1.0 KiB
JavaScript
41 lines
1.0 KiB
JavaScript
import classic from 'ember-classic-decorator';
|
|
import ApplicationSerializer from './application';
|
|
|
|
@classic
|
|
export default class VariableSerializer extends ApplicationSerializer {
|
|
primaryKey = 'Path';
|
|
|
|
// Transform API's Items object into an array of a KeyValue objects
|
|
normalizeFindRecordResponse(store, typeClass, hash, id, ...args) {
|
|
// TODO: prevent items-less saving at API layer
|
|
if (!hash.Items) {
|
|
hash.Items = { '': '' };
|
|
}
|
|
hash.KeyValues = Object.entries(hash.Items).map(([key, value]) => {
|
|
return {
|
|
key,
|
|
value,
|
|
};
|
|
});
|
|
delete hash.Items;
|
|
return super.normalizeFindRecordResponse(
|
|
store,
|
|
typeClass,
|
|
hash,
|
|
id,
|
|
...args
|
|
);
|
|
}
|
|
|
|
// Transform our KeyValues array into an Items object
|
|
serialize(snapshot, options) {
|
|
const json = super.serialize(snapshot, options);
|
|
json.Items = json.KeyValues.reduce((acc, { key, value }) => {
|
|
acc[key] = value;
|
|
return acc;
|
|
}, {});
|
|
delete json.KeyValues;
|
|
return json;
|
|
}
|
|
}
|