From c4749e5d9e6c3310bca0e34949a8d20661254c9e Mon Sep 17 00:00:00 2001 From: razbroc Date: Mon, 2 Feb 2026 14:18:48 +0200 Subject: [PATCH 1/2] fix: update PolygonPartsProcessPayload to include shouldClearEntities and adjust job processing logic --- src/common/interfaces.ts | 2 +- src/job/models/ingestion/newJobHandler.ts | 4 ++-- src/job/models/ingestion/swapJobHandler.ts | 4 ++-- src/job/models/ingestion/updateJobHandler.ts | 4 ++-- .../polygonPartMangerClient.spec.ts | 20 +++++++++++++++++-- 5 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/common/interfaces.ts b/src/common/interfaces.ts index 5b4a960..3af8c87 100644 --- a/src/common/interfaces.ts +++ b/src/common/interfaces.ts @@ -344,7 +344,7 @@ export type CatalogUpdateMetadata = Partial; //#endregion catalogClient //#region PolygonPartsManagerClient -export type PolygonPartsProcessPayload = Pick; +export type PolygonPartsProcessPayload = Pick & { shouldClearEntities?: boolean }; //#endregion PolygonPartsManagerClient //#region seedingJobCreator diff --git a/src/job/models/ingestion/newJobHandler.ts b/src/job/models/ingestion/newJobHandler.ts index 6a09dc5..1823beb 100644 --- a/src/job/models/ingestion/newJobHandler.ts +++ b/src/job/models/ingestion/newJobHandler.ts @@ -120,8 +120,8 @@ export class NewJobHandler activeSpan?.addEvent('layerNames.valid', { layerName }); if (!processedParts) { - const { type, resourceId, productType } = job; - await this.polygonPartsMangerClient.process({ jobType: type, productId: resourceId, productType }); + const { resourceId, productType } = job; + await this.polygonPartsMangerClient.process({ productId: resourceId, productType }); finalizeTaskParams = await this.markFinalizeStepAsCompleted(job.id, task.id, finalizeTaskParams, 'processedParts'); activeSpan?.addEvent('processPolygonParts.success', { ...finalizeTaskParams }); diff --git a/src/job/models/ingestion/swapJobHandler.ts b/src/job/models/ingestion/swapJobHandler.ts index fc651fd..38bebb9 100644 --- a/src/job/models/ingestion/swapJobHandler.ts +++ b/src/job/models/ingestion/swapJobHandler.ts @@ -117,9 +117,9 @@ export class SwapJobHandler const { tileOutputFormat, displayPath } = job.parameters.additionalParams; if (!processedParts) { - const { type, resourceId, productType } = job; + const { resourceId, productType } = job; - await this.polygonPartsMangerClient.process({ jobType: type, productId: resourceId, productType }); + await this.polygonPartsMangerClient.process({ shouldClearEntities: true, productId: resourceId, productType }); finalizeTaskParams = await this.markFinalizeStepAsCompleted(job.id, task.id, finalizeTaskParams, 'processedParts'); activeSpan?.addEvent('processPolygonParts.success', { ...finalizeTaskParams }); diff --git a/src/job/models/ingestion/updateJobHandler.ts b/src/job/models/ingestion/updateJobHandler.ts index 9de9fe8..e427759 100644 --- a/src/job/models/ingestion/updateJobHandler.ts +++ b/src/job/models/ingestion/updateJobHandler.ts @@ -106,9 +106,9 @@ export class UpdateJobHandler activeSpan?.addEvent('layerNameFormat.valid', { layerName: layerNameFormats.layerName }); if (!processedParts) { - const { type, resourceId, productType } = job; + const { resourceId, productType } = job; - await this.polygonPartsMangerClient.process({ jobType: type, productId: resourceId, productType }); + await this.polygonPartsMangerClient.process({ productId: resourceId, productType }); finalizeTaskParams = await this.markFinalizeStepAsCompleted(job.id, task.id, finalizeTaskParams, 'processedParts'); activeSpan?.addEvent('processPolygonParts.success', { ...finalizeTaskParams }); diff --git a/tests/unit/httpClients/polygonPartMangerClient.spec.ts b/tests/unit/httpClients/polygonPartMangerClient.spec.ts index 9d90984..810a994 100644 --- a/tests/unit/httpClients/polygonPartMangerClient.spec.ts +++ b/tests/unit/httpClients/polygonPartMangerClient.spec.ts @@ -25,7 +25,24 @@ describe('polygonPartsManagerClient', () => { const baseUrl = configMock.get('servicesUrl.polygonPartsManager'); const payload: PolygonPartsProcessPayload = { - jobType: 'Ingestion_New', + productId: 'test_layer', + productType: RasterProductTypes.ORTHOPHOTO, + }; + const url = '/polygonParts/process'; + nock(baseUrl).put(url, payload).reply(200); + + const action = polygonPartsManagerClient.process(payload); + + await expect(action).resolves.toBeUndefined(); + expect(nock.isDone()).toBe(true); + }); + + it('should process polygon parts and replacing old data successfully', async () => { + polygonPartsManagerClient = new PolygonPartsMangerClient(configMock, jsLogger({ enabled: false })); + + const baseUrl = configMock.get('servicesUrl.polygonPartsManager'); + const payload: PolygonPartsProcessPayload = { + shouldClearEntities: true, productId: 'test_layer', productType: RasterProductTypes.ORTHOPHOTO, }; @@ -43,7 +60,6 @@ describe('polygonPartsManagerClient', () => { const baseUrl = configMock.get('servicesUrl.polygonPartsManager'); const payload: PolygonPartsProcessPayload = { - jobType: 'Ingestion_New', productId: 'test_layer', productType: RasterProductTypes.ORTHOPHOTO, }; From a3e116983a3a0abe92bc9e76907c67afadc15fac Mon Sep 17 00:00:00 2001 From: razbroc Date: Mon, 2 Feb 2026 15:02:00 +0200 Subject: [PATCH 2/2] fix: correct indentation in polygonPartsManagerClient test for clarity --- tests/unit/httpClients/polygonPartMangerClient.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/httpClients/polygonPartMangerClient.spec.ts b/tests/unit/httpClients/polygonPartMangerClient.spec.ts index 810a994..b139c66 100644 --- a/tests/unit/httpClients/polygonPartMangerClient.spec.ts +++ b/tests/unit/httpClients/polygonPartMangerClient.spec.ts @@ -37,7 +37,7 @@ describe('polygonPartsManagerClient', () => { expect(nock.isDone()).toBe(true); }); - it('should process polygon parts and replacing old data successfully', async () => { + it('should process polygon parts and replacing old data successfully', async () => { polygonPartsManagerClient = new PolygonPartsMangerClient(configMock, jsLogger({ enabled: false })); const baseUrl = configMock.get('servicesUrl.polygonPartsManager');