UNPKG

@publidata/utils-data-manager

Version:

Collection of methods to extract data from publidata

93 lines (90 loc) 3.94 kB
const { getModel } = require("@publidata/utils-mapper"); const constant = require("./assets/constant"); const PublidataObject = require("./PublidataObject"); const PublidataObjectService = require("./PublidataObject/Service"); const PublidataObjectFacility = require("./PublidataObject/Facility"); const PublidataObjectFacilityCovid = require("./PublidataObject/Facility/Covid"); const PublidataObjectRisk = require("./PublidataObject/Risk"); const PublidataObjectCity = require("./PublidataObject/City"); const PublidataObjectSector = require("./PublidataObject/Sector"); const PublidataObjectServiceWasteCollection = require("./PublidataObject/Service/WasteCollection"); const PublidataObjectServiceCanteenMenu = require("./PublidataObject/Service/CanteenMenu"); const PublidataObjectMeal = require("./PublidataObject/Meal"); const PublidataObjectDocument = require("./PublidataObject/Document"); const PublidataObjectPost = require("./PublidataObject/Post"); const PublidataObjectNews = require("./PublidataObject/Post/News"); const PublidataObjectSlot = require("./PublidataObject/Slot"); const PublidataObjectItem = require("./PublidataObject/Item"); const PublidataObjectElected = require("./PublidataObject/Elected"); const PublidataObjectAccount = require("./PublidataObject/Account"); const PublidataObjectAlert = require("./PublidataObject/Alert"); const instanciatePublidataObject = (object, instance, dataManager) => { const { OBJECT_TYPE_MEAL, OBJECT_TYPE_SERVICE, OBJECT_TYPE_FACILITY, OBJECT_TYPE_RISK, OBJECT_TYPE_NODE, OBJECT_MODEL_WASTE, OBJECT_MODEL_MENU, OBJECT_TYPE_DOCUMENT, OBJECT_TYPE_POST, OBJECT_TYPE_CITY, OBJECT_TYPE_ELECTED, OBJECT_TYPE_SECTOR, OBJECT_TYPE_SLOT, OBJECT_TYPE_ITEM, OBJECT_TYPE_ACCOUNT, OBJECT_TYPE_ALERT } = constant; if (!object) return object; const type = object._type; const model = getModel(object, false, false); if (object.isPublidataObject) return object; const params = [object, instance, dataManager]; if (type === OBJECT_TYPE_SERVICE) { if (model === OBJECT_MODEL_WASTE) { return new PublidataObjectServiceWasteCollection(...params); } else if (model === OBJECT_MODEL_MENU) { return new PublidataObjectServiceCanteenMenu(...params); } return new PublidataObjectService(...params); } else if (type === OBJECT_TYPE_FACILITY || type === OBJECT_TYPE_NODE) { const publidataObjectFacility = new PublidataObjectFacility(...params); if (publidataObjectFacility.covidFaceMask) return new PublidataObjectFacilityCovid(...params); return publidataObjectFacility; } else if (type === OBJECT_TYPE_MEAL) { return new PublidataObjectMeal(...params); } else if (type === OBJECT_TYPE_DOCUMENT) { return new PublidataObjectDocument(...params); } else if (type === OBJECT_TYPE_RISK) { return new PublidataObjectRisk(...params); } else if (type === OBJECT_TYPE_CITY) { return new PublidataObjectCity(...params); } else if (type === OBJECT_TYPE_SECTOR) { return new PublidataObjectSector(...params); } else if (type === OBJECT_TYPE_POST) { return new PublidataObjectPost(...params); } else if (type === OBJECT_TYPE_SLOT) { return new PublidataObjectSlot(...params); } else if (type === OBJECT_TYPE_ITEM) { return new PublidataObjectItem(...params); } else if (type === "news") { return new PublidataObjectNews(...params); } else if (type === OBJECT_TYPE_ELECTED) { return new PublidataObjectElected(...params); } else if (type === OBJECT_TYPE_ACCOUNT) { return new PublidataObjectAccount(...params); } else if (type === OBJECT_TYPE_ALERT) { return new PublidataObjectAlert(...params); } return new PublidataObject(...params); }; module.exports = { instanciatePublidataObject, PublidataObject, PublidataObjectService, PublidataObjectFacility, PublidataObjectServiceWasteCollection };