From 1c7dc2bec81b3e07d5ef7844fcbd742f209b58a2 Mon Sep 17 00:00:00 2001 From: Tom Wier Date: Fri, 18 Oct 2024 16:29:40 +0300 Subject: [PATCH] fix(#138): sonar complexity fix --- mediator/src/utils/openmrs_sync.ts | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/mediator/src/utils/openmrs_sync.ts b/mediator/src/utils/openmrs_sync.ts index 96b83af4..38283285 100644 --- a/mediator/src/utils/openmrs_sync.ts +++ b/mediator/src/utils/openmrs_sync.ts @@ -83,8 +83,18 @@ export async function compare( // get the key for each resource and create a Map const fhirIds = new Map(comparison.fhirResources.map(resource => [getKey(resource), resource])); - // dont sync resources created with 2 * SYNC_INTERVAL of start time - let syncWindow = (Number(SYNC_INTERVAL) * 1000) * 2 + function isValidDate(resource: fhir4.Resource) { + // if lastUpdated is not valid, cannot proceed, throw an error + const lastUpdated = new Date(resource.meta?.lastUpdated!); + if (isNaN(lastUpdated.getTime()) || isNaN(startTime.getTime())) { + throw new Error("Invalid date format"); + } + + // dont sync resources created with 2 * SYNC_INTERVAL of start time + const syncWindow = (Number(SYNC_INTERVAL) * 1000) * 2 + const diff = lastUpdated.getTime() - startTime.getTime(); + return diff > syncWindow; + } comparison.openMRSResources.forEach((openMRSResource) => { const key = getKey(openMRSResource); @@ -93,24 +103,14 @@ export async function compare( results.toupdate.push(openMRSResource); fhirIds.delete(key); } else { - const lastUpdated = new Date(openMRSResource.meta?.lastUpdated!); - if (isNaN(lastUpdated.getTime()) || isNaN(startTime.getTime())) { - throw new Error("Invalid date format"); - } - const diff = lastUpdated.getTime() - startTime.getTime(); - if (diff > syncWindow){ + if (isValidDate(openMRSResource)){ results.incoming.push(openMRSResource); } } }); fhirIds.forEach((resource, key) => { - const lastUpdated = new Date(resource.meta?.lastUpdated || ''); - if (isNaN(lastUpdated.getTime()) || isNaN(startTime.getTime())) { - throw new Error("Invalid date format"); - } - const diff = lastUpdated.getTime() - startTime.getTime(); - if (diff > syncWindow){ + if (isValidDate(resource)) { results.outgoing.push(resource); } });