diff --git a/services/web/app/src/models/Institution.js b/services/web/app/src/models/Institution.js index cb1de37ae5..5672000d89 100644 --- a/services/web/app/src/models/Institution.js +++ b/services/web/app/src/models/Institution.js @@ -3,8 +3,8 @@ const { Schema } = mongoose const { ObjectId } = Schema const settings = require('@overleaf/settings') const logger = require('@overleaf/logger') -const request = require('request') const { promisify } = require('@overleaf/promise-utils') +const { fetchJson } = require('@overleaf/fetch-utils') const InstitutionSchema = new Schema( { @@ -19,30 +19,22 @@ const InstitutionSchema = new Schema( ) // fetch institution's data from v1 API. Errors are ignored -InstitutionSchema.method('fetchV1Data', function (callback) { +InstitutionSchema.method('fetchV1Data', async function (callback) { const url = `${settings.apis.v1.url}/universities/list/${this.v1Id}` - request.get( - { url, timeout: settings.apis.v1.timeout }, - (error, response, body) => { - let parsedBody - try { - parsedBody = JSON.parse(body) - } catch (error1) { - // log error and carry on without v1 data - error = error1 - logger.err( - { model: 'Institution', v1Id: this.v1Id, error }, - '[fetchV1DataError]' - ) - } - this.name = parsedBody != null ? parsedBody.name : undefined - this.countryCode = - parsedBody != null ? parsedBody.country_code : undefined - this.departments = parsedBody != null ? parsedBody.departments : undefined - this.portalSlug = parsedBody != null ? parsedBody.portal_slug : undefined - callback(null, this) - } - ) + try { + const parsedBody = await fetchJson(url) + this.name = parsedBody != null ? parsedBody.name : undefined + this.countryCode = parsedBody != null ? parsedBody.country_code : undefined + this.departments = parsedBody != null ? parsedBody.departments : undefined + this.portalSlug = parsedBody != null ? parsedBody.portal_slug : undefined + } catch (error) { + // log error and carry on without v1 data + logger.err( + { model: 'Institution', v1Id: this.v1Id, error }, + '[fetchV1DataError]' + ) + } + callback(null, this) }) InstitutionSchema.method(