diff --git a/src/services/terms.js b/src/services/terms.js index 82184f1b..affd8ad9 100644 --- a/src/services/terms.js +++ b/src/services/terms.js @@ -95,10 +95,22 @@ class TermsService { * @param {Number|String} termId id of the term * @return {Promise} promise of the request result */ - getTermDetails(termId) { - // looks like server cache responses, to prevent it we add nocache param with always new value - return this.private.api.get(`/terms/${termId}`) - .then(res => (res.ok ? res.json() : Promise.reject(res.json()))); + async getTermDetails(termId) { + let termDetails = {}; + let isLegacyTerm = false; + if (/^[\d]{5,8}$/.test(termId)) { + isLegacyTerm = true; + termDetails = await this.private.api.get(`/terms?legacyId=${termId}`) + .then(res => (res.ok ? res.json() : Promise.reject(res.json()))) + .then(res => (res.result ? res.result[0] : Promise.reject(res.json()))); + } else { + termDetails = await this.private.api.get(`/terms/${termId}`) + .then(res => (res.ok ? res.json() : Promise.reject(res.json()))); + } + return { + ...termDetails, + isLegacyTerm, + }; } /**