UNPKG

@studyportals/sp-hs-misc

Version:

Miscellaneous code used in HouseStark's projects

183 lines (178 loc) 8.28 kB
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * Creates new instances of models using data provided * by the Service Layer. */ //# sourceMappingURL=service-layer-data-models-factory.class.js.map var ServiceLayerDataModelsFactory = function () { function ServiceLayerDataModelsFactory() { _classCallCheck(this, ServiceLayerDataModelsFactory); } _createClass(ServiceLayerDataModelsFactory, [{ key: "createStudy", value: function createStudy(serviceLayerData) { var id = this.extractEntityId(serviceLayerData); var title = this.extractEntityTitle(serviceLayerData); var isPremium = this.extractEntityPremiumness(serviceLayerData); var organisationId = this.extractGoverningOrganisationId(serviceLayerData); var degree = this.extractStudyDegree(serviceLayerData); var level = this.translateStudyLevel(serviceLayerData["level"]); return new StudyDto(id, title, isPremium, organisationId, level, degree); } }, { key: "createVenue", value: function createVenue(serviceLayerData) { var id = this.extractEntityId(serviceLayerData); var title = this.extractEntityTitle(serviceLayerData); var isPremium = this.extractEntityPremiumness(serviceLayerData); var organisationId = this.extractGoverningOrganisationId(serviceLayerData); return new VenueDto(id, title, isPremium, organisationId); } }, { key: "createOrganisation", value: function createOrganisation(serviceLayerData) { var id = this.extractEntityId(serviceLayerData); var title = this.extractEntityTitle(serviceLayerData); var isPremium = this.extractEntityPremiumness(serviceLayerData); var organisationId = this.extractParentOrganisationId(serviceLayerData); return new OrganisationDto(id, title, isPremium, organisationId); } }, { key: "createCountry", value: function createCountry(serviceLayerData) { var id = this.extractEntityId(serviceLayerData); var title = this.extractEntityTitle(serviceLayerData); var alphaTwoIsoCode = serviceLayerData["iso_code"] || ""; return new CountryDto(id, title, alphaTwoIsoCode); } }, { key: "createCampaign", value: function createCampaign(serviceLayerData) { var id = this.extractEntityId(serviceLayerData); var title = this.extractEntityTitle(serviceLayerData); var startDate = this.extractDateFromProperty(serviceLayerData, "start_date") || new Date(0); var endDate = this.extractDateFromProperty(serviceLayerData, "end_date"); var budget = +serviceLayerData["budget_total"] / 100; var currency = this.translateCurrency(serviceLayerData["currency"]); var type = this.translateCampaignType(serviceLayerData["type"]); var externalNotes = serviceLayerData["external_notes"]; return new CampaignDto(id, title, startDate, endDate, currency, budget, type, externalNotes); } }, { key: "extractEntityId", value: function extractEntityId(serviceLayerData) { if (serviceLayerData["id"]) { return serviceLayerData["id"]; } throw new Error("The entity's ID has not been specified"); } }, { key: "extractEntityTitle", value: function extractEntityTitle(serviceLayerData) { return serviceLayerData["title"] || serviceLayerData["name"] || ""; } }, { key: "extractEntityPremiumness", value: function extractEntityPremiumness(serviceLayerData) { var premiumsArray = serviceLayerData["premiums"]; if (premiumsArray && premiumsArray.includes("display_premium")) { return true; } return false; } }, { key: "extractGoverningOrganisationId", value: function extractGoverningOrganisationId(serviceLayerData) { return this.extractLastKeyFromMapOrDefaultToNull(serviceLayerData["organisations_lineage"]); } }, { key: "extractParentOrganisationId", value: function extractParentOrganisationId(serviceLayerData) { return this.extractLastKeyFromMapOrDefaultToNull(serviceLayerData["lineage"]); } }, { key: "extractLastKeyFromMapOrDefaultToNull", value: function extractLastKeyFromMapOrDefaultToNull(map) { if (map && 0 !== map.length) { var organisationLineageIds = map[map.length - 1]; var organisationId = Object.keys(organisationLineageIds)[0]; return organisationId; } return null; } }, { key: "extractDateFromProperty", value: function extractDateFromProperty(data, propertyIdentifier) { var dateInMilliseconds = data[propertyIdentifier]; if (!dateInMilliseconds || dateInMilliseconds === "") { return undefined; } return new Date(+dateInMilliseconds * 1000); } }, { key: "extractStudyDegree", value: function extractStudyDegree(data) { var degreeSpecified = data["degree"] && data["degree"].length > 0; return degreeSpecified ? data["degree_formatted"] : data["degree_type"].trim() || data["degree_formatted"]; } }, { key: "translateCurrency", value: function translateCurrency(currencyAsString) { switch (currencyAsString) { case "EUR": return Currency.EUR; case "GBP": return Currency.GBP; case "USD": return Currency.USD; case "AUD": return Currency.AUD; case "CAD": return Currency.CAD; default: return Currency.Unknown; } } }, { key: "translateCampaignType", value: function translateCampaignType(campaignType) { switch (campaignType) { case 'rbp': return CampaignType.RBP; case 'nrbp': return CampaignType.NRBP; case 'advanced_nrbp': return CampaignType.ADVANCED_NRBP; case 'rbp_cpl': return CampaignType.RBP_CPL; case 'hybrid_ebp': return CampaignType.HYBRID_EBP; case 'full_ebp': return CampaignType.FULL_EBP; case 'free_trial': return CampaignType.FREE_TRIAL; } return CampaignType.UNKNOWN; } }, { key: "translateStudyLevel", value: function translateStudyLevel(studyLevel) { switch (studyLevel) { case 'bachelor': return StudyLevel.BACHELOR; case 'master': return StudyLevel.MASTER; case 'phd': return StudyLevel.PHD; case 'short': return StudyLevel.SHORT; case 'preparation': return StudyLevel.PREPARATION; default: return StudyLevel.UNKNOWN; } } }]); return ServiceLayerDataModelsFactory; }();