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"; import * as _ from "lodash" /** * @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