@lipagas/storefront-engine
Version:
Headless Commerce & Marketplace Extension for Fleetbase
43 lines (37 loc) • 1.48 kB
JavaScript
import ApplicationSerializer from '@lipagas/ember-core/serializers/application';
import { EmbeddedRecordsMixin } from '@ember-data/serializer/rest';
import { isArray } from '@ember/array';
export default class ProductVariantSerializer extends ApplicationSerializer.extend(EmbeddedRecordsMixin) {
/**
* Embedded relationship attributes
*
* @var {Object}
*/
get attrs() {
return {
options: { embedded: 'always' },
};
}
serialize(snapshot) {
const options = snapshot.record.get('options');
return {
uuid: snapshot.record.get('id'),
product_uuid: snapshot.record.get('product_uuid'),
name: snapshot.record.get('name'),
description: snapshot.record.get('description'),
is_multiselect: snapshot.record.get('is_multiselect'),
is_required: snapshot.record.get('is_required'),
translations: snapshot.record.get('translations'),
options: isArray(options) ? Array.from(options) : [],
};
}
serializeHasMany(snapshot, json, relationship) {
let key = relationship.key;
if (key === 'options') {
const options = snapshot.record.get('options');
json.options = isArray(options) ? Array.from(options) : [];
console.log('[ProductVariantSerializer #json.options]', json.options);
}
return super.serializeHasMany(...arguments);
}
}