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..b139c66 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, };