From a08faf515cf0ed5c1692daef101d65b9d2e7a2a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daute=20Rodr=C3=ADguez=20Rodr=C3=ADguez?= Date: Mon, 18 Apr 2022 15:35:41 +0100 Subject: [PATCH 1/2] feat: added volume for cloning files storage --- api/api.Dockerfile | 3 +++ .../config/custom-environment-variables.json | 3 +++ api/apps/api/config/default.json | 13 +++++----- .../config/custom-environment-variables.json | 3 +++ api/apps/geoprocessing/config/default.json | 5 +++- api/geo.Dockerfile | 3 +++ .../files-repository/src/file-repo.config.ts | 26 ------------------- .../src/file-repository.module.ts | 19 ++++++-------- .../src/file-upload.service.spec.ts | 18 ------------- .../files-repository/src/file.repository.ts | 18 +++++-------- .../src/temp-storage.repository.ts | 22 +++++++--------- docker-compose.yml | 9 ++++--- 12 files changed, 52 insertions(+), 90 deletions(-) delete mode 100644 api/libs/files-repository/src/file-repo.config.ts delete mode 100644 api/libs/files-repository/src/file-upload.service.spec.ts diff --git a/api/api.Dockerfile b/api/api.Dockerfile index ddf8fdd1ac..c9fe505d7d 100644 --- a/api/api.Dockerfile +++ b/api/api.Dockerfile @@ -19,6 +19,9 @@ COPY --chown=$USER:$USER nodemon.json tsconfig.json tsconfig.build.json nest-cli COPY --chown=$USER:$USER apps ./apps COPY --chown=$USER:$USER libs ./libs +RUN mkdir -p /opt/marxan-project-cloning +RUN chown -R $USER:$USER /opt/marxan-project-cloning + RUN yarn prestart:prod EXPOSE 3000 diff --git a/api/apps/api/config/custom-environment-variables.json b/api/apps/api/config/custom-environment-variables.json index 90659a1249..c2e523f79b 100644 --- a/api/apps/api/config/custom-environment-variables.json +++ b/api/apps/api/config/custom-environment-variables.json @@ -53,6 +53,9 @@ "sharedFileStorage": { "localPath": "API_SHARED_FILE_STORAGE_LOCAL_PATH", "cleanupTemporaryFolders": "BACKEND_CLEANUP_TEMPORARY_FOLDERS" + }, + "cloningFileStorage": { + "localPath": "CLONING_FILE_STORAGE_LOCAL_PATH" } }, "marxan": { diff --git a/api/apps/api/config/default.json b/api/apps/api/config/default.json index f8f487786a..4bc4439081 100644 --- a/api/apps/api/config/default.json +++ b/api/apps/api/config/default.json @@ -4,9 +4,7 @@ }, "network": { "cors": { - "origins": [ - "http://localhost:3010" - ] + "origins": ["http://localhost:3010"] } }, "redis": { @@ -14,7 +12,7 @@ "port": 6379, "password": null, "useTLS": false, - "concurrency" : 50 + "concurrency": 50 }, "postgresApi": { "url": null, @@ -60,6 +58,9 @@ "storage": { "sharedFileStorage": { "localPath": "/tmp/storage" + }, + "cloningFileStorage": { + "localPath": "/opt/marxan-project-cloning" } }, "marxan": { @@ -77,8 +78,7 @@ } }, "fileUploads": { - "limits": { - } + "limits": {} }, "sparkpost": { "apikey": "invalidSparkpostApikey", @@ -95,4 +95,3 @@ "tokenPrefix": "/auth/sign-up-confirmation?token=" } } - diff --git a/api/apps/geoprocessing/config/custom-environment-variables.json b/api/apps/geoprocessing/config/custom-environment-variables.json index aad3d0c3f9..2b200d9007 100644 --- a/api/apps/geoprocessing/config/custom-environment-variables.json +++ b/api/apps/geoprocessing/config/custom-environment-variables.json @@ -45,6 +45,9 @@ "sharedFileStorage": { "localPath": "API_SHARED_FILE_STORAGE_LOCAL_PATH", "cleanupTemporaryFolders": "BACKEND_CLEANUP_TEMPORARY_FOLDERS" + }, + "cloningFileStorage": { + "localPath": "CLONING_FILE_STORAGE_LOCAL_PATH" } }, "fileUploads": { diff --git a/api/apps/geoprocessing/config/default.json b/api/apps/geoprocessing/config/default.json index c4cc3ad512..07cc362e70 100644 --- a/api/apps/geoprocessing/config/default.json +++ b/api/apps/geoprocessing/config/default.json @@ -4,7 +4,7 @@ "host": "marxan-redis", "port": 6379, "password": null, - "concurrency" : 50 + "concurrency": 50 }, "postgresApi": { "url": null, @@ -38,6 +38,9 @@ "sharedFileStorage": { "localPath": "/tmp/storage", "cleanupTemporaryFolders": true + }, + "cloningFileStorage": { + "localPath": "/opt/marxan-project-cloning" } }, "fileUploads": { diff --git a/api/geo.Dockerfile b/api/geo.Dockerfile index e7e74a27db..da771d7d06 100644 --- a/api/geo.Dockerfile +++ b/api/geo.Dockerfile @@ -10,6 +10,9 @@ RUN addgroup $USER && adduser -s /bin/bash -D -G $USER $USER WORKDIR $APP_HOME RUN chown $USER:$USER $APP_HOME +RUN mkdir -p /opt/marxan-project-cloning +RUN chown -R $USER:$USER /opt/marxan-project-cloning + USER $USER COPY package.json yarn.lock ./ diff --git a/api/libs/files-repository/src/file-repo.config.ts b/api/libs/files-repository/src/file-repo.config.ts deleted file mode 100644 index 82e27a1ce1..0000000000 --- a/api/libs/files-repository/src/file-repo.config.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { IsString, validateSync } from 'class-validator'; -import { plainToClass } from 'class-transformer'; - -export class FileRepoConfig { - @IsString() - API_SHARED_FILE_STORAGE_LOCAL_PATH!: string; -} - -export const validate = (config: Record) => { - const validatedConfig = plainToClass( - FileRepoConfig, - { - API_SHARED_FILE_STORAGE_LOCAL_PATH: '/tmp/storage', - ...config, - }, - { - enableImplicitConversion: true, - }, - ); - const errors = validateSync(validatedConfig); - - if (errors.length > 0) { - throw new Error(errors.toString()); - } - return validatedConfig; -}; diff --git a/api/libs/files-repository/src/file-repository.module.ts b/api/libs/files-repository/src/file-repository.module.ts index 8b136209f3..c59bd0b882 100644 --- a/api/libs/files-repository/src/file-repository.module.ts +++ b/api/libs/files-repository/src/file-repository.module.ts @@ -1,18 +1,15 @@ -import { HttpModule, Module } from '@nestjs/common'; -import { ConfigModule } from '@nestjs/config'; - -import { FileRepository } from './file.repository'; -import { validate } from './file-repo.config'; +import { Module } from '@nestjs/common'; +import { AppConfig } from '../../../apps/api/src/utils/config.utils'; +import { CloningStoragePath, FileRepository } from './file.repository'; import { TempStorageRepository } from './temp-storage.repository'; @Module({ - imports: [ - HttpModule, - ConfigModule.forRoot({ - validate, - }), - ], + imports: [], providers: [ + { + provide: CloningStoragePath, + useValue: AppConfig.get('storage.cloningFileStorage.localPath'), + }, { provide: FileRepository, /** diff --git a/api/libs/files-repository/src/file-upload.service.spec.ts b/api/libs/files-repository/src/file-upload.service.spec.ts deleted file mode 100644 index b8f0ac420f..0000000000 --- a/api/libs/files-repository/src/file-upload.service.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { FileRepository } from './file.repository'; - -describe('FileUploadService', () => { - let service: FileRepository; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - providers: [FileRepository], - }).compile(); - - service = module.get(FileRepository); - }); - - it('should be defined', () => { - expect(service).toBeDefined(); - }); -}); diff --git a/api/libs/files-repository/src/file.repository.ts b/api/libs/files-repository/src/file.repository.ts index 2e52b54573..0edfb1d601 100644 --- a/api/libs/files-repository/src/file.repository.ts +++ b/api/libs/files-repository/src/file.repository.ts @@ -1,6 +1,7 @@ -import { Injectable } from '@nestjs/common'; +import { Either } from 'fp-ts/Either'; import { Readable } from 'stream'; -import { Either, left } from 'fp-ts/Either'; + +export const CloningStoragePath = Symbol('cloning storage path'); export const unknownError = Symbol(`unknown error`); export const storageNotReachable = Symbol(`storage not reachable`); @@ -17,16 +18,11 @@ export type GetFileError = | typeof fileNotFound | typeof hackerFound; -@Injectable() -export class FileRepository { - async save( +export abstract class FileRepository { + abstract save( stream: Readable, extension?: string, - ): Promise> { - return left(storageNotReachable); - } + ): Promise>; - async get(uri: string): Promise> { - return left(storageNotReachable); - } + abstract get(uri: string): Promise>; } diff --git a/api/libs/files-repository/src/temp-storage.repository.ts b/api/libs/files-repository/src/temp-storage.repository.ts index 6cb61d1556..45da8a0251 100644 --- a/api/libs/files-repository/src/temp-storage.repository.ts +++ b/api/libs/files-repository/src/temp-storage.repository.ts @@ -1,29 +1,25 @@ -import { Injectable } from '@nestjs/common'; -import { Readable } from 'stream'; +import { Inject, Injectable } from '@nestjs/common'; import { Either, left, right } from 'fp-ts/Either'; import { createReadStream, createWriteStream } from 'fs'; -import { ConfigService } from '@nestjs/config'; - +import { Readable } from 'stream'; +import { v4 } from 'uuid'; import { + CloningStoragePath, FileRepository, GetFileError, hackerFound, SaveFileError, unknownError, } from './file.repository'; -import { FileRepoConfig } from './file-repo.config'; -import { v4 } from 'uuid'; @Injectable() export class TempStorageRepository implements FileRepository { - readonly #storage: string; - - constructor(readonly config: ConfigService) { - this.#storage = config.get('API_SHARED_FILE_STORAGE_LOCAL_PATH'); - } + constructor( + @Inject(CloningStoragePath) private readonly storagePath: string, + ) {} async get(uri: string): Promise> { - if (!uri.startsWith(this.#storage)) { + if (!uri.startsWith(this.storagePath)) { return left(hackerFound); } @@ -37,7 +33,7 @@ export class TempStorageRepository implements FileRepository { extension?: string, ): Promise> { const name = v4() + `${extension ? `.${extension}` : ''}`; - const path = this.#storage + `/` + name; + const path = this.storagePath + `/` + name; const writer = createWriteStream(path); return new Promise((resolve) => { diff --git a/docker-compose.yml b/docker-compose.yml index 125e553926..1e222a6e63 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -12,6 +12,7 @@ services: - ./api/apps:/opt/marxan-api/apps - ./api/libs:/opt/marxan-api/libs - marxan-cloud-backend-temp-storage:/tmp/storage + - marxan-cloud-backend-cloning-storage:/opt/marxan-project-cloning env_file: .env environment: - NODE_PATH=src @@ -61,6 +62,7 @@ services: - ./api/apps:/opt/marxan-geoprocessing/apps - ./api/libs:/opt/marxan-geoprocessing/libs - marxan-cloud-backend-temp-storage:/tmp/storage + - marxan-cloud-backend-cloning-storage:/opt/marxan-project-cloning env_file: .env environment: - NODE_PATH=src @@ -94,7 +96,6 @@ services: volumes: - ./webshot/src:/opt/marxan-webshot/src - postgresql-api: build: context: ./postgresql @@ -134,7 +135,7 @@ services: dockerfile: Dockerfile hostname: redis container_name: marxan-redis - command: [ "redis-server"] + command: ["redis-server"] ports: - "${REDIS_API_SERVICE_PORT}:6379" restart: on-failure @@ -148,7 +149,7 @@ services: environment: - REDIS_HOSTS=local:marxan-redis:6379 ports: - - '${REDIS_COMMANDER_PORT}:8081' + - "${REDIS_COMMANDER_PORT}:8081" depends_on: - redis @@ -160,3 +161,5 @@ volumes: marxan-cloud-redis-api-data: marxan-cloud-backend-temp-storage: + + marxan-cloud-backend-cloning-storage: From 09647019df4af2c7ca9aee583e42e18780c0a5bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daute=20Rodr=C3=ADguez=20Rodr=C3=ADguez?= Date: Mon, 18 Apr 2022 15:57:26 +0100 Subject: [PATCH 2/2] ref: file repository renamed to cloning files repository --- api/apps/api/src/app.module.ts | 4 +- .../export/adapters/export-adapters.module.ts | 4 +- .../export/adapters/node-archive-creator.ts | 6 +- .../export/application/get-archive.handler.ts | 4 +- .../export/application/get-archive.query.ts | 2 +- .../src/modules/clone/export/export.module.ts | 4 +- .../import/adapters/import-adapters.module.ts | 4 +- .../application/export-config-reader.spec.ts | 2 +- .../clone/infra/import/import.infra.module.ts | 4 +- .../import/upload-export-file.command.ts | 2 +- .../import/upload-export-file.handler.ts | 7 +- .../modules/projects/projects.controller.ts | 6 +- .../src/modules/projects/projects.service.ts | 2 +- .../files-repository.e2e-spec.ts | 16 +- api/apps/api/test/jest-e2e.json | 4 +- .../test/project/get-export-file.e2e-spec.ts | 4 +- .../project/get-latest-export.e2e-spec.ts | 4 +- api/apps/api/test/utils/api-application.ts | 11 +- .../export-config.project-piece-exporter.ts | 4 +- .../export-config.scenario-piece-exporter.ts | 4 +- ...arxan-execution-metadata.piece-exporter.ts | 4 +- .../pieces-exporters.module.ts | 4 +- ...ning-area-custom-geojson.piece-exporter.ts | 4 +- .../planning-area-custom.piece-exporter.ts | 4 +- .../planning-area-gadm.piece-exporter.spec.ts | 12 +- .../planning-area-gadm.piece-exporter.ts | 4 +- ...nning-units-grid-geojson.piece-exporter.ts | 4 +- .../planning-units-grid.piece-exporter.ts | 4 +- .../project-custom-features.piece-exporter.ts | 4 +- ...t-custom-protected-areas.piece-exporter.ts | 4 +- .../project-metadata.piece-exporter.ts | 4 +- .../scenario-features-data.piece-exporter.ts | 4 +- ...o-features-specification.piece-exporter.ts | 4 +- .../scenario-input-folder.piece-exporter.ts | 4 +- .../scenario-metadata.piece-exporter.ts | 4 +- .../scenario-output-folder.piece-exporter.ts | 4 +- ...ario-planning-units-data.piece-exporter.ts | 4 +- ...scenario-protected-areas.piece-exporter.ts | 4 +- .../scenario-run-results.piece-exporter.ts | 4 +- ...arxan-execution-metadata.piece-importer.ts | 4 +- .../pieces-importers.module.ts | 4 +- .../planning-area-custom.piece-importer.ts | 4 +- .../planning-area-gadm.piece-importer.ts | 4 +- .../planning-units-grid.piece-importer.ts | 4 +- .../project-custom-features.piece-importer.ts | 4 +- ...t-custom-protected-areas.piece-importer.ts | 4 +- .../project-metadata.piece-importer.ts | 4 +- .../scenario-features-data.piece-importer.ts | 4 +- ...o-features-specification.piece-importer.ts | 4 +- .../scenario-metadata.piece-importer.ts | 4 +- ...ario-planning-units-data.piece-importer.ts | 4 +- ...scenario-protected-areas.piece-importer.ts | 4 +- .../scenario-run-results.piece-importer.ts | 4 +- .../test/integration/cloning/fixtures.ts | 4 +- ...-config.project-piece-exporter.e2e-spec.ts | 9 +- ...config.scenario-piece-exporter.e2e-spec.ts | 9 +- ...cution-metadata.piece-exporter.e2e-spec.ts | 9 +- ...-custom-geojson.piece-exporter.e2e-spec.ts | 9 +- ...ing-area-custom.piece-exporter.e2e-spec.ts | 9 +- ...nning-area-gadm.piece-exporter.e2e-spec.ts | 9 +- ...ts-grid-geojson.piece-exporter.e2e-spec.ts | 9 +- ...ning-units-grid.piece-exporter.e2e-spec.ts | 9 +- ...custom-features.piece-exporter.e2e-spec.ts | 9 +- ...protected-areas.piece-exporter.e2e-spec.ts | 9 +- ...roject-metadata.piece-exporter.e2e-spec.ts | 9 +- ...o-features-data.piece-exporter.e2e-spec.ts | 9 +- ...s-specification.piece-exporter.e2e-spec.ts | 9 +- ...enario-metadata.piece-exporter.e2e-spec.ts | 9 +- ...ning-units-data.piece-exporter.e2e-spec.ts | 9 +- ...protected-areas.piece-exporter.e2e-spec.ts | 9 +- ...rio-run-results.piece-exporter.e2e-spec.ts | 9 +- ...cution-metadata.piece-importer.e2e-spec.ts | 9 +- ...ing-area-custom.piece-importer.e2e-spec.ts | 9 +- ...nning-area-gadm.piece-importer.e2e-spec.ts | 9 +- ...ning-units-grid.piece-importer.e2e-spec.ts | 9 +- ...custom-features.piece-importer.e2e-spec.ts | 9 +- ...protected-areas.piece-importer.e2e-spec.ts | 9 +- ...roject-metadata.piece-importer.e2e-spec.ts | 9 +- ...o-features-data.piece-importer.e2e-spec.ts | 9 +- ...s-specification.piece-importer.e2e-spec.ts | 9 +- ...enario-metadata.piece-importer.e2e-spec.ts | 9 +- ...ning-units-data.piece-importer.e2e-spec.ts | 9 +- ...protected-areas.piece-importer.e2e-spec.ts | 9 +- ...rio-run-results.piece-importer.e2e-spec.ts | 9 +- api/apps/geoprocessing/test/jest-e2e.json | 4 +- .../src/cloning-files-repository.module.ts | 23 ++ .../src/cloning-files.repository.ts} | 2 +- .../cloning-files-repository/src/index.ts | 13 ++ .../src/volume-cloning-files.repository.ts} | 6 +- .../tsconfig.lib.json | 2 +- .../infrastructure/archive-reader.adapter.ts | 8 +- .../infrastructure/archive-reader.module.ts | 4 +- .../src/infrastructure/archive-reader.port.ts | 2 +- .../src/file-repository.module.ts | 24 -- api/libs/files-repository/src/index.ts | 10 - api/nest-cli.json | 6 +- api/package.json | 4 +- api/tsconfig.json | 211 +++++------------- 98 files changed, 416 insertions(+), 415 deletions(-) create mode 100644 api/libs/cloning-files-repository/src/cloning-files-repository.module.ts rename api/libs/{files-repository/src/file.repository.ts => cloning-files-repository/src/cloning-files.repository.ts} (94%) create mode 100644 api/libs/cloning-files-repository/src/index.ts rename api/libs/{files-repository/src/temp-storage.repository.ts => cloning-files-repository/src/volume-cloning-files.repository.ts} (91%) rename api/libs/{files-repository => cloning-files-repository}/tsconfig.lib.json (76%) delete mode 100644 api/libs/files-repository/src/file-repository.module.ts delete mode 100644 api/libs/files-repository/src/index.ts diff --git a/api/apps/api/src/app.module.ts b/api/apps/api/src/app.module.ts index 3d0d529117..efc586fa0f 100644 --- a/api/apps/api/src/app.module.ts +++ b/api/apps/api/src/app.module.ts @@ -34,7 +34,7 @@ import { ScenarioSpecificationModule } from './modules/scenario-specification'; import { PublishedProjectModule } from '@marxan-api/modules/published-project/published-project.module'; import { BlmValuesModule } from '@marxan-api/modules/blm'; import { AccessControlModule } from '@marxan-api/modules/access-control'; -import { FileRepositoryModule } from '@marxan/files-repository'; +import { CloningFileSRepositoryModule } from '@marxan/cloning-files-repository'; import { CloneModule } from './modules/clone'; @Module({ @@ -69,7 +69,7 @@ import { CloneModule } from './modules/clone'; PublishedProjectModule, BlmValuesModule, AccessControlModule, - FileRepositoryModule, + CloningFileSRepositoryModule, CloneModule, ], controllers: [AppController, PingController], diff --git a/api/apps/api/src/modules/clone/export/adapters/export-adapters.module.ts b/api/apps/api/src/modules/clone/export/adapters/export-adapters.module.ts index e23572a1e8..5dc3f251f3 100644 --- a/api/apps/api/src/modules/clone/export/adapters/export-adapters.module.ts +++ b/api/apps/api/src/modules/clone/export/adapters/export-adapters.module.ts @@ -1,4 +1,4 @@ -import { FileRepositoryModule } from '@marxan/files-repository'; +import { CloningFileSRepositoryModule } from '@marxan/cloning-files-repository'; import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { Project } from '../../../projects/project.api.entity'; @@ -14,7 +14,7 @@ import { TypeormExportRepository } from './typeorm-export.repository'; @Module({ imports: [ - FileRepositoryModule, + CloningFileSRepositoryModule, TypeOrmModule.forFeature([ Project, ExportEntity, diff --git a/api/apps/api/src/modules/clone/export/adapters/node-archive-creator.ts b/api/apps/api/src/modules/clone/export/adapters/node-archive-creator.ts index 737dddae69..657da41fbc 100644 --- a/api/apps/api/src/modules/clone/export/adapters/node-archive-creator.ts +++ b/api/apps/api/src/modules/clone/export/adapters/node-archive-creator.ts @@ -4,7 +4,7 @@ import * as archiver from 'archiver'; import { PassThrough } from 'stream'; import { ArchiveLocation } from '@marxan/cloning/domain'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { ArchiveCreationError, @@ -19,14 +19,14 @@ import { export class NodeArchiveCreator extends ArchiveCreator { private readonly logger = new Logger(this.constructor.name); - constructor(private readonly fileRepository: FileRepository) { + constructor(private readonly fileRepository: CloningFilesRepository) { super(); } async zip( files: { uri: string; relativeDestination: string }[], ): Promise> { - let archivePersistencePromise: ReturnType; + let archivePersistencePromise: ReturnType; const passThrough = new PassThrough(); const onPersistenceFinished = async ( resolvePromise: ( diff --git a/api/apps/api/src/modules/clone/export/application/get-archive.handler.ts b/api/apps/api/src/modules/clone/export/application/get-archive.handler.ts index f6b0f70e06..8cd9c203aa 100644 --- a/api/apps/api/src/modules/clone/export/application/get-archive.handler.ts +++ b/api/apps/api/src/modules/clone/export/application/get-archive.handler.ts @@ -1,4 +1,4 @@ -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { IInferredQueryHandler, QueryHandler } from '@nestjs/cqrs'; import { Either, left } from 'fp-ts/Either'; import { Readable } from 'stream'; @@ -14,7 +14,7 @@ export class GetArchiveHandler implements IInferredQueryHandler { constructor( private readonly exportRepo: ExportRepository, - private readonly fileRepo: FileRepository, + private readonly fileRepo: CloningFilesRepository, ) {} async execute({ diff --git a/api/apps/api/src/modules/clone/export/application/get-archive.query.ts b/api/apps/api/src/modules/clone/export/application/get-archive.query.ts index 774f36137a..e8aef5272d 100644 --- a/api/apps/api/src/modules/clone/export/application/get-archive.query.ts +++ b/api/apps/api/src/modules/clone/export/application/get-archive.query.ts @@ -1,4 +1,4 @@ -import { GetFileError } from '@marxan/files-repository'; +import { GetFileError } from '@marxan/cloning-files-repository'; import { Query } from '@nestjs-architects/typed-cqrs'; import { Either } from 'fp-ts/Either'; import { Readable } from 'stream'; diff --git a/api/apps/api/src/modules/clone/export/export.module.ts b/api/apps/api/src/modules/clone/export/export.module.ts index 6f41d46c71..4754681413 100644 --- a/api/apps/api/src/modules/clone/export/export.module.ts +++ b/api/apps/api/src/modules/clone/export/export.module.ts @@ -1,11 +1,11 @@ -import { FileRepositoryModule } from '@marxan/files-repository'; +import { CloningFileSRepositoryModule } from '@marxan/cloning-files-repository'; import { Module } from '@nestjs/common'; import { ExportAdaptersModule } from './adapters/export-adapters.module'; import { ExportApplicationModule } from './application/export-application.module'; const ExportApplication = ExportApplicationModule.for([ ExportAdaptersModule, - FileRepositoryModule, + CloningFileSRepositoryModule, ]); @Module({ diff --git a/api/apps/api/src/modules/clone/import/adapters/import-adapters.module.ts b/api/apps/api/src/modules/clone/import/adapters/import-adapters.module.ts index 6caaae4938..50eb86ec9e 100644 --- a/api/apps/api/src/modules/clone/import/adapters/import-adapters.module.ts +++ b/api/apps/api/src/modules/clone/import/adapters/import-adapters.module.ts @@ -1,4 +1,4 @@ -import { FileRepositoryModule } from '@marxan/files-repository'; +import { CloningFileSRepositoryModule } from '@marxan/cloning-files-repository'; import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { ImportResourcePieces } from '../application/import-resource-pieces.port'; @@ -16,7 +16,7 @@ import { TypeormImportRepository } from './typeorm-import.repository.adapter'; ImportComponentEntity, ImportComponentLocationEntity, ]), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ { diff --git a/api/apps/api/src/modules/clone/import/application/export-config-reader.spec.ts b/api/apps/api/src/modules/clone/import/application/export-config-reader.spec.ts index b2b801c7e7..e15d2656ef 100644 --- a/api/apps/api/src/modules/clone/import/application/export-config-reader.spec.ts +++ b/api/apps/api/src/modules/clone/import/application/export-config-reader.spec.ts @@ -14,7 +14,7 @@ import { ExportConfigContent, exportVersion, } from '@marxan/cloning/infrastructure/clone-piece-data/export-config'; -import { fileNotFound } from '@marxan/files-repository/file.repository'; +import { fileNotFound } from '@marxan/cloning-files-repository'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Test } from '@nestjs/testing'; import * as archiver from 'archiver'; diff --git a/api/apps/api/src/modules/clone/infra/import/import.infra.module.ts b/api/apps/api/src/modules/clone/infra/import/import.infra.module.ts index 308bc154d7..9b634342d3 100644 --- a/api/apps/api/src/modules/clone/infra/import/import.infra.module.ts +++ b/api/apps/api/src/modules/clone/infra/import/import.infra.module.ts @@ -1,4 +1,4 @@ -import { FileRepositoryModule } from '@marxan/files-repository'; +import { CloningFileSRepositoryModule } from '@marxan/cloning-files-repository'; import { Logger, Module, Scope } from '@nestjs/common'; import { CqrsModule } from '@nestjs/cqrs'; import { ApiEventsModule } from '../../../api-events'; @@ -30,7 +30,7 @@ import { UploadExportFileHandler } from './upload-export-file.handler'; QueueApiEventsModule, CqrsModule, ImportAdaptersModule, - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ PieceImportRequestedSaga, diff --git a/api/apps/api/src/modules/clone/infra/import/upload-export-file.command.ts b/api/apps/api/src/modules/clone/infra/import/upload-export-file.command.ts index c3862b8224..d86df722d6 100644 --- a/api/apps/api/src/modules/clone/infra/import/upload-export-file.command.ts +++ b/api/apps/api/src/modules/clone/infra/import/upload-export-file.command.ts @@ -1,5 +1,5 @@ import { ArchiveLocation } from '@marxan/cloning/domain'; -import { unknownError } from '@marxan/files-repository'; +import { unknownError } from '@marxan/cloning-files-repository'; import { Command } from '@nestjs-architects/typed-cqrs'; import { Either } from 'fp-ts/lib/Either'; diff --git a/api/apps/api/src/modules/clone/infra/import/upload-export-file.handler.ts b/api/apps/api/src/modules/clone/infra/import/upload-export-file.handler.ts index 359c9276f8..a0d63032a5 100644 --- a/api/apps/api/src/modules/clone/infra/import/upload-export-file.handler.ts +++ b/api/apps/api/src/modules/clone/infra/import/upload-export-file.handler.ts @@ -1,5 +1,8 @@ import { ArchiveLocation } from '@marxan/cloning/domain'; -import { FileRepository, unknownError } from '@marxan/files-repository'; +import { + CloningFilesRepository, + unknownError, +} from '@marxan/cloning-files-repository'; import { Logger } from '@nestjs/common'; import { CommandHandler, IInferredCommandHandler } from '@nestjs/cqrs'; import { Either, isLeft, left, right } from 'fp-ts/lib/Either'; @@ -10,7 +13,7 @@ import { UploadExportFile } from './upload-export-file.command'; export class UploadExportFileHandler implements IInferredCommandHandler { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, private readonly logger: Logger, ) { this.logger.setContext(UploadExportFileHandler.name); diff --git a/api/apps/api/src/modules/projects/projects.controller.ts b/api/apps/api/src/modules/projects/projects.controller.ts index 1fb811b2f2..41a008a97d 100644 --- a/api/apps/api/src/modules/projects/projects.controller.ts +++ b/api/apps/api/src/modules/projects/projects.controller.ts @@ -104,12 +104,14 @@ import { } from './dto/export.project.dto'; import { ScenarioLockResultPlural } from '@marxan-api/modules/access-control/scenarios-acl/locks/dto/scenario.lock.dto'; import { RequestProjectImportResponseDto } from './dto/import.project.response.dto'; -import { unknownError as fileRepositoryUnknownError } from '@marxan/files-repository'; +import { + unknownError as fileRepositoryUnknownError, + fileNotFound, +} from '@marxan/cloning-files-repository'; import { archiveCorrupted, invalidFiles, } from '@marxan/cloning/infrastructure/archive-reader.port'; -import { fileNotFound } from '@marxan/files-repository/file.repository'; import { ProxyService } from '@marxan-api/modules/proxy/proxy.service'; import { TilesOpenApi } from '@marxan/tiles'; import { mapAclDomainToHttpError } from '@marxan-api/utils/acl.utils'; diff --git a/api/apps/api/src/modules/projects/projects.service.ts b/api/apps/api/src/modules/projects/projects.service.ts index 9bfea4283c..d935ac6cbc 100644 --- a/api/apps/api/src/modules/projects/projects.service.ts +++ b/api/apps/api/src/modules/projects/projects.service.ts @@ -52,7 +52,7 @@ import { ChangeProjectRangeErrors, } from '@marxan-api/modules/projects/blm'; import { UploadExportFile } from '../clone/infra/import/upload-export-file.command'; -import { unknownError } from '@marxan/files-repository'; +import { unknownError } from '@marxan/cloning-files-repository'; import { ImportProject, ImportProjectCommandResult, diff --git a/api/apps/api/test/files-repository/files-repository.e2e-spec.ts b/api/apps/api/test/files-repository/files-repository.e2e-spec.ts index 89b0d92e81..fc5d9b5d92 100644 --- a/api/apps/api/test/files-repository/files-repository.e2e-spec.ts +++ b/api/apps/api/test/files-repository/files-repository.e2e-spec.ts @@ -5,10 +5,10 @@ import { Test } from '@nestjs/testing'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { - FileRepository, - FileRepositoryModule, - TempStorageRepository, -} from '@marxan/files-repository'; + CloningFilesRepository, + CloningFileSRepositoryModule, + VolumeCloningFilesStorage, +} from '@marxan/cloning-files-repository'; let fixtures: FixtureType; @@ -36,12 +36,12 @@ const getFixtures = async () => { * to avoid communicating with potential storage provider */ const app = await Test.createTestingModule({ - imports: [FileRepositoryModule], + imports: [CloningFileSRepositoryModule], }) - .overrideProvider(FileRepository) - .useClass(TempStorageRepository) + .overrideProvider(CloningFilesRepository) + .useClass(VolumeCloningFilesStorage) .compile(); - const sut = app.get(FileRepository); + const sut = app.get(CloningFilesRepository); return { cleanup: async () => app.close(), diff --git a/api/apps/api/test/jest-e2e.json b/api/apps/api/test/jest-e2e.json index 861885272f..9269e1986c 100644 --- a/api/apps/api/test/jest-e2e.json +++ b/api/apps/api/test/jest-e2e.json @@ -63,8 +63,8 @@ "@marxan/projects": "/../../../libs/projects/src", "@marxan/blm-calibration/(.*)": "/../../../libs/blm-calibration/src/$1", "@marxan/blm-calibration": "/../../../libs/blm-calibration/src", - "@marxan/files-repository/(.*)": "/../../../libs/files-repository/src/$1", - "@marxan/files-repository": "/../../../libs/files-repository/src", + "@marxan/cloning-files-repository/(.*)": "/../../../libs/cloning-files-repository/src/$1", + "@marxan/cloning-files-repository": "/../../../libs/cloning-files-repository/src", "@marxan/cloning/(.*)": "/../../../libs/cloning/src/$1", "@marxan/cloning": "/../../../libs/cloning/src", "@marxan/webshot/(.*)": "../../../libs/webshot/src/$1", diff --git a/api/apps/api/test/project/get-export-file.e2e-spec.ts b/api/apps/api/test/project/get-export-file.e2e-spec.ts index 01ab968231..79adc9c4ab 100644 --- a/api/apps/api/test/project/get-export-file.e2e-spec.ts +++ b/api/apps/api/test/project/get-export-file.e2e-spec.ts @@ -10,7 +10,7 @@ import { } from '@marxan-api/modules/clone/export/domain'; import { PublishedProject } from '@marxan-api/modules/published-project/entities/published-project.api.entity'; import { ComponentId, ComponentLocation } from '@marxan/cloning/domain'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { CommandBus, CqrsModule } from '@nestjs/cqrs'; import { getRepositoryToken } from '@nestjs/typeorm'; @@ -95,7 +95,7 @@ export const getFixtures = async () => { eventBusTestUtils.startInspectingEvents(); const commandBus = app.get(CommandBus); const exportRepo = app.get(ExportRepository); - const fileRepo = app.get(FileRepository); + const fileRepo = app.get(CloningFilesRepository); const userProjectsRepo = app.get>( getRepositoryToken(UsersProjectsApiEntity), ); diff --git a/api/apps/api/test/project/get-latest-export.e2e-spec.ts b/api/apps/api/test/project/get-latest-export.e2e-spec.ts index 498028d59d..d6a982bdf3 100644 --- a/api/apps/api/test/project/get-latest-export.e2e-spec.ts +++ b/api/apps/api/test/project/get-latest-export.e2e-spec.ts @@ -10,7 +10,7 @@ import { } from '@marxan-api/modules/clone/export/domain'; import { PublishedProject } from '@marxan-api/modules/published-project/entities/published-project.api.entity'; import { ComponentId, ComponentLocation } from '@marxan/cloning/domain'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { CommandBus, CqrsModule } from '@nestjs/cqrs'; import { getRepositoryToken } from '@nestjs/typeorm'; @@ -100,7 +100,7 @@ export const getFixtures = async () => { const eventBusTestUtils = app.get(EventBusTestUtils); const commandBus = app.get(CommandBus); const exportRepo = app.get(ExportRepository); - const fileRepo = app.get(FileRepository); + const fileRepo = app.get(CloningFilesRepository); const userProjectsRepo = app.get>( getRepositoryToken(UsersProjectsApiEntity), ); diff --git a/api/apps/api/test/utils/api-application.ts b/api/apps/api/test/utils/api-application.ts index 208a2ef803..75274abf46 100644 --- a/api/apps/api/test/utils/api-application.ts +++ b/api/apps/api/test/utils/api-application.ts @@ -2,9 +2,9 @@ import { AppModule } from '@marxan-api/app.module'; import { ProjectChecker } from '@marxan-api/modules/projects/project-checker/project-checker.service'; import { QueueBuilder } from '@marxan-api/modules/queue/queue.builder'; import { - FileRepository, - TempStorageRepository, -} from '@marxan/files-repository'; + CloningFilesRepository, + VolumeCloningFilesStorage, +} from '@marxan/cloning-files-repository'; import { INestApplication, ValidationPipe } from '@nestjs/common'; import { ModuleMetadata } from '@nestjs/common/interfaces/modules/module-metadata.interface'; import { Test, TestingModuleBuilder } from '@nestjs/testing'; @@ -29,7 +29,10 @@ const defaultOverrides: Overrides = { { provider: QueueBuilder, implementation: FakeQueueBuilder }, { provider: ProjectChecker, implementation: ProjectCheckerFake }, { provider: ScenarioChecker, implementation: ScenarioCheckerFake }, - { provider: FileRepository, implementation: TempStorageRepository }, + { + provider: CloningFilesRepository, + implementation: VolumeCloningFilesStorage, + }, { provider: ScenarioCalibrationRepo, implementation: FakeScenarioCalibrationRepo, diff --git a/api/apps/geoprocessing/src/export/pieces-exporters/export-config.project-piece-exporter.ts b/api/apps/geoprocessing/src/export/pieces-exporters/export-config.project-piece-exporter.ts index 535d789ae4..e4fa6f830d 100644 --- a/api/apps/geoprocessing/src/export/pieces-exporters/export-config.project-piece-exporter.ts +++ b/api/apps/geoprocessing/src/export/pieces-exporters/export-config.project-piece-exporter.ts @@ -6,7 +6,7 @@ import { exportVersion, ProjectExportConfigContent, } from '@marxan/cloning/infrastructure/clone-piece-data/export-config'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { Injectable, Logger } from '@nestjs/common'; import { InjectEntityManager } from '@nestjs/typeorm'; import { isLeft } from 'fp-ts/Either'; @@ -21,7 +21,7 @@ import { @PieceExportProvider() export class ExportConfigProjectPieceExporter implements ExportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.apiDB) private readonly entityManager: EntityManager, private readonly logger: Logger, diff --git a/api/apps/geoprocessing/src/export/pieces-exporters/export-config.scenario-piece-exporter.ts b/api/apps/geoprocessing/src/export/pieces-exporters/export-config.scenario-piece-exporter.ts index c76dca2ec3..a34c980582 100644 --- a/api/apps/geoprocessing/src/export/pieces-exporters/export-config.scenario-piece-exporter.ts +++ b/api/apps/geoprocessing/src/export/pieces-exporters/export-config.scenario-piece-exporter.ts @@ -6,7 +6,7 @@ import { exportVersion, ScenarioExportConfigContent, } from '@marxan/cloning/infrastructure/clone-piece-data/export-config'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { Injectable, Logger } from '@nestjs/common'; import { InjectEntityManager } from '@nestjs/typeorm'; import { isLeft } from 'fp-ts/Either'; @@ -21,7 +21,7 @@ import { @PieceExportProvider() export class ExportConfigScenarioPieceExporter implements ExportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.apiDB) private readonly entityManager: EntityManager, private readonly logger: Logger, diff --git a/api/apps/geoprocessing/src/export/pieces-exporters/marxan-execution-metadata.piece-exporter.ts b/api/apps/geoprocessing/src/export/pieces-exporters/marxan-execution-metadata.piece-exporter.ts index aa10294111..b25632dfb1 100644 --- a/api/apps/geoprocessing/src/export/pieces-exporters/marxan-execution-metadata.piece-exporter.ts +++ b/api/apps/geoprocessing/src/export/pieces-exporters/marxan-execution-metadata.piece-exporter.ts @@ -7,7 +7,7 @@ import { getMarxanExecutionMetadataFolderRelativePath, MarxanExecutionMetadataContent, } from '@marxan/cloning/infrastructure/clone-piece-data/marxan-execution-metadata'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { MarxanExecutionMetadataGeoEntity } from '@marxan/marxan-output'; import { isDefined } from '@marxan/utils'; import { Injectable, Logger } from '@nestjs/common'; @@ -31,7 +31,7 @@ type FolderZipData = { export class MarxanExecutionMetadataPieceExporter implements ExportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.default) private readonly entityManager: EntityManager, private readonly logger: Logger, diff --git a/api/apps/geoprocessing/src/export/pieces-exporters/pieces-exporters.module.ts b/api/apps/geoprocessing/src/export/pieces-exporters/pieces-exporters.module.ts index eccae20314..711ff44f49 100644 --- a/api/apps/geoprocessing/src/export/pieces-exporters/pieces-exporters.module.ts +++ b/api/apps/geoprocessing/src/export/pieces-exporters/pieces-exporters.module.ts @@ -1,6 +1,6 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ScenarioFeaturesData } from '@marxan/features'; -import { FileRepositoryModule } from '@marxan/files-repository'; +import { CloningFileSRepositoryModule } from '@marxan/cloning-files-repository'; import { MarxanExecutionMetadataGeoEntity, OutputScenariosFeaturesDataGeoEntity, @@ -29,7 +29,7 @@ import { ScenarioRunResultsPieceExporter } from './scenario-run-results.piece-ex @Module({ imports: [ - FileRepositoryModule, + CloningFileSRepositoryModule, TypeOrmModule.forFeature([], geoprocessingConnections.apiDB), TypeOrmModule.forFeature( [ diff --git a/api/apps/geoprocessing/src/export/pieces-exporters/planning-area-custom-geojson.piece-exporter.ts b/api/apps/geoprocessing/src/export/pieces-exporters/planning-area-custom-geojson.piece-exporter.ts index bc8e45218b..228447f24a 100644 --- a/api/apps/geoprocessing/src/export/pieces-exporters/planning-area-custom-geojson.piece-exporter.ts +++ b/api/apps/geoprocessing/src/export/pieces-exporters/planning-area-custom-geojson.piece-exporter.ts @@ -2,7 +2,7 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ExportJobInput, ExportJobOutput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; import { ClonePieceUrisResolver } from '@marxan/cloning/infrastructure/clone-piece-data'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { PlanningArea } from '@marxan/planning-area-repository/planning-area.geo.entity'; import { Injectable, Logger } from '@nestjs/common'; import { InjectEntityManager } from '@nestjs/typeorm'; @@ -23,7 +23,7 @@ type PlanningAreaGeojsonSelectResult = { export class PlanningAreaCustomGeojsonPieceExporter implements ExportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.default) private readonly geoprocessingEntityManager: EntityManager, private readonly logger: Logger, diff --git a/api/apps/geoprocessing/src/export/pieces-exporters/planning-area-custom.piece-exporter.ts b/api/apps/geoprocessing/src/export/pieces-exporters/planning-area-custom.piece-exporter.ts index d787da7f92..f35679d859 100644 --- a/api/apps/geoprocessing/src/export/pieces-exporters/planning-area-custom.piece-exporter.ts +++ b/api/apps/geoprocessing/src/export/pieces-exporters/planning-area-custom.piece-exporter.ts @@ -3,7 +3,7 @@ import { ClonePiece, ExportJobInput, ExportJobOutput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; import { ClonePieceUrisResolver } from '@marxan/cloning/infrastructure/clone-piece-data'; import { PlanningAreaCustomContent } from '@marxan/cloning/infrastructure/clone-piece-data/planning-area-custom'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { PlanningArea } from '@marxan/planning-area-repository/planning-area.geo.entity'; import { PlanningUnitGridShape } from '@marxan/scenarios-planning-unit'; import { Injectable, Logger } from '@nestjs/common'; @@ -29,7 +29,7 @@ type ProjectSelectResult = { @PieceExportProvider() export class PlanningAreaCustomPieceExporter implements ExportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.default) private readonly geoprocessingEntityManager: EntityManager, @InjectEntityManager(geoprocessingConnections.apiDB) diff --git a/api/apps/geoprocessing/src/export/pieces-exporters/planning-area-gadm.piece-exporter.spec.ts b/api/apps/geoprocessing/src/export/pieces-exporters/planning-area-gadm.piece-exporter.spec.ts index 834b402fad..27ee70be53 100644 --- a/api/apps/geoprocessing/src/export/pieces-exporters/planning-area-gadm.piece-exporter.spec.ts +++ b/api/apps/geoprocessing/src/export/pieces-exporters/planning-area-gadm.piece-exporter.spec.ts @@ -2,12 +2,12 @@ import { ClonePiece, ExportJobInput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; import { PlanningAreaGadmContent } from '@marxan/cloning/infrastructure/clone-piece-data/planning-area-gadm'; import { - FileRepository, + CloningFilesRepository, GetFileError, SaveFileError, storageNotReachable, unknownError, -} from '@marxan/files-repository'; +} from '@marxan/cloning-files-repository'; import { PlanningUnitGridShape } from '@marxan/scenarios-planning-unit'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Logger } from '@nestjs/common'; @@ -69,7 +69,7 @@ const getFixtures = async () => { providers: [ PlanningAreaGadmPieceExporter, { - provide: FileRepository, + provide: CloningFilesRepository, useClass: FakeFileRepository, }, { @@ -82,7 +82,9 @@ const getFixtures = async () => { await sandbox.init(); const sut = sandbox.get(PlanningAreaGadmPieceExporter); - const fakeFileRepo = sandbox.get(FileRepository) as FakeFileRepository; + const fakeFileRepo = sandbox.get( + CloningFilesRepository, + ) as FakeFileRepository; const fakeEntityManager = sandbox.get( geoprocessingEntityManagerToken, ) as FakeEntityManager; @@ -164,7 +166,7 @@ class FakeEntityManager { } } -class FakeFileRepository implements FileRepository { +class FakeFileRepository implements CloningFilesRepository { private files: Record = {}; public errorWhileSaving = false; diff --git a/api/apps/geoprocessing/src/export/pieces-exporters/planning-area-gadm.piece-exporter.ts b/api/apps/geoprocessing/src/export/pieces-exporters/planning-area-gadm.piece-exporter.ts index 0ceafec739..9579816f7f 100644 --- a/api/apps/geoprocessing/src/export/pieces-exporters/planning-area-gadm.piece-exporter.ts +++ b/api/apps/geoprocessing/src/export/pieces-exporters/planning-area-gadm.piece-exporter.ts @@ -3,7 +3,7 @@ import { ClonePiece, ExportJobInput, ExportJobOutput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; import { ClonePieceUrisResolver } from '@marxan/cloning/infrastructure/clone-piece-data'; import { PlanningAreaGadmContent } from '@marxan/cloning/infrastructure/clone-piece-data/planning-area-gadm'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { PlanningUnitGridShape } from '@marxan/scenarios-planning-unit'; import { Injectable, Logger } from '@nestjs/common'; import { InjectEntityManager } from '@nestjs/typeorm'; @@ -28,7 +28,7 @@ type QueryResult = { @PieceExportProvider() export class PlanningAreaGadmPieceExporter implements ExportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.apiDB) private readonly entityManager: EntityManager, private readonly logger: Logger, diff --git a/api/apps/geoprocessing/src/export/pieces-exporters/planning-units-grid-geojson.piece-exporter.ts b/api/apps/geoprocessing/src/export/pieces-exporters/planning-units-grid-geojson.piece-exporter.ts index c3fe389007..299f71ab40 100644 --- a/api/apps/geoprocessing/src/export/pieces-exporters/planning-units-grid-geojson.piece-exporter.ts +++ b/api/apps/geoprocessing/src/export/pieces-exporters/planning-units-grid-geojson.piece-exporter.ts @@ -7,7 +7,7 @@ import { ClonePiece, ExportJobInput, ExportJobOutput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; import { ClonePieceUrisResolver } from '@marxan/cloning/infrastructure/clone-piece-data'; import { PlanningUnitsGridGeoJsonTransform } from '@marxan/cloning/infrastructure/clone-piece-data/planning-units-grid-geojson'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { Injectable } from '@nestjs/common'; import { InjectEntityManager } from '@nestjs/typeorm'; import { isLeft } from 'fp-ts/Either'; @@ -28,7 +28,7 @@ type ProjectSelectResult = { export class PlanningUnitsGridGeojsonPieceExporter implements ExportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.apiDB) private readonly apiEntityManager: EntityManager, @InjectEntityManager(geoprocessingConnections.default) diff --git a/api/apps/geoprocessing/src/export/pieces-exporters/planning-units-grid.piece-exporter.ts b/api/apps/geoprocessing/src/export/pieces-exporters/planning-units-grid.piece-exporter.ts index f04914fdda..de1dde3284 100644 --- a/api/apps/geoprocessing/src/export/pieces-exporters/planning-units-grid.piece-exporter.ts +++ b/api/apps/geoprocessing/src/export/pieces-exporters/planning-units-grid.piece-exporter.ts @@ -7,7 +7,7 @@ import { ClonePiece, ExportJobInput, ExportJobOutput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; import { ClonePieceUrisResolver } from '@marxan/cloning/infrastructure/clone-piece-data'; import { PlanningUnitsGridTransform } from '@marxan/cloning/infrastructure/clone-piece-data/planning-units-grid'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { Injectable } from '@nestjs/common'; import { InjectEntityManager } from '@nestjs/typeorm'; import { isLeft } from 'fp-ts/Either'; @@ -21,7 +21,7 @@ import { @PieceExportProvider() export class PlanningUnitsGridPieceExporter implements ExportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.apiDB) private readonly apiEntityManager: EntityManager, @InjectEntityManager(geoprocessingConnections.default) diff --git a/api/apps/geoprocessing/src/export/pieces-exporters/project-custom-features.piece-exporter.ts b/api/apps/geoprocessing/src/export/pieces-exporters/project-custom-features.piece-exporter.ts index 8722301641..8eb2566cc6 100644 --- a/api/apps/geoprocessing/src/export/pieces-exporters/project-custom-features.piece-exporter.ts +++ b/api/apps/geoprocessing/src/export/pieces-exporters/project-custom-features.piece-exporter.ts @@ -7,7 +7,7 @@ import { ProjectCustomFeaturesContent, } from '@marxan/cloning/infrastructure/clone-piece-data/project-custom-features'; import { FeatureTag } from '@marxan/features'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { GeometrySource } from '@marxan/geofeatures'; import { Injectable, Logger } from '@nestjs/common'; import { InjectEntityManager } from '@nestjs/typeorm'; @@ -45,7 +45,7 @@ type FeaturesDataSelectResult = { export class ProjectCustomFeaturesPieceExporter implements ExportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.apiDB) private readonly apiEntityManager: EntityManager, @InjectEntityManager(geoprocessingConnections.default) diff --git a/api/apps/geoprocessing/src/export/pieces-exporters/project-custom-protected-areas.piece-exporter.ts b/api/apps/geoprocessing/src/export/pieces-exporters/project-custom-protected-areas.piece-exporter.ts index 53746e4d71..9a02d3fe1a 100644 --- a/api/apps/geoprocessing/src/export/pieces-exporters/project-custom-protected-areas.piece-exporter.ts +++ b/api/apps/geoprocessing/src/export/pieces-exporters/project-custom-protected-areas.piece-exporter.ts @@ -1,7 +1,7 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ExportJobInput, ExportJobOutput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { Injectable, Logger } from '@nestjs/common'; import { InjectEntityManager } from '@nestjs/typeorm'; import { EntityManager } from 'typeorm'; @@ -25,7 +25,7 @@ type ProjectCustomProtectedAreasSelectResult = { export class ProjectCustomProtectedAreasPieceExporter implements ExportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.default) private readonly geoprocessingEntityManager: EntityManager, private readonly logger: Logger, diff --git a/api/apps/geoprocessing/src/export/pieces-exporters/project-metadata.piece-exporter.ts b/api/apps/geoprocessing/src/export/pieces-exporters/project-metadata.piece-exporter.ts index bb415f53da..1a01f4f673 100644 --- a/api/apps/geoprocessing/src/export/pieces-exporters/project-metadata.piece-exporter.ts +++ b/api/apps/geoprocessing/src/export/pieces-exporters/project-metadata.piece-exporter.ts @@ -3,7 +3,7 @@ import { ClonePiece, ExportJobInput, ExportJobOutput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; import { ClonePieceUrisResolver } from '@marxan/cloning/infrastructure/clone-piece-data'; import { ProjectMetadataContent } from '@marxan/cloning/infrastructure/clone-piece-data/project-metadata'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { PlanningUnitGridShape } from '@marxan/scenarios-planning-unit'; import { Injectable, Logger } from '@nestjs/common'; import { InjectEntityManager } from '@nestjs/typeorm'; @@ -19,7 +19,7 @@ import { @PieceExportProvider() export class ProjectMetadataPieceExporter implements ExportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.apiDB) private readonly entityManager: EntityManager, private readonly logger: Logger, diff --git a/api/apps/geoprocessing/src/export/pieces-exporters/scenario-features-data.piece-exporter.ts b/api/apps/geoprocessing/src/export/pieces-exporters/scenario-features-data.piece-exporter.ts index 9c1a0bca51..389d33d784 100644 --- a/api/apps/geoprocessing/src/export/pieces-exporters/scenario-features-data.piece-exporter.ts +++ b/api/apps/geoprocessing/src/export/pieces-exporters/scenario-features-data.piece-exporter.ts @@ -6,7 +6,7 @@ import { ScenarioFeaturesDataContent, } from '@marxan/cloning/infrastructure/clone-piece-data/scenario-features-data'; import { ScenarioFeaturesData } from '@marxan/features'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { OutputScenariosFeaturesDataGeoEntity } from '@marxan/marxan-output'; import { Injectable, Logger } from '@nestjs/common'; import { InjectEntityManager } from '@nestjs/typeorm'; @@ -38,7 +38,7 @@ type FeatureDataElementWithIsCustom = FeatureDataElementWithFeatureId & { @PieceExportProvider() export class ScenarioFeaturesDataPieceExporter implements ExportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.apiDB) private readonly apiEntityManager: EntityManager, @InjectEntityManager(geoprocessingConnections.default) diff --git a/api/apps/geoprocessing/src/export/pieces-exporters/scenario-features-specification.piece-exporter.ts b/api/apps/geoprocessing/src/export/pieces-exporters/scenario-features-specification.piece-exporter.ts index 6d615d6da7..7348b9f305 100644 --- a/api/apps/geoprocessing/src/export/pieces-exporters/scenario-features-specification.piece-exporter.ts +++ b/api/apps/geoprocessing/src/export/pieces-exporters/scenario-features-specification.piece-exporter.ts @@ -10,7 +10,7 @@ import { searchFeatureIdInObject, } from '@marxan/cloning/infrastructure/clone-piece-data/scenario-features-specification'; import { ScenarioFeaturesData } from '@marxan/features/scenario-features-data.geo.entity'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { isDefined } from '@marxan/utils'; import { Injectable, Logger } from '@nestjs/common'; import { InjectEntityManager, InjectRepository } from '@nestjs/typeorm'; @@ -58,7 +58,7 @@ type FeaturesById = Record; export class ScenarioFeaturesSpecificationPieceExporter implements ExportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.apiDB) private readonly apiEntityManager: EntityManager, @InjectRepository(ScenarioFeaturesData) diff --git a/api/apps/geoprocessing/src/export/pieces-exporters/scenario-input-folder.piece-exporter.ts b/api/apps/geoprocessing/src/export/pieces-exporters/scenario-input-folder.piece-exporter.ts index 9e2bdd4241..fd38af3fed 100644 --- a/api/apps/geoprocessing/src/export/pieces-exporters/scenario-input-folder.piece-exporter.ts +++ b/api/apps/geoprocessing/src/export/pieces-exporters/scenario-input-folder.piece-exporter.ts @@ -1,7 +1,7 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ExportJobInput, ExportJobOutput } from '@marxan/cloning'; import { ClonePieceUrisResolver } from '@marxan/cloning/infrastructure/clone-piece-data'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { HttpService, HttpStatus, Injectable, Logger } from '@nestjs/common'; import { InjectEntityManager } from '@nestjs/typeorm'; import { isLeft } from 'fp-ts/Either'; @@ -21,7 +21,7 @@ type SelectScenarioResult = { @PieceExportProvider() export class ScenarioInputFolderPieceExporter implements ExportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.apiDB) private readonly entityManager: EntityManager, private readonly logger: Logger, diff --git a/api/apps/geoprocessing/src/export/pieces-exporters/scenario-metadata.piece-exporter.ts b/api/apps/geoprocessing/src/export/pieces-exporters/scenario-metadata.piece-exporter.ts index 5208bcdfcb..077e644462 100644 --- a/api/apps/geoprocessing/src/export/pieces-exporters/scenario-metadata.piece-exporter.ts +++ b/api/apps/geoprocessing/src/export/pieces-exporters/scenario-metadata.piece-exporter.ts @@ -2,7 +2,7 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ExportJobInput, ExportJobOutput } from '@marxan/cloning'; import { ClonePieceUrisResolver } from '@marxan/cloning/infrastructure/clone-piece-data'; import { ScenarioMetadataContent } from '@marxan/cloning/infrastructure/clone-piece-data/scenario-metadata'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { Injectable, Logger } from '@nestjs/common'; import { InjectEntityManager } from '@nestjs/typeorm'; import { isLeft } from 'fp-ts/Either'; @@ -25,7 +25,7 @@ type SelectScenarioResult = { @PieceExportProvider() export class ScenarioMetadataPieceExporter implements ExportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.apiDB) private readonly entityManager: EntityManager, private readonly logger: Logger, diff --git a/api/apps/geoprocessing/src/export/pieces-exporters/scenario-output-folder.piece-exporter.ts b/api/apps/geoprocessing/src/export/pieces-exporters/scenario-output-folder.piece-exporter.ts index 35667fbbdf..c7a8ba0131 100644 --- a/api/apps/geoprocessing/src/export/pieces-exporters/scenario-output-folder.piece-exporter.ts +++ b/api/apps/geoprocessing/src/export/pieces-exporters/scenario-output-folder.piece-exporter.ts @@ -1,7 +1,7 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ExportJobInput, ExportJobOutput } from '@marxan/cloning'; import { ClonePieceUrisResolver } from '@marxan/cloning/infrastructure/clone-piece-data'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { HttpService, Injectable, Logger, HttpStatus } from '@nestjs/common'; import { InjectEntityManager } from '@nestjs/typeorm'; import { isLeft } from 'fp-ts/Either'; @@ -21,7 +21,7 @@ type SelectScenarioResult = { @PieceExportProvider() export class ScenarioOutputFolderPieceExporter implements ExportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.apiDB) private readonly entityManager: EntityManager, private readonly logger: Logger, diff --git a/api/apps/geoprocessing/src/export/pieces-exporters/scenario-planning-units-data.piece-exporter.ts b/api/apps/geoprocessing/src/export/pieces-exporters/scenario-planning-units-data.piece-exporter.ts index ae327a22b3..cc892056d1 100644 --- a/api/apps/geoprocessing/src/export/pieces-exporters/scenario-planning-units-data.piece-exporter.ts +++ b/api/apps/geoprocessing/src/export/pieces-exporters/scenario-planning-units-data.piece-exporter.ts @@ -2,7 +2,7 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ExportJobInput, ExportJobOutput } from '@marxan/cloning'; import { ClonePieceUrisResolver } from '@marxan/cloning/infrastructure/clone-piece-data'; import { ScenarioPlanningUnitsDataContent } from '@marxan/cloning/infrastructure/clone-piece-data/scenario-planning-units-data'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { Injectable, Logger } from '@nestjs/common'; import { InjectEntityManager } from '@nestjs/typeorm'; import { isLeft } from 'fp-ts/Either'; @@ -29,7 +29,7 @@ type SelectResult = { export class ScenarioPlanningUnitsDataPieceExporter implements ExportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.default) private readonly entityManager: EntityManager, private readonly logger: Logger, diff --git a/api/apps/geoprocessing/src/export/pieces-exporters/scenario-protected-areas.piece-exporter.ts b/api/apps/geoprocessing/src/export/pieces-exporters/scenario-protected-areas.piece-exporter.ts index 9b9902256b..b6c019cce0 100644 --- a/api/apps/geoprocessing/src/export/pieces-exporters/scenario-protected-areas.piece-exporter.ts +++ b/api/apps/geoprocessing/src/export/pieces-exporters/scenario-protected-areas.piece-exporter.ts @@ -2,7 +2,7 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ExportJobInput, ExportJobOutput } from '@marxan/cloning'; import { ClonePieceUrisResolver } from '@marxan/cloning/infrastructure/clone-piece-data'; import { ScenarioProtectedAreasContent } from '@marxan/cloning/infrastructure/clone-piece-data/scenario-protected-areas'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { isDefined } from '@marxan/utils'; import { Injectable, Logger } from '@nestjs/common'; import { InjectEntityManager } from '@nestjs/typeorm'; @@ -38,7 +38,7 @@ type SelectWdpaResult = WdpaProtectedArea | CustomProtectedArea; export class ScenarioProtectedAreasPieceExporter implements ExportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.apiDB) private readonly apiEntityManager: EntityManager, @InjectEntityManager(geoprocessingConnections.default) diff --git a/api/apps/geoprocessing/src/export/pieces-exporters/scenario-run-results.piece-exporter.ts b/api/apps/geoprocessing/src/export/pieces-exporters/scenario-run-results.piece-exporter.ts index c83e752a1d..2188560096 100644 --- a/api/apps/geoprocessing/src/export/pieces-exporters/scenario-run-results.piece-exporter.ts +++ b/api/apps/geoprocessing/src/export/pieces-exporters/scenario-run-results.piece-exporter.ts @@ -3,7 +3,7 @@ import { ClonePiece, ExportJobInput, ExportJobOutput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; import { ClonePieceUrisResolver } from '@marxan/cloning/infrastructure/clone-piece-data'; import { ScenarioRunResultsContent } from '@marxan/cloning/infrastructure/clone-piece-data/scenario-run-results'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { Injectable, Logger } from '@nestjs/common'; import { InjectEntityManager } from '@nestjs/typeorm'; import { isLeft } from 'fp-ts/lib/Either'; @@ -29,7 +29,7 @@ type MarxanRunSelectResult = { @PieceExportProvider() export class ScenarioRunResultsPieceExporter implements ExportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.default) private readonly geoprocessingEntityManager: EntityManager, private readonly logger: Logger, diff --git a/api/apps/geoprocessing/src/import/pieces-importers/marxan-execution-metadata.piece-importer.ts b/api/apps/geoprocessing/src/import/pieces-importers/marxan-execution-metadata.piece-importer.ts index a7587f0035..22fb0fae8c 100644 --- a/api/apps/geoprocessing/src/import/pieces-importers/marxan-execution-metadata.piece-importer.ts +++ b/api/apps/geoprocessing/src/import/pieces-importers/marxan-execution-metadata.piece-importer.ts @@ -6,7 +6,7 @@ import { MarxanExecutionMetadataContent, MarxanExecutionMetadataElement, } from '@marxan/cloning/infrastructure/clone-piece-data/marxan-execution-metadata'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { MarxanExecutionMetadataGeoEntity } from '@marxan/marxan-output'; import { extractFile, extractFiles } from '@marxan/utils'; import { Injectable, Logger } from '@nestjs/common'; @@ -32,7 +32,7 @@ type MetadataFolderBuffers = Record; export class MarxanExecutionMetadataPieceImporter implements ImportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.default) private readonly entityManager: EntityManager, private readonly logger: Logger, diff --git a/api/apps/geoprocessing/src/import/pieces-importers/pieces-importers.module.ts b/api/apps/geoprocessing/src/import/pieces-importers/pieces-importers.module.ts index 13f3ea1133..28b289efb1 100644 --- a/api/apps/geoprocessing/src/import/pieces-importers/pieces-importers.module.ts +++ b/api/apps/geoprocessing/src/import/pieces-importers/pieces-importers.module.ts @@ -1,5 +1,5 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; -import { FileRepositoryModule } from '@marxan/files-repository'; +import { CloningFileSRepositoryModule } from '@marxan/cloning-files-repository'; import { Logger, Module, Scope } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { MarxanExecutionMetadataPieceImporter } from './marxan-execution-metadata.piece-importer'; @@ -18,7 +18,7 @@ import { ScenarioRunResultsPieceImporter } from './scenario-run-results.piece-im @Module({ imports: [ - FileRepositoryModule, + CloningFileSRepositoryModule, TypeOrmModule.forFeature([], geoprocessingConnections.apiDB), ], providers: [ diff --git a/api/apps/geoprocessing/src/import/pieces-importers/planning-area-custom.piece-importer.ts b/api/apps/geoprocessing/src/import/pieces-importers/planning-area-custom.piece-importer.ts index b1c6e5feff..323081c259 100644 --- a/api/apps/geoprocessing/src/import/pieces-importers/planning-area-custom.piece-importer.ts +++ b/api/apps/geoprocessing/src/import/pieces-importers/planning-area-custom.piece-importer.ts @@ -2,7 +2,7 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ImportJobInput, ImportJobOutput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; import { PlanningAreaCustomContent } from '@marxan/cloning/infrastructure/clone-piece-data/planning-area-custom'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { PlanningArea } from '@marxan/planning-area-repository/planning-area.geo.entity'; import { extractFile } from '@marxan/utils'; import { Injectable, Logger } from '@nestjs/common'; @@ -18,7 +18,7 @@ import { @PieceImportProvider() export class PlanningAreaCustomPieceImporter implements ImportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.apiDB) private readonly apiEntityManager: EntityManager, @InjectEntityManager(geoprocessingConnections.default) diff --git a/api/apps/geoprocessing/src/import/pieces-importers/planning-area-gadm.piece-importer.ts b/api/apps/geoprocessing/src/import/pieces-importers/planning-area-gadm.piece-importer.ts index a57a969ad2..b209375dcb 100644 --- a/api/apps/geoprocessing/src/import/pieces-importers/planning-area-gadm.piece-importer.ts +++ b/api/apps/geoprocessing/src/import/pieces-importers/planning-area-gadm.piece-importer.ts @@ -2,7 +2,7 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ImportJobInput, ImportJobOutput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; import { PlanningAreaGadmContent } from '@marxan/cloning/infrastructure/clone-piece-data/planning-area-gadm'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { extractFile } from '@marxan/utils'; import { Injectable, Logger } from '@nestjs/common'; import { InjectEntityManager } from '@nestjs/typeorm'; @@ -17,7 +17,7 @@ import { @PieceImportProvider() export class PlanningAreaGadmPieceImporter implements ImportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.apiDB) private readonly entityManager: EntityManager, private readonly logger: Logger, diff --git a/api/apps/geoprocessing/src/import/pieces-importers/planning-units-grid.piece-importer.ts b/api/apps/geoprocessing/src/import/pieces-importers/planning-units-grid.piece-importer.ts index cb91bad070..7350e13ca6 100644 --- a/api/apps/geoprocessing/src/import/pieces-importers/planning-units-grid.piece-importer.ts +++ b/api/apps/geoprocessing/src/import/pieces-importers/planning-units-grid.piece-importer.ts @@ -5,7 +5,7 @@ import { ComponentLocationSnapshot, ResourceKind, } from '@marxan/cloning/domain'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { PlanningUnitGridShape } from '@marxan/scenarios-planning-unit'; import { Injectable, Logger } from '@nestjs/common'; import { InjectEntityManager } from '@nestjs/typeorm'; @@ -26,7 +26,7 @@ type ProjectSelectResult = { @PieceImportProvider() export class PlanningUnitsGridPieceImporter implements ImportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.default) private readonly geoprocessingEntityManager: EntityManager, @InjectEntityManager(geoprocessingConnections.apiDB) diff --git a/api/apps/geoprocessing/src/import/pieces-importers/project-custom-features.piece-importer.ts b/api/apps/geoprocessing/src/import/pieces-importers/project-custom-features.piece-importer.ts index 92949c0edd..b5097ac4ce 100644 --- a/api/apps/geoprocessing/src/import/pieces-importers/project-custom-features.piece-importer.ts +++ b/api/apps/geoprocessing/src/import/pieces-importers/project-custom-features.piece-importer.ts @@ -2,7 +2,7 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ImportJobInput, ImportJobOutput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; import { ProjectCustomFeaturesContent } from '@marxan/cloning/infrastructure/clone-piece-data/project-custom-features'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { GeoFeatureGeometry } from '@marxan/geofeatures'; import { extractFile } from '@marxan/utils'; import { Injectable, Logger } from '@nestjs/common'; @@ -20,7 +20,7 @@ import { export class ProjectCustomFeaturesPieceImporter implements ImportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.apiDB) private readonly apiEntityManager: EntityManager, @InjectEntityManager(geoprocessingConnections.default) diff --git a/api/apps/geoprocessing/src/import/pieces-importers/project-custom-protected-areas.piece-importer.ts b/api/apps/geoprocessing/src/import/pieces-importers/project-custom-protected-areas.piece-importer.ts index f5761ced16..46be905278 100644 --- a/api/apps/geoprocessing/src/import/pieces-importers/project-custom-protected-areas.piece-importer.ts +++ b/api/apps/geoprocessing/src/import/pieces-importers/project-custom-protected-areas.piece-importer.ts @@ -2,7 +2,7 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ImportJobInput, ImportJobOutput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; import { ProjectCustomProtectedAreasContent } from '@marxan/cloning/infrastructure/clone-piece-data/project-custom-protected-areas'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { ProtectedArea } from '@marxan/protected-areas'; import { extractFile } from '@marxan/utils'; import { Injectable, Logger } from '@nestjs/common'; @@ -19,7 +19,7 @@ import { export class ProjectCustomProtectedAreasPieceImporter implements ImportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.default) private readonly geoprocessingEntityManager: EntityManager, private readonly logger: Logger, diff --git a/api/apps/geoprocessing/src/import/pieces-importers/project-metadata.piece-importer.ts b/api/apps/geoprocessing/src/import/pieces-importers/project-metadata.piece-importer.ts index ab6b42db0f..2f274fd442 100644 --- a/api/apps/geoprocessing/src/import/pieces-importers/project-metadata.piece-importer.ts +++ b/api/apps/geoprocessing/src/import/pieces-importers/project-metadata.piece-importer.ts @@ -1,7 +1,7 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ImportJobInput, ImportJobOutput } from '@marxan/cloning'; import { ProjectMetadataContent } from '@marxan/cloning/infrastructure/clone-piece-data/project-metadata'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { extractFile } from '@marxan/utils'; import { Injectable, Logger } from '@nestjs/common'; import { InjectEntityManager } from '@nestjs/typeorm'; @@ -17,7 +17,7 @@ import { @PieceImportProvider() export class ProjectMetadataPieceImporter implements ImportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.apiDB) private readonly entityManager: EntityManager, private readonly logger: Logger, diff --git a/api/apps/geoprocessing/src/import/pieces-importers/scenario-features-data.piece-importer.ts b/api/apps/geoprocessing/src/import/pieces-importers/scenario-features-data.piece-importer.ts index 656bda42c7..e96c59bdb0 100644 --- a/api/apps/geoprocessing/src/import/pieces-importers/scenario-features-data.piece-importer.ts +++ b/api/apps/geoprocessing/src/import/pieces-importers/scenario-features-data.piece-importer.ts @@ -5,7 +5,7 @@ import { ScenarioFeaturesDataContent, } from '@marxan/cloning/infrastructure/clone-piece-data/scenario-features-data'; import { ScenarioFeaturesData } from '@marxan/features'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { GeoFeatureGeometry } from '@marxan/geofeatures'; import { OutputScenariosFeaturesDataGeoEntity } from '@marxan/marxan-output'; import { extractFile } from '@marxan/utils'; @@ -45,7 +45,7 @@ const CHUNK_SIZE = 100; @PieceImportProvider() export class ScenarioFeaturesDataPieceImporter implements ImportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.apiDB) private readonly apiEntityManager: EntityManager, @InjectEntityManager(geoprocessingConnections.default) diff --git a/api/apps/geoprocessing/src/import/pieces-importers/scenario-features-specification.piece-importer.ts b/api/apps/geoprocessing/src/import/pieces-importers/scenario-features-specification.piece-importer.ts index fa4bcc2905..ac601aca1e 100644 --- a/api/apps/geoprocessing/src/import/pieces-importers/scenario-features-specification.piece-importer.ts +++ b/api/apps/geoprocessing/src/import/pieces-importers/scenario-features-specification.piece-importer.ts @@ -9,7 +9,7 @@ import { searchFeatureIdInObject, } from '@marxan/cloning/infrastructure/clone-piece-data/scenario-features-specification'; import { ScenarioFeaturesData } from '@marxan/features'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { extractFile, isDefined } from '@marxan/utils'; import { Injectable, Logger } from '@nestjs/common'; import { InjectEntityManager, InjectRepository } from '@nestjs/typeorm'; @@ -39,7 +39,7 @@ type FeatureNames = { export class ScenarioFeaturesSpecificationPieceImporter implements ImportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.apiDB) private readonly apiEntityManager: EntityManager, @InjectEntityManager(geoprocessingConnections.default) diff --git a/api/apps/geoprocessing/src/import/pieces-importers/scenario-metadata.piece-importer.ts b/api/apps/geoprocessing/src/import/pieces-importers/scenario-metadata.piece-importer.ts index 05e6adefc7..0db7b37fba 100644 --- a/api/apps/geoprocessing/src/import/pieces-importers/scenario-metadata.piece-importer.ts +++ b/api/apps/geoprocessing/src/import/pieces-importers/scenario-metadata.piece-importer.ts @@ -2,7 +2,7 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ImportJobInput, ImportJobOutput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; import { ScenarioMetadataContent } from '@marxan/cloning/infrastructure/clone-piece-data/scenario-metadata'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { extractFile } from '@marxan/utils'; import { Injectable, Logger } from '@nestjs/common'; import { InjectEntityManager } from '@nestjs/typeorm'; @@ -17,7 +17,7 @@ import { @PieceImportProvider() export class ScenarioMetadataPieceImporter implements ImportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.apiDB) private readonly entityManager: EntityManager, private readonly logger: Logger, diff --git a/api/apps/geoprocessing/src/import/pieces-importers/scenario-planning-units-data.piece-importer.ts b/api/apps/geoprocessing/src/import/pieces-importers/scenario-planning-units-data.piece-importer.ts index 9c02a9fbeb..c1f5a0c37c 100644 --- a/api/apps/geoprocessing/src/import/pieces-importers/scenario-planning-units-data.piece-importer.ts +++ b/api/apps/geoprocessing/src/import/pieces-importers/scenario-planning-units-data.piece-importer.ts @@ -2,7 +2,7 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ProjectsPuEntity } from '@marxan-jobs/planning-unit-geometry'; import { ClonePiece, ImportJobInput, ImportJobOutput } from '@marxan/cloning'; import { ScenarioPlanningUnitsDataContent } from '@marxan/cloning/infrastructure/clone-piece-data/scenario-planning-units-data'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { ScenariosPuCostDataGeo, ScenariosPuPaDataGeo, @@ -23,7 +23,7 @@ import { export class ScenarioPlanningUnitsDataPieceImporter implements ImportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.default) private readonly entityManager: EntityManager, private readonly logger: Logger, diff --git a/api/apps/geoprocessing/src/import/pieces-importers/scenario-protected-areas.piece-importer.ts b/api/apps/geoprocessing/src/import/pieces-importers/scenario-protected-areas.piece-importer.ts index bd058b6ed6..99aa0ca1db 100644 --- a/api/apps/geoprocessing/src/import/pieces-importers/scenario-protected-areas.piece-importer.ts +++ b/api/apps/geoprocessing/src/import/pieces-importers/scenario-protected-areas.piece-importer.ts @@ -1,7 +1,7 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ImportJobInput, ImportJobOutput } from '@marxan/cloning'; import { ScenarioProtectedAreasContent } from '@marxan/cloning/infrastructure/clone-piece-data/scenario-protected-areas'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { ProtectedArea } from '@marxan/protected-areas'; import { extractFile } from '@marxan/utils'; import { Injectable, Logger } from '@nestjs/common'; @@ -18,7 +18,7 @@ import { export class ScenarioProtectedAreasPieceImporter implements ImportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.apiDB) private readonly apiEntityManager: EntityManager, @InjectEntityManager(geoprocessingConnections.default) diff --git a/api/apps/geoprocessing/src/import/pieces-importers/scenario-run-results.piece-importer.ts b/api/apps/geoprocessing/src/import/pieces-importers/scenario-run-results.piece-importer.ts index 397559f32a..6722383c51 100644 --- a/api/apps/geoprocessing/src/import/pieces-importers/scenario-run-results.piece-importer.ts +++ b/api/apps/geoprocessing/src/import/pieces-importers/scenario-run-results.piece-importer.ts @@ -8,7 +8,7 @@ import { MarxanRunResultsContent, ScenarioRunResultsContent, } from '@marxan/cloning/infrastructure/clone-piece-data/scenario-run-results'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { OutputScenariosPuDataGeoEntity } from '@marxan/marxan-output'; import { ScenariosPuPaDataGeo } from '@marxan/scenarios-planning-unit'; import { extractFile } from '@marxan/utils'; @@ -30,7 +30,7 @@ interface ProjectsPuSelectResult { @PieceImportProvider() export class ScenarioRunResultsPieceImporter implements ImportPieceProcessor { constructor( - private readonly fileRepository: FileRepository, + private readonly fileRepository: CloningFilesRepository, @InjectEntityManager(geoprocessingConnections.default) private readonly geoprocessingEntityManager: EntityManager, private readonly logger: Logger, diff --git a/api/apps/geoprocessing/test/integration/cloning/fixtures.ts b/api/apps/geoprocessing/test/integration/cloning/fixtures.ts index e787f5c407..b8dc317056 100644 --- a/api/apps/geoprocessing/test/integration/cloning/fixtures.ts +++ b/api/apps/geoprocessing/test/integration/cloning/fixtures.ts @@ -5,7 +5,7 @@ import { import { BlmFinalResultEntity } from '@marxan/blm-calibration'; import { ArchiveLocation } from '@marxan/cloning/domain'; import { ScenarioFeaturesData } from '@marxan/features'; -import { FileRepository } from '@marxan/files-repository'; +import { CloningFilesRepository } from '@marxan/cloning-files-repository'; import { GeoFeatureGeometry, GeometrySource } from '@marxan/geofeatures'; import { MarxanExecutionMetadataGeoEntity, @@ -60,7 +60,7 @@ export async function GenerateRandomGeometries( export async function PrepareZipFile( content: any, - fileRepository: FileRepository, + fileRepository: CloningFilesRepository, relativePath: string, ) { const archive = archiver(`zip`, { diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/export-config.project-piece-exporter.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/export-config.project-piece-exporter.e2e-spec.ts index 78fce130c7..b9a3b13b57 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/export-config.project-piece-exporter.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/export-config.project-piece-exporter.e2e-spec.ts @@ -1,7 +1,10 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ExportJobInput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Logger } from '@nestjs/common'; import { Test } from '@nestjs/testing'; @@ -73,7 +76,7 @@ const getFixtures = async () => { keepConnectionAlive: true, logging: false, }), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ ExportConfigProjectPieceExporter, @@ -89,7 +92,7 @@ const getFixtures = async () => { const apiEntityManager: EntityManager = sandbox.get( getEntityManagerToken(geoprocessingConnections.apiDB), ); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); const getExpectedContent = ( options: FixtureOptions, diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/export-config.scenario-piece-exporter.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/export-config.scenario-piece-exporter.e2e-spec.ts index fba0d49d29..cd40c9f939 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/export-config.scenario-piece-exporter.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/export-config.scenario-piece-exporter.e2e-spec.ts @@ -1,7 +1,10 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ExportJobInput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Logger } from '@nestjs/common'; import { Test } from '@nestjs/testing'; @@ -55,7 +58,7 @@ const getFixtures = async () => { keepConnectionAlive: true, logging: false, }), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ ExportConfigScenarioPieceExporter, @@ -71,7 +74,7 @@ const getFixtures = async () => { const apiEntityManager: EntityManager = sandbox.get( getEntityManagerToken(geoprocessingConnections.apiDB), ); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); const expectedContent: ScenarioExportConfigContent = { name: `test scenario - ${scenarioId}`, version: exportVersion, diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/marxan-execution-metadata.piece-exporter.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/marxan-execution-metadata.piece-exporter.e2e-spec.ts index 269b14f74f..539cc886e4 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/marxan-execution-metadata.piece-exporter.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/marxan-execution-metadata.piece-exporter.e2e-spec.ts @@ -3,7 +3,10 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ExportJobInput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; import { MarxanExecutionMetadataContent } from '@marxan/cloning/infrastructure/clone-piece-data/marxan-execution-metadata'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { MarxanExecutionMetadataGeoEntity } from '@marxan/marxan-output'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Logger } from '@nestjs/common'; @@ -61,7 +64,7 @@ const getFixtures = async () => { logging: false, }), TypeOrmModule.forFeature([MarxanExecutionMetadataGeoEntity]), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ MarxanExecutionMetadataPieceExporter, @@ -77,7 +80,7 @@ const getFixtures = async () => { const geoEntityManager: EntityManager = sandbox.get( getEntityManagerToken(geoprocessingConnections.default), ); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); const amountOfMarxanRuns = 3; return { diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/planning-area-custom-geojson.piece-exporter.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/planning-area-custom-geojson.piece-exporter.e2e-spec.ts index bffe70f323..2034957a1d 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/planning-area-custom-geojson.piece-exporter.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/planning-area-custom-geojson.piece-exporter.e2e-spec.ts @@ -1,7 +1,10 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ExportJobInput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Logger } from '@nestjs/common'; import { Test } from '@nestjs/testing'; @@ -66,7 +69,7 @@ const getFixtures = async () => { logging: false, }), TypeOrmModule.forFeature([PlanningArea]), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ PlanningAreaCustomGeojsonPieceExporter, @@ -85,7 +88,7 @@ const getFixtures = async () => { const geoEntityManager: EntityManager = sandbox.get( getEntityManagerToken(geoprocessingConnections.default), ); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); const planningAreaRepository: Repository = sandbox.get( getRepositoryToken(PlanningArea), ); diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/planning-area-custom.piece-exporter.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/planning-area-custom.piece-exporter.e2e-spec.ts index 922a77077e..8aa8ffeff0 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/planning-area-custom.piece-exporter.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/planning-area-custom.piece-exporter.e2e-spec.ts @@ -1,7 +1,10 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ExportJobInput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { PlanningUnitGridShape } from '@marxan/scenarios-planning-unit'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Logger } from '@nestjs/common'; @@ -70,7 +73,7 @@ const getFixtures = async () => { logging: false, }), TypeOrmModule.forFeature([PlanningArea]), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ PlanningAreaCustomPieceExporter, @@ -89,7 +92,7 @@ const getFixtures = async () => { const geoEntityManager: EntityManager = sandbox.get( getEntityManagerToken(geoprocessingConnections.default), ); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); return { cleanUp: async () => { await DeleteProjectAndOrganization( diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/planning-area-gadm.piece-exporter.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/planning-area-gadm.piece-exporter.e2e-spec.ts index 73871cbb61..644f030d70 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/planning-area-gadm.piece-exporter.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/planning-area-gadm.piece-exporter.e2e-spec.ts @@ -3,7 +3,10 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ExportJobInput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; import { PlanningAreaGadmContent } from '@marxan/cloning/infrastructure/clone-piece-data/planning-area-gadm'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Logger } from '@nestjs/common'; import { Test } from '@nestjs/testing'; @@ -52,7 +55,7 @@ const getFixtures = async () => { keepConnectionAlive: true, logging: false, }), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ PlanningAreaGadmPieceExporter, @@ -67,7 +70,7 @@ const getFixtures = async () => { const apiEntityManager: EntityManager = sandbox.get( getEntityManagerToken(geoprocessingConnections.apiDB), ); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); const expectedContent: PlanningAreaGadmContent = { l1: 'NAM.12_1', l2: 'NAM.12.7_1', diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/planning-units-grid-geojson.piece-exporter.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/planning-units-grid-geojson.piece-exporter.e2e-spec.ts index 05f5c01de6..054ee0807c 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/planning-units-grid-geojson.piece-exporter.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/planning-units-grid-geojson.piece-exporter.e2e-spec.ts @@ -1,7 +1,10 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ExportJobInput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { PlanningUnitGridShape } from '@marxan/scenarios-planning-unit'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Logger } from '@nestjs/common'; @@ -60,7 +63,7 @@ const getFixtures = async () => { logging: false, }), TypeOrmModule.forFeature([ProjectsPuEntity, PlanningUnitsGeom]), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ PlanningUnitsGridGeojsonPieceExporter, @@ -79,7 +82,7 @@ const getFixtures = async () => { const geoEntityManager: EntityManager = sandbox.get( getEntityManagerToken(geoprocessingConnections.default), ); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); return { cleanUp: async () => { diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/planning-units-grid.piece-exporter.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/planning-units-grid.piece-exporter.e2e-spec.ts index 625dabbb23..f96ee3224d 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/planning-units-grid.piece-exporter.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/planning-units-grid.piece-exporter.e2e-spec.ts @@ -1,7 +1,10 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ExportJobInput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { PlanningUnitGridShape } from '@marxan/scenarios-planning-unit'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Logger } from '@nestjs/common'; @@ -59,7 +62,7 @@ const getFixtures = async () => { logging: false, }), TypeOrmModule.forFeature([ProjectsPuEntity, PlanningUnitsGeom]), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ PlanningUnitsGridPieceExporter, @@ -78,7 +81,7 @@ const getFixtures = async () => { const geoEntityManager: EntityManager = sandbox.get( getEntityManagerToken(geoprocessingConnections.default), ); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); const readAndParseSavedFile = async ( savedStrem: Readable, diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/project-custom-features.piece-exporter.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/project-custom-features.piece-exporter.e2e-spec.ts index 74dfc91d79..c152f8fa54 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/project-custom-features.piece-exporter.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/project-custom-features.piece-exporter.e2e-spec.ts @@ -3,7 +3,10 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ExportJobInput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; import { ProjectCustomFeaturesContent } from '@marxan/cloning/infrastructure/clone-piece-data/project-custom-features'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { GeoFeatureGeometry } from '@marxan/geofeatures'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Logger } from '@nestjs/common'; @@ -65,7 +68,7 @@ const getFixtures = async () => { logging: false, }), TypeOrmModule.forFeature([GeoFeatureGeometry]), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ ProjectCustomFeaturesPieceExporter, @@ -84,7 +87,7 @@ const getFixtures = async () => { getEntityManagerToken(geoprocessingConnections.default), ); const featuresDataRepo = geoEntityManager.getRepository(GeoFeatureGeometry); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); let featureIds: string[] = []; const amountOfCustomFeatures = 5; diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/project-custom-protected-areas.piece-exporter.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/project-custom-protected-areas.piece-exporter.e2e-spec.ts index e70f669a51..97a53412b6 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/project-custom-protected-areas.piece-exporter.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/project-custom-protected-areas.piece-exporter.e2e-spec.ts @@ -1,7 +1,10 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ExportJobInput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Logger } from '@nestjs/common'; import { Test } from '@nestjs/testing'; @@ -64,7 +67,7 @@ const getFixtures = async () => { logging: false, }), TypeOrmModule.forFeature([ProtectedArea]), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ ProjectCustomProtectedAreasPieceExporter, @@ -85,7 +88,7 @@ const getFixtures = async () => { const geoEntityManager: EntityManager = sandbox.get( getEntityManagerToken(geoprocessingConnections.default), ); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); return { cleanUp: async () => { diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/project-metadata.piece-exporter.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/project-metadata.piece-exporter.e2e-spec.ts index bb79291c3d..8309098f52 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/project-metadata.piece-exporter.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/project-metadata.piece-exporter.e2e-spec.ts @@ -2,7 +2,10 @@ import { ProjectMetadataPieceExporter } from '@marxan-geoprocessing/export/piece import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ExportJobInput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { PlanningUnitGridShape } from '@marxan/scenarios-planning-unit'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Logger } from '@nestjs/common'; @@ -53,7 +56,7 @@ const getFixtures = async () => { keepConnectionAlive: true, logging: false, }), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ ProjectMetadataPieceExporter, @@ -68,7 +71,7 @@ const getFixtures = async () => { const apiEntityManager: EntityManager = sandbox.get( getEntityManagerToken(geoprocessingConnections.apiDB), ); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); const expectedContent: ProjectMetadataContent = { name: `test project - ${projectId}`, planningUnitGridShape: PlanningUnitGridShape.Square, diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/scenario-features-data.piece-exporter.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/scenario-features-data.piece-exporter.e2e-spec.ts index c8ad0a0acd..eedbddf131 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/scenario-features-data.piece-exporter.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/scenario-features-data.piece-exporter.e2e-spec.ts @@ -3,7 +3,10 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ExportJobInput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; import { ScenarioFeaturesDataContent } from '@marxan/cloning/infrastructure/clone-piece-data/scenario-features-data'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { GeoFeatureGeometry } from '@marxan/geofeatures'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Logger } from '@nestjs/common'; @@ -75,7 +78,7 @@ const getFixtures = async () => { logging: false, }), TypeOrmModule.forFeature([]), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ ScenarioFeaturesDataPieceExporter, @@ -95,7 +98,7 @@ const getFixtures = async () => { getEntityManagerToken(geoprocessingConnections.default), ); const featuresDataRepo = geoEntityManager.getRepository(GeoFeatureGeometry); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); let featureIds: string[] = []; const amountOfCustomFeatures = 3; diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/scenario-features-specification.piece-exporter.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/scenario-features-specification.piece-exporter.e2e-spec.ts index c46a6f79c3..816951b931 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/scenario-features-specification.piece-exporter.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/scenario-features-specification.piece-exporter.e2e-spec.ts @@ -1,7 +1,10 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ExportJobInput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Logger } from '@nestjs/common'; import { Test } from '@nestjs/testing'; @@ -91,7 +94,7 @@ const getFixtures = async () => { logging: false, }), TypeOrmModule.forFeature([GeoFeatureGeometry, ScenarioFeaturesData]), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ ScenarioFeaturesSpecificationPieceExporter, @@ -113,7 +116,7 @@ const getFixtures = async () => { const geoEntityManager: EntityManager = sandbox.get( getEntityManagerToken(geoprocessingConnections.default), ); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); const getFeatureName = ( opts: { diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/scenario-metadata.piece-exporter.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/scenario-metadata.piece-exporter.e2e-spec.ts index 2898619245..39bcee445e 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/scenario-metadata.piece-exporter.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/scenario-metadata.piece-exporter.e2e-spec.ts @@ -1,7 +1,10 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ExportJobInput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Logger } from '@nestjs/common'; import { Test } from '@nestjs/testing'; @@ -52,7 +55,7 @@ const getFixtures = async () => { keepConnectionAlive: true, logging: false, }), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ ScenarioMetadataPieceExporter, @@ -68,7 +71,7 @@ const getFixtures = async () => { const apiEntityManager: EntityManager = sandbox.get( getEntityManagerToken(geoprocessingConnections.apiDB), ); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); const expectedContent: ScenarioMetadataContent = { name: `test scenario - ${scenarioId}`, description: 'desc', diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/scenario-planning-units-data.piece-exporter.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/scenario-planning-units-data.piece-exporter.e2e-spec.ts index ad0cefd4af..98f945cbd4 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/scenario-planning-units-data.piece-exporter.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/scenario-planning-units-data.piece-exporter.e2e-spec.ts @@ -1,7 +1,10 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ExportJobInput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { LockStatus, ScenariosPuCostDataGeo, @@ -70,7 +73,7 @@ const getFixtures = async () => { ScenariosPuPaDataGeo, ScenariosPuCostDataGeo, ]), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ ScenarioPlanningUnitsDataPieceExporter, @@ -89,7 +92,7 @@ const getFixtures = async () => { const geoEntityManager: EntityManager = sandbox.get( getEntityManagerToken(geoprocessingConnections.default), ); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); return { cleanUp: async () => { diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/scenario-protected-areas.piece-exporter.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/scenario-protected-areas.piece-exporter.e2e-spec.ts index 76b18811bb..30c30d1e13 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/scenario-protected-areas.piece-exporter.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/scenario-protected-areas.piece-exporter.e2e-spec.ts @@ -1,7 +1,10 @@ import { geoprocessingConnections } from '@marxan-geoprocessing/ormconfig'; import { ClonePiece, ExportJobInput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Logger } from '@nestjs/common'; import { Test } from '@nestjs/testing'; @@ -72,7 +75,7 @@ const getFixtures = async () => { logging: false, }), TypeOrmModule.forFeature([ProtectedArea]), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ ScenarioProtectedAreasPieceExporter, @@ -94,7 +97,7 @@ const getFixtures = async () => { const geoEntityManager: EntityManager = sandbox.get( getEntityManagerToken(geoprocessingConnections.default), ); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); return { cleanUp: async () => { diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/scenario-run-results.piece-exporter.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/scenario-run-results.piece-exporter.e2e-spec.ts index 35295d82b6..c3b1b6eedb 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-exporters/scenario-run-results.piece-exporter.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-exporters/scenario-run-results.piece-exporter.e2e-spec.ts @@ -8,7 +8,10 @@ import { BlmFinalResultEntity } from '@marxan/blm-calibration'; import { ClonePiece, ExportJobInput } from '@marxan/cloning'; import { ResourceKind } from '@marxan/cloning/domain'; import { ScenarioRunResultsContent } from '@marxan/cloning/infrastructure/clone-piece-data/scenario-run-results'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { OutputScenariosPuDataGeoEntity } from '@marxan/marxan-output'; import { LockStatus, @@ -86,7 +89,7 @@ const getFixtures = async () => { BlmFinalResultEntity, OutputScenariosPuDataGeoEntity, ]), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ ScenarioRunResultsPieceExporter, @@ -106,7 +109,7 @@ const getFixtures = async () => { const geoEntityManager: EntityManager = sandbox.get( getEntityManagerToken(geoprocessingConnections.default), ); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); return { cleanUp: async () => { diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-importers/marxan-execution-metadata.piece-importer.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-importers/marxan-execution-metadata.piece-importer.e2e-spec.ts index bbe6bad582..62ef5f35df 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-importers/marxan-execution-metadata.piece-importer.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-importers/marxan-execution-metadata.piece-importer.e2e-spec.ts @@ -12,7 +12,10 @@ import { MarxanExecutionMetadataContent, MarxanExecutionMetadataFolderType, } from '@marxan/cloning/infrastructure/clone-piece-data/marxan-execution-metadata'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { MarxanExecutionMetadataGeoEntity } from '@marxan/marxan-output'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Logger } from '@nestjs/common'; @@ -102,7 +105,7 @@ const getFixtures = async () => { logging: false, }), TypeOrmModule.forFeature([MarxanExecutionMetadataGeoEntity]), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ MarxanExecutionMetadataPieceImporter, @@ -117,7 +120,7 @@ const getFixtures = async () => { const userId = v4(); const sut = sandbox.get(MarxanExecutionMetadataPieceImporter); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); const marxanExecutionMetadataRepo = sandbox.get< Repository >(getRepositoryToken(MarxanExecutionMetadataGeoEntity)); diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-importers/planning-area-custom.piece-importer.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-importers/planning-area-custom.piece-importer.e2e-spec.ts index d7566ddc3d..93838c512f 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-importers/planning-area-custom.piece-importer.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-importers/planning-area-custom.piece-importer.e2e-spec.ts @@ -8,7 +8,10 @@ import { } from '@marxan/cloning/domain'; import { ClonePieceUrisResolver } from '@marxan/cloning/infrastructure/clone-piece-data'; import { PlanningAreaCustomContent } from '@marxan/cloning/infrastructure/clone-piece-data/planning-area-custom'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { PlanningArea } from '@marxan/planning-area-repository/planning-area.geo.entity'; import { PlanningUnitGridShape } from '@marxan/scenarios-planning-unit'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; @@ -81,7 +84,7 @@ const getFixtures = async () => { keepConnectionAlive: true, logging: false, }), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ PlanningAreaCustomPieceImporter, @@ -101,7 +104,7 @@ const getFixtures = async () => { getRepositoryToken(PlanningArea, geoprocessingConnections.default.name), ); const sut = sandbox.get(PlanningAreaCustomPieceImporter); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); return { cleanUp: async () => { diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-importers/planning-area-gadm.piece-importer.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-importers/planning-area-gadm.piece-importer.e2e-spec.ts index 79891e41af..7f3d606d82 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-importers/planning-area-gadm.piece-importer.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-importers/planning-area-gadm.piece-importer.e2e-spec.ts @@ -8,7 +8,10 @@ import { } from '@marxan/cloning/domain'; import { ClonePieceUrisResolver } from '@marxan/cloning/infrastructure/clone-piece-data'; import { PlanningAreaGadmContent } from '@marxan/cloning/infrastructure/clone-piece-data/planning-area-gadm'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Logger } from '@nestjs/common'; import { Test } from '@nestjs/testing'; @@ -74,7 +77,7 @@ const getFixtures = async () => { keepConnectionAlive: true, logging: false, }), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ PlanningAreaGadmPieceImporter, @@ -91,7 +94,7 @@ const getFixtures = async () => { getEntityManagerToken(geoprocessingConnections.apiDB.name), ); const sut = sandbox.get(PlanningAreaGadmPieceImporter); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); const validGadmPlanningAreaFile: PlanningAreaGadmContent = { country: 'AGO', diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-importers/planning-units-grid.piece-importer.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-importers/planning-units-grid.piece-importer.e2e-spec.ts index 19c43f4800..7d1b130959 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-importers/planning-units-grid.piece-importer.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-importers/planning-units-grid.piece-importer.e2e-spec.ts @@ -11,7 +11,10 @@ import { ResourceKind, } from '@marxan/cloning/domain'; import { ClonePieceUrisResolver } from '@marxan/cloning/infrastructure/clone-piece-data'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { PlanningUnitGridShape } from '@marxan/scenarios-planning-unit'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Logger } from '@nestjs/common'; @@ -85,7 +88,7 @@ const getFixtures = async () => { logging: false, }), TypeOrmModule.forFeature([PlanningUnitsGeom, ProjectsPuEntity]), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ PlanningUnitsGridPieceImporter, @@ -101,7 +104,7 @@ const getFixtures = async () => { const projectId = v4(); const userId = v4(); const sut = sandbox.get(PlanningUnitsGridPieceImporter); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); const entityManager = sandbox.get(getEntityManagerToken()); const puGeomRepo = sandbox.get>( getRepositoryToken(PlanningUnitsGeom), diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-importers/project-custom-features.piece-importer.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-importers/project-custom-features.piece-importer.e2e-spec.ts index 4bf1ebbe45..f631fc8074 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-importers/project-custom-features.piece-importer.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-importers/project-custom-features.piece-importer.e2e-spec.ts @@ -12,7 +12,10 @@ import { ProjectCustomFeaturesContent, } from '@marxan/cloning/infrastructure/clone-piece-data/project-custom-features'; import { FeatureTag } from '@marxan/features'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { GeoFeatureGeometry, GeometrySource } from '@marxan/geofeatures'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Logger } from '@nestjs/common'; @@ -82,7 +85,7 @@ const getFixtures = async () => { }), TypeOrmModule.forFeature([GeoFeatureGeometry]), TypeOrmModule.forFeature([], geoprocessingConnections.apiDB.name), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ ProjectCustomFeaturesPieceImporter, @@ -107,7 +110,7 @@ const getFixtures = async () => { ); const sut = sandbox.get(ProjectCustomFeaturesPieceImporter); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); const amountOfCustomFeatures = 5; const recordsOfDataForEachCustomFeature = 3; diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-importers/project-custom-protected-areas.piece-importer.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-importers/project-custom-protected-areas.piece-importer.e2e-spec.ts index 2acfc0245d..2bc976bf98 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-importers/project-custom-protected-areas.piece-importer.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-importers/project-custom-protected-areas.piece-importer.e2e-spec.ts @@ -8,7 +8,10 @@ import { } from '@marxan/cloning/domain'; import { ClonePieceUrisResolver } from '@marxan/cloning/infrastructure/clone-piece-data'; import { ProjectCustomProtectedAreasContent } from '@marxan/cloning/infrastructure/clone-piece-data/project-custom-protected-areas'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { ProtectedArea } from '@marxan/protected-areas'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Logger } from '@nestjs/common'; @@ -66,7 +69,7 @@ const getFixtures = async () => { logging: false, }), TypeOrmModule.forFeature([ProtectedArea]), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ ProjectCustomProtectedAreasPieceImporter, @@ -84,7 +87,7 @@ const getFixtures = async () => { ); const sut = sandbox.get(ProjectCustomProtectedAreasPieceImporter); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); let validProjectCustomProtectedAreasFile: ProjectCustomProtectedAreasContent[]; diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-importers/project-metadata.piece-importer.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-importers/project-metadata.piece-importer.e2e-spec.ts index 1e59f51fd6..2407b0f0bd 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-importers/project-metadata.piece-importer.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-importers/project-metadata.piece-importer.e2e-spec.ts @@ -8,7 +8,10 @@ import { } from '@marxan/cloning/domain'; import { ClonePieceUrisResolver } from '@marxan/cloning/infrastructure/clone-piece-data'; import { ProjectMetadataContent } from '@marxan/cloning/infrastructure/clone-piece-data/project-metadata'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { PlanningUnitGridShape } from '@marxan/scenarios-planning-unit'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Logger } from '@nestjs/common'; @@ -92,7 +95,7 @@ const getFixtures = async () => { keepConnectionAlive: true, logging: false, }), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ ProjectMetadataPieceImporter, @@ -106,7 +109,7 @@ const getFixtures = async () => { const userId = v4(); const sut = sandbox.get(ProjectMetadataPieceImporter); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); const entityManager = sandbox.get( getEntityManagerToken(geoprocessingConnections.apiDB.name), diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-importers/scenario-features-data.piece-importer.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-importers/scenario-features-data.piece-importer.e2e-spec.ts index b45f73104a..4d83b8e3c7 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-importers/scenario-features-data.piece-importer.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-importers/scenario-features-data.piece-importer.e2e-spec.ts @@ -9,7 +9,10 @@ import { import { ClonePieceUrisResolver } from '@marxan/cloning/infrastructure/clone-piece-data'; import { ScenarioFeaturesDataContent } from '@marxan/cloning/infrastructure/clone-piece-data/scenario-features-data'; import { ScenarioFeaturesData } from '@marxan/features'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { GeoFeatureGeometry } from '@marxan/geofeatures'; import { OutputScenariosFeaturesDataGeoEntity } from '@marxan/marxan-output'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; @@ -98,7 +101,7 @@ const getFixtures = async () => { }), TypeOrmModule.forFeature([]), TypeOrmModule.forFeature([], geoprocessingConnections.apiDB.name), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ ScenarioFeaturesDataPieceImporter, @@ -126,7 +129,7 @@ const getFixtures = async () => { OutputScenariosFeaturesDataGeoEntity, ); const sut = sandbox.get(ScenarioFeaturesDataPieceImporter); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); let validScenarioFeaturesDataFile: ScenarioFeaturesDataContent; let featureIds: string[] = []; diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-importers/scenario-features-specification.piece-importer.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-importers/scenario-features-specification.piece-importer.e2e-spec.ts index 2abf5b2399..591e3db6d9 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-importers/scenario-features-specification.piece-importer.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-importers/scenario-features-specification.piece-importer.e2e-spec.ts @@ -12,7 +12,10 @@ import { ScenarioFeaturesSpecificationContent, } from '@marxan/cloning/infrastructure/clone-piece-data/scenario-features-specification'; import { ScenarioFeaturesData } from '@marxan/features'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { GeoFeatureGeometry } from '@marxan/geofeatures'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Logger } from '@nestjs/common'; @@ -108,7 +111,7 @@ const getFixtures = async () => { }), TypeOrmModule.forFeature([]), TypeOrmModule.forFeature([], geoprocessingConnections.apiDB.name), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ ScenarioFeaturesSpecificationPieceImporter, @@ -133,7 +136,7 @@ const getFixtures = async () => { ScenarioFeaturesData, ); const sut = sandbox.get(ScenarioFeaturesSpecificationPieceImporter); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); let validScenarioFeaturesDataFile: ScenarioFeaturesSpecificationContent[]; let featureIds: string[] = []; diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-importers/scenario-metadata.piece-importer.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-importers/scenario-metadata.piece-importer.e2e-spec.ts index fad7d6b826..75b2c5b7f8 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-importers/scenario-metadata.piece-importer.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-importers/scenario-metadata.piece-importer.e2e-spec.ts @@ -8,7 +8,10 @@ import { } from '@marxan/cloning/domain'; import { ClonePieceUrisResolver } from '@marxan/cloning/infrastructure/clone-piece-data'; import { ScenarioMetadataContent } from '@marxan/cloning/infrastructure/clone-piece-data/scenario-metadata'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; import { Logger } from '@nestjs/common'; import { Test } from '@nestjs/testing'; @@ -96,7 +99,7 @@ const getFixtures = async () => { keepConnectionAlive: true, logging: false, }), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ ScenarioMetadataPieceImporter, @@ -112,7 +115,7 @@ const getFixtures = async () => { const userId = v4(); const sut = sandbox.get(ScenarioMetadataPieceImporter); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); const entityManager = sandbox.get( getEntityManagerToken(geoprocessingConnections.apiDB.name), diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-importers/scenario-planning-units-data.piece-importer.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-importers/scenario-planning-units-data.piece-importer.e2e-spec.ts index d29402e28a..d6d8f97ff0 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-importers/scenario-planning-units-data.piece-importer.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-importers/scenario-planning-units-data.piece-importer.e2e-spec.ts @@ -12,7 +12,10 @@ import { } from '@marxan/cloning/domain'; import { ClonePieceUrisResolver } from '@marxan/cloning/infrastructure/clone-piece-data'; import { ScenarioPlanningUnitsDataContent } from '@marxan/cloning/infrastructure/clone-piece-data/scenario-planning-units-data'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { ScenariosPuCostDataGeo, ScenariosPuPaDataGeo, @@ -79,7 +82,7 @@ const getFixtures = async () => { ProjectsPuEntity, PlanningUnitsGeom, ]), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ ScenarioPlanningUnitsDataPieceImporter, @@ -95,7 +98,7 @@ const getFixtures = async () => { const userId = v4(); const sut = sandbox.get(ScenarioPlanningUnitsDataPieceImporter); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); const entityManager = sandbox.get(getEntityManagerToken()); const scenarioPuDataRepo = sandbox.get>( getRepositoryToken(ScenariosPuPaDataGeo), diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-importers/scenario-protected-areas.piece-importer.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-importers/scenario-protected-areas.piece-importer.e2e-spec.ts index b81262c643..3e6a5db056 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-importers/scenario-protected-areas.piece-importer.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-importers/scenario-protected-areas.piece-importer.e2e-spec.ts @@ -12,7 +12,10 @@ import { } from '@marxan/cloning/domain'; import { ClonePieceUrisResolver } from '@marxan/cloning/infrastructure/clone-piece-data'; import { ScenarioProtectedAreasContent } from '@marxan/cloning/infrastructure/clone-piece-data/scenario-protected-areas'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { ProtectedArea } from '@marxan/protected-areas'; import { ScenariosPuPaDataGeo } from '@marxan/scenarios-planning-unit'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; @@ -110,7 +113,7 @@ const getFixtures = async () => { keepConnectionAlive: true, logging: false, }), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ ScenarioProtectedAreasPieceImporter, @@ -128,7 +131,7 @@ const getFixtures = async () => { const userId = v4(); const sut = sandbox.get(ScenarioProtectedAreasPieceImporter); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); const geoprocessingEntityManager = sandbox.get( getEntityManagerToken(geoprocessingConnections.default.name), ); diff --git a/api/apps/geoprocessing/test/integration/cloning/piece-importers/scenario-run-results.piece-importer.e2e-spec.ts b/api/apps/geoprocessing/test/integration/cloning/piece-importers/scenario-run-results.piece-importer.e2e-spec.ts index 2409c41bd7..c65ad326e1 100644 --- a/api/apps/geoprocessing/test/integration/cloning/piece-importers/scenario-run-results.piece-importer.e2e-spec.ts +++ b/api/apps/geoprocessing/test/integration/cloning/piece-importers/scenario-run-results.piece-importer.e2e-spec.ts @@ -13,7 +13,10 @@ import { } from '@marxan/cloning/domain'; import { ClonePieceUrisResolver } from '@marxan/cloning/infrastructure/clone-piece-data'; import { ScenarioRunResultsContent } from '@marxan/cloning/infrastructure/clone-piece-data/scenario-run-results'; -import { FileRepository, FileRepositoryModule } from '@marxan/files-repository'; +import { + CloningFilesRepository, + CloningFileSRepositoryModule, +} from '@marxan/cloning-files-repository'; import { OutputScenariosPuDataGeoEntity } from '@marxan/marxan-output'; import { ScenariosPuPaDataGeo } from '@marxan/scenarios-planning-unit'; import { FixtureType } from '@marxan/utils/tests/fixture-type'; @@ -92,7 +95,7 @@ const getFixtures = async () => { OutputScenariosPuDataGeoEntity, BlmFinalResultEntity, ]), - FileRepositoryModule, + CloningFileSRepositoryModule, ], providers: [ ScenarioRunResultsPieceImporter, @@ -108,7 +111,7 @@ const getFixtures = async () => { const userId = v4(); const sut = sandbox.get(ScenarioRunResultsPieceImporter); - const fileRepository = sandbox.get(FileRepository); + const fileRepository = sandbox.get(CloningFilesRepository); const entityManager = sandbox.get(getEntityManagerToken()); const outputScenariosPuDataRepo = sandbox.get< Repository diff --git a/api/apps/geoprocessing/test/jest-e2e.json b/api/apps/geoprocessing/test/jest-e2e.json index fcd7388007..99bb06b2c8 100644 --- a/api/apps/geoprocessing/test/jest-e2e.json +++ b/api/apps/geoprocessing/test/jest-e2e.json @@ -67,8 +67,8 @@ "@marxan/projects": "/../../libs/projects/src", "@marxan/blm-calibration/(.*)": "/../../libs/blm-calibration/src/$1", "@marxan/blm-calibration": "/../../libs/blm-calibration/src", - "@marxan/files-repository/(.*)": "/../../libs/files-repository/src/$1", - "@marxan/files-repository": "/../../libs/files-repository/src", + "@marxan/cloning-files-repository/(.*)": "/../../libs/cloning-files-repository/src/$1", + "@marxan/cloning-files-repository": "/../../libs/cloning-files-repository/src", "@marxan/cloning/(.*)": "/../../libs/cloning/src/$1", "@marxan/cloning": "/../../libs/cloning/src", "@marxan/geofeatures/(.*)": "/../../libs/geofeatures/src/$1", diff --git a/api/libs/cloning-files-repository/src/cloning-files-repository.module.ts b/api/libs/cloning-files-repository/src/cloning-files-repository.module.ts new file mode 100644 index 0000000000..2fae2fb752 --- /dev/null +++ b/api/libs/cloning-files-repository/src/cloning-files-repository.module.ts @@ -0,0 +1,23 @@ +import { Module } from '@nestjs/common'; +import { AppConfig } from '../../../apps/api/src/utils/config.utils'; +import { + CloningFilesRepository, + CloningStoragePath, +} from './cloning-files.repository'; +import { VolumeCloningFilesStorage } from './volume-cloning-files.repository'; + +@Module({ + imports: [], + providers: [ + { + provide: CloningStoragePath, + useValue: AppConfig.get('storage.cloningFileStorage.localPath'), + }, + { + provide: CloningFilesRepository, + useClass: VolumeCloningFilesStorage, + }, + ], + exports: [CloningFilesRepository], +}) +export class CloningFileSRepositoryModule {} diff --git a/api/libs/files-repository/src/file.repository.ts b/api/libs/cloning-files-repository/src/cloning-files.repository.ts similarity index 94% rename from api/libs/files-repository/src/file.repository.ts rename to api/libs/cloning-files-repository/src/cloning-files.repository.ts index 0edfb1d601..8fc6fb9965 100644 --- a/api/libs/files-repository/src/file.repository.ts +++ b/api/libs/cloning-files-repository/src/cloning-files.repository.ts @@ -18,7 +18,7 @@ export type GetFileError = | typeof fileNotFound | typeof hackerFound; -export abstract class FileRepository { +export abstract class CloningFilesRepository { abstract save( stream: Readable, extension?: string, diff --git a/api/libs/cloning-files-repository/src/index.ts b/api/libs/cloning-files-repository/src/index.ts new file mode 100644 index 0000000000..919d177a3c --- /dev/null +++ b/api/libs/cloning-files-repository/src/index.ts @@ -0,0 +1,13 @@ +export { CloningFileSRepositoryModule } from './cloning-files-repository.module'; +export { + GetFileError, + CloningFilesRepository, + SaveFileError, + unknownError, + storageNotReachable, + fileNotFound, + hackerFound, + CloningStoragePath, +} from './cloning-files.repository'; + +export { VolumeCloningFilesStorage } from './volume-cloning-files.repository'; diff --git a/api/libs/files-repository/src/temp-storage.repository.ts b/api/libs/cloning-files-repository/src/volume-cloning-files.repository.ts similarity index 91% rename from api/libs/files-repository/src/temp-storage.repository.ts rename to api/libs/cloning-files-repository/src/volume-cloning-files.repository.ts index 45da8a0251..6f93698657 100644 --- a/api/libs/files-repository/src/temp-storage.repository.ts +++ b/api/libs/cloning-files-repository/src/volume-cloning-files.repository.ts @@ -5,15 +5,15 @@ import { Readable } from 'stream'; import { v4 } from 'uuid'; import { CloningStoragePath, - FileRepository, + CloningFilesRepository, GetFileError, hackerFound, SaveFileError, unknownError, -} from './file.repository'; +} from './cloning-files.repository'; @Injectable() -export class TempStorageRepository implements FileRepository { +export class VolumeCloningFilesStorage implements CloningFilesRepository { constructor( @Inject(CloningStoragePath) private readonly storagePath: string, ) {} diff --git a/api/libs/files-repository/tsconfig.lib.json b/api/libs/cloning-files-repository/tsconfig.lib.json similarity index 76% rename from api/libs/files-repository/tsconfig.lib.json rename to api/libs/cloning-files-repository/tsconfig.lib.json index 6ff536848d..e3e1686235 100644 --- a/api/libs/files-repository/tsconfig.lib.json +++ b/api/libs/cloning-files-repository/tsconfig.lib.json @@ -2,7 +2,7 @@ "extends": "../../tsconfig.json", "compilerOptions": { "declaration": true, - "outDir": "../../dist/libs/files-repository" + "outDir": "../../dist/libs/cloning-files-repository" }, "include": ["src/**/*"], "exclude": ["node_modules", "dist", "test", "**/*spec.ts"] diff --git a/api/libs/cloning/src/infrastructure/archive-reader.adapter.ts b/api/libs/cloning/src/infrastructure/archive-reader.adapter.ts index 1efbe3d2df..4dbf612415 100644 --- a/api/libs/cloning/src/infrastructure/archive-reader.adapter.ts +++ b/api/libs/cloning/src/infrastructure/archive-reader.adapter.ts @@ -1,5 +1,7 @@ -import { FileRepository } from '@marxan/files-repository'; -import { fileNotFound } from '@marxan/files-repository/file.repository'; +import { + CloningFilesRepository, + fileNotFound, +} from '@marxan/cloning-files-repository'; import { Injectable } from '@nestjs/common'; import { Either, isLeft, left } from 'fp-ts/lib/Either'; import { Readable } from 'stream'; @@ -8,7 +10,7 @@ import { ArchiveReader, Failure } from './archive-reader.port'; @Injectable() export class ArchiveReaderAdapter implements ArchiveReader { - constructor(private readonly fileRepository: FileRepository) {} + constructor(private readonly fileRepository: CloningFilesRepository) {} async get(location: ArchiveLocation): Promise> { const readableOrError = await this.fileRepository.get(location.value); diff --git a/api/libs/cloning/src/infrastructure/archive-reader.module.ts b/api/libs/cloning/src/infrastructure/archive-reader.module.ts index b009355ce5..69090041b6 100644 --- a/api/libs/cloning/src/infrastructure/archive-reader.module.ts +++ b/api/libs/cloning/src/infrastructure/archive-reader.module.ts @@ -1,10 +1,10 @@ -import { FileRepositoryModule } from '@marxan/files-repository'; +import { CloningFileSRepositoryModule } from '@marxan/cloning-files-repository'; import { Module } from '@nestjs/common'; import { ArchiveReaderAdapter } from './archive-reader.adapter'; import { ArchiveReader } from './archive-reader.port'; @Module({ - imports: [FileRepositoryModule], + imports: [CloningFileSRepositoryModule], providers: [{ provide: ArchiveReader, useClass: ArchiveReaderAdapter }], exports: [ArchiveReader], }) diff --git a/api/libs/cloning/src/infrastructure/archive-reader.port.ts b/api/libs/cloning/src/infrastructure/archive-reader.port.ts index bfe693de15..e99e32d045 100644 --- a/api/libs/cloning/src/infrastructure/archive-reader.port.ts +++ b/api/libs/cloning/src/infrastructure/archive-reader.port.ts @@ -1,4 +1,4 @@ -import { fileNotFound } from '@marxan/files-repository/file.repository'; +import { fileNotFound } from '@marxan/cloning-files-repository'; import { Either } from 'fp-ts/lib/Either'; import { Readable } from 'stream'; import { ArchiveLocation } from '../domain/archive-location'; diff --git a/api/libs/files-repository/src/file-repository.module.ts b/api/libs/files-repository/src/file-repository.module.ts deleted file mode 100644 index c59bd0b882..0000000000 --- a/api/libs/files-repository/src/file-repository.module.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Module } from '@nestjs/common'; -import { AppConfig } from '../../../apps/api/src/utils/config.utils'; -import { CloningStoragePath, FileRepository } from './file.repository'; -import { TempStorageRepository } from './temp-storage.repository'; - -@Module({ - imports: [], - providers: [ - { - provide: CloningStoragePath, - useValue: AppConfig.get('storage.cloningFileStorage.localPath'), - }, - { - provide: FileRepository, - /** - * Temporary override in lib core - to avoid overrides in each application. - * Once actual `FileRepository` is implemented, should be removed. - */ - useClass: TempStorageRepository, - }, - ], - exports: [FileRepository], -}) -export class FileRepositoryModule {} diff --git a/api/libs/files-repository/src/index.ts b/api/libs/files-repository/src/index.ts deleted file mode 100644 index 3ee0d84514..0000000000 --- a/api/libs/files-repository/src/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -export { FileRepositoryModule } from './file-repository.module'; -export { - GetFileError, - FileRepository, - SaveFileError, - unknownError, - storageNotReachable, -} from './file.repository'; - -export { TempStorageRepository } from './temp-storage.repository'; diff --git a/api/nest-cli.json b/api/nest-cli.json index db30a804e9..ea1f516757 100644 --- a/api/nest-cli.json +++ b/api/nest-cli.json @@ -226,11 +226,11 @@ }, "files-repository": { "type": "library", - "root": "libs/files-repository", + "root": "libs/cloning-files-repository", "entryFile": "index", - "sourceRoot": "libs/files-repository/src", + "sourceRoot": "libs/cloning-files-repository/src", "compilerOptions": { - "tsConfigPath": "libs/files-repository/tsconfig.lib.json" + "tsConfigPath": "libs/cloning-files-repository/tsconfig.lib.json" } }, "cloning": { diff --git a/api/package.json b/api/package.json index 4b19bb6294..cc326746c1 100644 --- a/api/package.json +++ b/api/package.json @@ -229,8 +229,8 @@ "@marxan/projects": "/libs/projects/src", "@marxan/blm-calibration/(.*)": "/libs/blm-calibration/src/$1", "@marxan/blm-calibration": "/libs/blm-calibration/src", - "@marxan/files-repository/(.*)": "/libs/files-repository/src/$1", - "@marxan/files-repository": "/libs/files-repository/src", + "@marxan/cloning-files-repository/(.*)": "/libs/cloning-files-repository/src/$1", + "@marxan/cloning-files-repository": "/libs/cloning-files-repository/src", "@marxan/cloning/(.*)": "/libs/cloning/src/$1", "@marxan/cloning": "/libs/cloning/src", "@marxan/code-guide/(.*)": "/libs/code-guide/src/$1", diff --git a/api/tsconfig.json b/api/tsconfig.json index 4addd9a907..5be778708c 100644 --- a/api/tsconfig.json +++ b/api/tsconfig.json @@ -13,36 +13,18 @@ "baseUrl": "./", "incremental": true, "paths": { - "@marxan-geoprocessing/*": [ - "apps/geoprocessing/src/*" - ], - "@marxan-api/*": [ - "apps/api/src/*" - ], - "@marxan/utils": [ - "libs/utils/src" - ], - "@marxan/utils/*": [ - "libs/utils/src/*" - ], - "@marxan/scenarios-planning-unit": [ - "libs/scenarios-planning-unit/src" - ], + "@marxan-geoprocessing/*": ["apps/geoprocessing/src/*"], + "@marxan-api/*": ["apps/api/src/*"], + "@marxan/utils": ["libs/utils/src"], + "@marxan/utils/*": ["libs/utils/src/*"], + "@marxan/scenarios-planning-unit": ["libs/scenarios-planning-unit/src"], "@marxan/scenarios-planning-unit/*": [ "libs/scenarios-planning-unit/src/*" ], - "@marxan/admin-regions": [ - "libs/admin-regions/src" - ], - "@marxan/admin-regions/*": [ - "libs/admin-regions/src/*" - ], - "@marxan/api-events": [ - "libs/api-events/src" - ], - "@marxan/api-events/*": [ - "libs/api-events/src/*" - ], + "@marxan/admin-regions": ["libs/admin-regions/src"], + "@marxan/admin-regions/*": ["libs/admin-regions/src/*"], + "@marxan/api-events": ["libs/api-events/src"], + "@marxan/api-events/*": ["libs/api-events/src/*"], "@marxan-jobs/planning-unit-geometry": [ "libs/planning-unit-geometry/src" ], @@ -55,142 +37,57 @@ "@marxan-jobs/planning-unit-protection-level/*": [ "libs/planning-unit-protection-level/src/*" ], - "@marxan/scenario-cost-surface": [ - "libs/scenario-cost-surface/src" - ], - "@marxan/scenario-cost-surface/*": [ - "libs/scenario-cost-surface/src/*" - ], - "@marxan/marxan-input": [ - "libs/marxan-input/src" - ], - "@marxan/marxan-input/*": [ - "libs/marxan-input/src/*" - ], - "@marxan/marxan-output": [ - "libs/marxan-output/src" - ], - "@marxan/marxan-output/*": [ - "libs/marxan-output/src/*" - ], - "@marxan/planning-area-repository": [ - "libs/planning-area-repository/src" - ], + "@marxan/scenario-cost-surface": ["libs/scenario-cost-surface/src"], + "@marxan/scenario-cost-surface/*": ["libs/scenario-cost-surface/src/*"], + "@marxan/marxan-input": ["libs/marxan-input/src"], + "@marxan/marxan-input/*": ["libs/marxan-input/src/*"], + "@marxan/marxan-output": ["libs/marxan-output/src"], + "@marxan/marxan-output/*": ["libs/marxan-output/src/*"], + "@marxan/planning-area-repository": ["libs/planning-area-repository/src"], "@marxan/planning-area-repository/*": [ "libs/planning-area-repository/src/*" ], - "@marxan/scenario-puvspr": [ - "libs/scenario-puvspr/src" - ], - "@marxan/scenario-puvspr/*": [ - "libs/scenario-puvspr/src/*" - ], - "@marxan/scenario-run-queue": [ - "libs/scenario-run-queue/src" - ], - "@marxan/scenario-run-queue/*": [ - "libs/scenario-run-queue/src/*" - ], - "@marxan/features": [ - "libs/features/src" - ], - "@marxan/features/*": [ - "libs/features/src/*" - ], - "@marxan/geofeature-calculations": [ - "libs/geofeature-calculations/src" - ], + "@marxan/scenario-puvspr": ["libs/scenario-puvspr/src"], + "@marxan/scenario-puvspr/*": ["libs/scenario-puvspr/src/*"], + "@marxan/scenario-run-queue": ["libs/scenario-run-queue/src"], + "@marxan/scenario-run-queue/*": ["libs/scenario-run-queue/src/*"], + "@marxan/features": ["libs/features/src"], + "@marxan/features/*": ["libs/features/src/*"], + "@marxan/geofeature-calculations": ["libs/geofeature-calculations/src"], "@marxan/geofeature-calculations/*": [ "libs/geofeature-calculations/src/*" ], - "@marxan/iucn": [ - "libs/iucn/src" - ], - "@marxan/iucn/*": [ - "libs/iucn/src/*" - ], - "@marxan/shapefile-converter": [ - "libs/shapefile-converter/src" - ], - "@marxan/shapefile-converter/*": [ - "libs/shapefile-converter/src/*" - ], - "@marxan/planning-units-grid": [ - "libs/planning-units-grid/src" - ], - "@marxan/planning-units-grid/*": [ - "libs/planning-units-grid/src/*" - ], - "@marxan/protected-areas": [ - "libs/protected-areas/src" - ], - "@marxan/protected-areas/*": [ - "libs/protected-areas/src/*" - ], - "@marxan/tiles": [ - "libs/tiles/src" - ], - "@marxan/tiles/*": [ - "libs/tiles/src/*" - ], - "@marxan/planning-unit-features": [ - "libs/planning-unit-features/src" - ], - "@marxan/planning-unit-features/*": [ - "libs/planning-unit-features/src/*" - ], - "@marxan/projects": [ - "libs/projects/src" - ], - "@marxan/projects/*": [ - "libs/projects/src/*" - ], - "@marxan/blm-calibration": [ - "libs/blm-calibration/src" - ], - "@marxan/blm-calibration/*": [ - "libs/blm-calibration/src/*" - ], - "@marxan/files-repository": [ - "libs/files-repository/src" - ], - "@marxan/files-repository/*": [ - "libs/files-repository/src/*" - ], - "@marxan/cloning": [ - "libs/cloning/src" - ], - "@marxan/cloning/*": [ - "libs/cloning/src/*" - ], - "@marxan/code-guide": [ - "libs/code-guide/src" - ], - "@marxan/code-guide/*": [ - "libs/code-guide/src/*" - ], - "@marxan/webshot": [ - "libs/webshot/src" - ], - "@marxan/webshot/*": [ - "libs/webshot/src/*" - ], - "@marxan/geofeatures": [ - "libs/geofeatures/src" - ], - "@marxan/geofeatures/*": [ - "libs/geofeatures/src/*" - ], - "@marxan/domain-ids": [ - "libs/domain-ids/src" - ], - "@marxan/domain-ids/*": [ - "libs/domain-ids/src/*" - ] + "@marxan/iucn": ["libs/iucn/src"], + "@marxan/iucn/*": ["libs/iucn/src/*"], + "@marxan/shapefile-converter": ["libs/shapefile-converter/src"], + "@marxan/shapefile-converter/*": ["libs/shapefile-converter/src/*"], + "@marxan/planning-units-grid": ["libs/planning-units-grid/src"], + "@marxan/planning-units-grid/*": ["libs/planning-units-grid/src/*"], + "@marxan/protected-areas": ["libs/protected-areas/src"], + "@marxan/protected-areas/*": ["libs/protected-areas/src/*"], + "@marxan/tiles": ["libs/tiles/src"], + "@marxan/tiles/*": ["libs/tiles/src/*"], + "@marxan/planning-unit-features": ["libs/planning-unit-features/src"], + "@marxan/planning-unit-features/*": ["libs/planning-unit-features/src/*"], + "@marxan/projects": ["libs/projects/src"], + "@marxan/projects/*": ["libs/projects/src/*"], + "@marxan/blm-calibration": ["libs/blm-calibration/src"], + "@marxan/blm-calibration/*": ["libs/blm-calibration/src/*"], + "@marxan/cloning-files-repository": ["libs/cloning-files-repository/src"], + "@marxan/cloning-files-repository/*": [ + "libs/cloning-files-repository/src/*" + ], + "@marxan/cloning": ["libs/cloning/src"], + "@marxan/cloning/*": ["libs/cloning/src/*"], + "@marxan/code-guide": ["libs/code-guide/src"], + "@marxan/code-guide/*": ["libs/code-guide/src/*"], + "@marxan/webshot": ["libs/webshot/src"], + "@marxan/webshot/*": ["libs/webshot/src/*"], + "@marxan/geofeatures": ["libs/geofeatures/src"], + "@marxan/geofeatures/*": ["libs/geofeatures/src/*"], + "@marxan/domain-ids": ["libs/domain-ids/src"], + "@marxan/domain-ids/*": ["libs/domain-ids/src/*"] } }, - "exclude": [ - "node_modules", - "dist" - ] + "exclude": ["node_modules", "dist"] }