From f463131d1d7b1da50bf91b0c3cc09fccaf204acb Mon Sep 17 00:00:00 2001 From: "k.triantafyllou" Date: Wed, 29 Jul 2020 11:04:37 +0000 Subject: [PATCH] [Library | Trunk]: Fix invalid date exception git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-library/trunk/ng-openaire-library/src/app@59187 d315682c-612b-4755-9ff5-7f18f6832af3 --- landingPages/result/resultLanding.service.ts | 3 ++- services/searchResearchResults.service.ts | 4 ++-- utils/string-utils.class.ts | 13 +++++++++++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/landingPages/result/resultLanding.service.ts b/landingPages/result/resultLanding.service.ts index b73bb932..fffcaf3a 100644 --- a/landingPages/result/resultLanding.service.ts +++ b/landingPages/result/resultLanding.service.ts @@ -6,6 +6,7 @@ import {EnvProperties} from '../../utils/properties/env-properties'; import {ParsingFunctions} from '../landing-utils/parsingFunctions.class'; import {map, tap} from "rxjs/operators"; import {HostedByCollectedFrom, Organization} from "../../utils/result-preview/result-preview"; +import {Dates} from "../../utils/string-utils.class"; @Injectable() export class ResultLandingService { @@ -99,7 +100,7 @@ export class ResultLandingService { //this.resultLandingInfo.description = String(data[0].description[0]); this.resultLandingInfo.description = (data[0] && data[0].description[0]) ? String(data[0].description[0]) : ""; } - this.resultLandingInfo.embargoEndDate = data[0].embargoenddate?new Date(data[0].embargoenddate):null; + this.resultLandingInfo.embargoEndDate = data[0].embargoenddate?Dates.getDateFromString(data[0].embargoenddate):null; } if(data[0]['bestaccessright'] && data[0]['bestaccessright'].hasOwnProperty("classname")) { diff --git a/services/searchResearchResults.service.ts b/services/searchResearchResults.service.ts index 2c995a11..aea9d3aa 100644 --- a/services/searchResearchResults.service.ts +++ b/services/searchResearchResults.service.ts @@ -2,7 +2,7 @@ import {Injectable} from '@angular/core'; import {HttpClient} from "@angular/common/http"; import {SearchResult} from '../utils/entities/searchResult'; import {RefineResultsUtils} from './servicesUtils/refineResults.class'; -import {DOI, StringUtils} from '../utils/string-utils.class'; +import {Dates, DOI, StringUtils} from '../utils/string-utils.class'; import {ParsingFunctions} from '../landingPages/landing-utils/parsingFunctions.class'; import {EnvProperties} from '../utils/properties/env-properties'; import {map} from "rxjs/operators"; @@ -297,7 +297,7 @@ export class SearchResearchResultsService { } if(resData.embargoenddate && resData.embargoenddate != '') { - result.embargoEndDate = new Date(resData.embargoenddate); + result.embargoEndDate = Dates.getDateFromString(resData.embargoenddate); } if(!Array.isArray(resData.publisher)) { diff --git a/utils/string-utils.class.ts b/utils/string-utils.class.ts index f0044c88..7bc4a6da 100644 --- a/utils/string-utils.class.ts +++ b/utils/string-utils.class.ts @@ -271,4 +271,17 @@ export class StringUtils { } return false; } + + public static getDateFromString(dateString: string): Date { + let date = new Date(dateString); + if (Object.prototype.toString.call(date) === "[object Date]") { + if (isNaN(date.getTime())) { + return null; + } else { + return date; + } + } else { + return null; + } + } }