API Save

A package to handle JANIS Views Save APIs
Installation
npm install @janiscommerce/api-save
Usage
'use strict';
const { ApiSaveData } = require('@janiscommerce/api-save');
const { Controller } = require('@janiscommerce/model-controller');
const { struct } = require('superstruct');
class MyApiSaveData extends ApiSaveData {
static get relationshipsParameters() {
return {
children: {
controller: Controller.getInstance('some-relationship-entity'),
mainIdentifierField: 'dbFieldForMainEntity',
secondaryIdentifierField: 'dbFieldForRelatedEntity',
shouldClean: false
}
};
}
getStruct() {
return struct({
id: 'number',
data: struct.partial({
name: 'string',
description: 'string?',
status: 'number'
}),
relationships: struct.partial({
children: ['number']
})
});
}
format({ someField, ...restoOfTheRecord }) {
return {
...restoOfTheRecord,
someField: `prefix-${someField}`
};
}
}
module.exports = MyApiSaveData;