import * as _ from 'lodash' import BaseNormalizer from '~/services/serializer/normalizer/baseNormalizer' import { DataPersisterArgs, Normalizer } from '~/types/interfaces' import { QUERY_TYPE } from '~/types/enums' import { repositoryHelper } from '~/services/store/repository' /** * @category Services/serializer/normalizer * @class Model * Classe assurant la normalization d'un Model vers un fichier JSON */ class Model extends BaseNormalizer implements Normalizer { static support (type: QUERY_TYPE): boolean { return type === QUERY_TYPE.MODEL } /** * Récupération de l'Item souhaité puis transformation en JSON * @param {DataPersisterArgs} args * @return {any} réponse */ normalize (args:DataPersisterArgs): any { if (!args.model) { throw new Error('model must be present') } const item = repositoryHelper.findItemFromModel(args.model, args.id) if (!item || typeof item === 'undefined') { throw new Error('Item not found') } const data = item.$toJson() return _.omit(data, 'originalState') } } export default Model