Skip to content

Commit

Permalink
refactor(ApiEventKinds): Refactors Feature Import realted ApiEventKin…
Browse files Browse the repository at this point in the history
…ds to be include "project." prefix
  • Loading branch information
KevSanchez committed Apr 16, 2024
1 parent 44e71bc commit fe9087c
Show file tree
Hide file tree
Showing 7 changed files with 75 additions and 23 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import { MigrationInterface, QueryRunner } from 'typeorm';

export class RefactorFeatureImportApiEventKinds1713199859318
implements MigrationInterface
{
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`
INSERT INTO api_event_kinds VALUES
('project.features.csv.import.submitted/v1/alpha'),
('project.features.csv.import.finished/v1/alpha'),
('project.features.csv.import.failed/v1/alpha'),
('project.features.shapefile.import.submitted/v1/alpha'),
('project.features.shapefile.import.finished/v1/alpha'),
('project.features.shapefile.import.failed/v1/alpha');
UPDATE api_events set kind = 'project.' || kind where kind like 'features.%';
DELETE FROM api_event_kinds WHERE id like 'features.%';
`);
}

public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`
INSERT INTO api_event_kinds VALUES
('features.csv.import.submitted/v1/alpha'),
('features.csv.import.finished/v1/alpha'),
('features.csv.import.failed/v1/alpha'),
('features.shapefile.import.submitted/v1/alpha'),
('features.shapefile.import.finished/v1/alpha'),
('features.shapefile.import.failed/v1/alpha');
UPDATE api_events set kind = REPLACE(id, 'project.features.', 'features.' ) where kind like 'project.features.%';
DELETE FROM api_event_kinds WHERE id like 'project.features.%';
`);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ export class FeatureShapefileImportApiEvents
API_EVENT_KINDS
> = {
[FeatureShapefileImportState.FeatureShapefileSubmitted]:
API_EVENT_KINDS.features__shapefile__import__submitted__v1__alpha,
API_EVENT_KINDS.project__features__shapefile__import__submitted__v1__alpha,
[FeatureShapefileImportState.FeatureShapefileFinished]:
API_EVENT_KINDS.features__shapefile__import__finished__v1__alpha,
API_EVENT_KINDS.project__features__shapefile__import__finished__v1__alpha,
[FeatureShapefileImportState.FeatureShapefileFailed]:
API_EVENT_KINDS.features__shapefile__import__failed__v1__alpha,
API_EVENT_KINDS.project__features__shapefile__import__failed__v1__alpha,
};

async event(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,12 @@ import { API_EVENT_KINDS } from '@marxan/api-events';
export class FeatureCSVImportEventsService {
eventId!: string;

submit = () => API_EVENT_KINDS.features__csv__import__submitted__v1__alpha;
finish = () => API_EVENT_KINDS.features__csv__import__finished__v1__alpha;
fail = () => API_EVENT_KINDS.features__csv__import__failed__v1__alpha;
submit = () =>
API_EVENT_KINDS.project__features__csv__import__submitted__v1__alpha;
finish = () =>
API_EVENT_KINDS.project__features__csv__import__finished__v1__alpha;
fail = () =>
API_EVENT_KINDS.project__features__csv__import__failed__v1__alpha;

constructor(private readonly apiEvents: ApiEventsService) {}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,4 +121,16 @@ const eventToJobStatusMapping: Record<
ApiEventJobStatus.running,
[API_EVENT_KINDS.project__costSurface_shapeConversionFailed__v1alpha1]:
ApiEventJobStatus.failure,
[API_EVENT_KINDS.project__features__csv__import__submitted__v1__alpha]:
ApiEventJobStatus.running,
[API_EVENT_KINDS.project__features__csv__import__failed__v1__alpha]:
ApiEventJobStatus.failure,
[API_EVENT_KINDS.project__features__csv__import__finished__v1__alpha]:
ApiEventJobStatus.done,
[API_EVENT_KINDS.project__features__shapefile__import__submitted__v1__alpha]:
ApiEventJobStatus.running,
[API_EVENT_KINDS.project__features__shapefile__import__failed__v1__alpha]:
ApiEventJobStatus.failure,
[API_EVENT_KINDS.project__features__shapefile__import__finished__v1__alpha]:
ApiEventJobStatus.done,
};
10 changes: 5 additions & 5 deletions api/apps/api/test/upload-feature/upload-feature-csv.e2e-spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ test('custom feature csv upload with missing puids', async () => {
await fixtures.ThenCSVImportSubmitEventWasSubmitted(fixtures.projectId);
const event = await fixtures.ThenWaitForApiEvent(
fixtures.projectId,
API_EVENT_KINDS.features__csv__import__failed__v1__alpha,
API_EVENT_KINDS.project__features__csv__import__failed__v1__alpha,
);
fixtures.ThenMissingPUIDErrorIsReturned(event);
await fixtures.AndNoFeatureUploadIsRegistered();
Expand All @@ -55,7 +55,7 @@ test('custom feature csv upload with no features', async () => {
await fixtures.ThenCSVImportSubmitEventWasSubmitted(fixtures.projectId);
const event = await fixtures.ThenWaitForApiEvent(
fixtures.projectId,
API_EVENT_KINDS.features__csv__import__failed__v1__alpha,
API_EVENT_KINDS.project__features__csv__import__failed__v1__alpha,
);
fixtures.ThenNoFeaturesInCsvFileErrorIsReturned(event);
await fixtures.AndNoFeatureUploadIsRegistered();
Expand All @@ -69,7 +69,7 @@ test('custom feature csv upload with duplicated puids', async () => {
await fixtures.ThenCSVImportSubmitEventWasSubmitted(fixtures.projectId);
const event = await fixtures.ThenWaitForApiEvent(
fixtures.projectId,
API_EVENT_KINDS.features__csv__import__failed__v1__alpha,
API_EVENT_KINDS.project__features__csv__import__failed__v1__alpha,
);
fixtures.ThenDuplicatedPUIDErrorIsReturned(event);
await fixtures.AndNoFeatureUploadIsRegistered();
Expand All @@ -83,7 +83,7 @@ test('custom feature csv with puids not present in the project', async () => {
await fixtures.ThenCSVImportSubmitEventWasSubmitted(fixtures.projectId);
const event = await fixtures.ThenWaitForApiEvent(
fixtures.projectId,
API_EVENT_KINDS.features__csv__import__failed__v1__alpha,
API_EVENT_KINDS.project__features__csv__import__failed__v1__alpha,
);
fixtures.ThenPuidsNotPresentErrorIsReturned(event);
await fixtures.AndNoFeatureUploadIsRegistered();
Expand All @@ -97,7 +97,7 @@ test('custom feature csv upload with duplicated header', async () => {
await fixtures.ThenCSVImportSubmitEventWasSubmitted(fixtures.projectId);
const event = await fixtures.ThenWaitForApiEvent(
fixtures.projectId,
API_EVENT_KINDS.features__csv__import__failed__v1__alpha,
API_EVENT_KINDS.project__features__csv__import__failed__v1__alpha,
);

fixtures.ThenDuplicatedHeaderErrorIsReturned(event);
Expand Down
12 changes: 6 additions & 6 deletions api/apps/api/test/upload-feature/upload-feature.fixtures.ts
Original file line number Diff line number Diff line change
Expand Up @@ -294,43 +294,43 @@ export const getFixtures = async () => {
await waitForEvent(
apiEventService,
topic,
API_EVENT_KINDS.features__csv__import__submitted__v1__alpha,
API_EVENT_KINDS.project__features__csv__import__submitted__v1__alpha,
);
},
ThenCSVImportFinishedEventWasSubmitted: async (topic: string) => {
await waitForEvent(
apiEventService,
topic,
API_EVENT_KINDS.features__csv__import__finished__v1__alpha,
API_EVENT_KINDS.project__features__csv__import__finished__v1__alpha,
);
},
ThenCSVImportFailedEventWasSubmitted: async (topic: string) => {
await waitForEvent(
apiEventService,
topic,
API_EVENT_KINDS.features__csv__import__failed__v1__alpha,
API_EVENT_KINDS.project__features__csv__import__failed__v1__alpha,
);
},

ThenShapefileImportSubmittedEventWasSubmitted: async (topic: string) => {
await waitForEvent(
apiEventService,
topic,
API_EVENT_KINDS.features__shapefile__import__submitted__v1__alpha,
API_EVENT_KINDS.project__features__shapefile__import__submitted__v1__alpha,
);
},
ThenShapefileImportFinishedEventWasSubmitted: async (topic: string) => {
await waitForEvent(
apiEventService,
topic,
API_EVENT_KINDS.features__shapefile__import__finished__v1__alpha,
API_EVENT_KINDS.project__features__shapefile__import__finished__v1__alpha,
);
},
ThenShapefileImportFailedEventWasSubmitted: async (topic: string) => {
await waitForEvent(
apiEventService,
topic,
API_EVENT_KINDS.features__shapefile__import__failed__v1__alpha,
API_EVENT_KINDS.project__features__shapefile__import__failed__v1__alpha,
);
},

Expand Down
12 changes: 6 additions & 6 deletions api/libs/api-events/src/api-event-kinds.enum.ts
Original file line number Diff line number Diff line change
Expand Up @@ -101,12 +101,12 @@ export enum API_EVENT_KINDS {
project__legacy__import__piece__submitted__v1__alpha = 'project.legacy.import.piece.submitted/v1/alpha',
project__legacy__import__piece__finished__v1__alpha = 'project.legacy.import.piece.finished/v1/alpha',
project__legacy__import__piece__failed__v1__alpha = 'project.legacy.import.piece.failed/v1/alpha',
features__csv__import__submitted__v1__alpha = 'features.csv.import.submitted/v1/alpha',
features__csv__import__finished__v1__alpha = 'features.csv.import.finished/v1/alpha',
features__csv__import__failed__v1__alpha = 'features.csv.import.failed/v1/alpha',
features__shapefile__import__submitted__v1__alpha = 'features.shapefile.import.submitted/v1/alpha',
features__shapefile__import__finished__v1__alpha = 'features.shapefile.import.finished/v1/alpha',
features__shapefile__import__failed__v1__alpha = 'features.shapefile.import.failed/v1/alpha',
project__features__csv__import__submitted__v1__alpha = 'project.features.csv.import.submitted/v1/alpha',
project__features__csv__import__finished__v1__alpha = 'project.features.csv.import.finished/v1/alpha',
project__features__csv__import__failed__v1__alpha = 'project.features.csv.import.failed/v1/alpha',
project__features__shapefile__import__submitted__v1__alpha = 'project.features.shapefile.import.submitted/v1/alpha',
project__features__shapefile__import__finished__v1__alpha = 'project.features.shapefile.import.finished/v1/alpha',
project__features__shapefile__import__failed__v1__alpha = 'project.features.shapefile.import.failed/v1/alpha',
}

export type ProjectEvents = Pick<
Expand Down

0 comments on commit fe9087c

Please sign in to comment.