Skip to content

Commit

Permalink
feat(config): Add config job for imagery processing api (#2162)
Browse files Browse the repository at this point in the history
* Add config job for imagery processing api

* Update the configJob to cogCreation config.

* Change the config name as ProcessingJob.
  • Loading branch information
Wentao-Kuang authored Apr 25, 2022
1 parent 24ed0c0 commit 4ad2d37
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 1 deletion.
14 changes: 13 additions & 1 deletion packages/config/src/base.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,14 @@ import { Epsg } from '@basemaps/geo';
import { BaseConfig } from './config/base.js';
import { ConfigPrefix } from './config/prefix.js';
import { ConfigLayer, ConfigTileSet, TileSetType } from './config/tile.set.js';
import { ConfigImagery, ConfigProvider, ConfigTileSetRaster, ConfigTileSetVector, ConfigVectorStyle } from './index.js';
import {
ConfigImagery,
ConfigProvider,
ConfigTileSetRaster,
ConfigTileSetVector,
ConfigVectorStyle,
ConfigProcessingJob,
} from './index.js';

export class ConfigInstance {
cfg: BasemapsConfigProvider;
Expand All @@ -23,6 +30,10 @@ export class ConfigInstance {
return this.cfg.Provider;
}

get ProcessingJob(): BasemapsConfigObject<ConfigProcessingJob> {
return this.cfg.ProcessingJob;
}

setConfigProvider(cfg: BasemapsConfigProvider): void {
this.cfg = cfg;
}
Expand Down Expand Up @@ -69,6 +80,7 @@ export abstract class BasemapsConfigProvider {
abstract Imagery: BasemapsConfigObject<ConfigImagery>;
abstract Style: BasemapsConfigObject<ConfigVectorStyle>;
abstract Provider: BasemapsConfigObject<ConfigProvider>;
abstract ProcessingJob: BasemapsConfigObject<ConfigProcessingJob>;
}

export abstract class BasemapsConfigObject<T extends BaseConfig> {
Expand Down
1 change: 1 addition & 0 deletions packages/config/src/config/prefix.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ export enum ConfigPrefix {
Provider = 'pv',
ImageryRule = 'ir',
Style = 'st',
ProcessingJob = 'pj',
}
19 changes: 19 additions & 0 deletions packages/config/src/config/processing.job.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { BaseConfig } from './base.js';

export enum JobStatus {
Processing = 'processing',
Complete = 'complete',
}

export type ConfigProcessingJob = ProcessingJob | ProcessingJobFailed;

export interface ProcessingJob extends BaseConfig {
/** Job Status for the imagery importing batch jobs */
status: JobStatus;
}

export interface ProcessingJobFailed extends BaseConfig {
status: 'failed';
/** Job Batch processing error messages */
error: string;
}
2 changes: 2 additions & 0 deletions packages/config/src/dynamo/dynamo.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import DynamoDB from 'aws-sdk/clients/dynamodb.js';
import { BasemapsConfigProvider } from '../base.config.js';
import { BaseConfig } from '../config/base.js';
import { ConfigImagery } from '../config/imagery.js';
import { ConfigProcessingJob } from '../config/processing.job.js';
import { ConfigPrefix } from '../config/prefix.js';
import { ConfigProvider } from '../config/provider.js';
import { ConfigTileSet } from '../config/tile.set.js';
Expand All @@ -19,6 +20,7 @@ export class ConfigProviderDynamo extends BasemapsConfigProvider {
Style = new ConfigDynamoCached<ConfigVectorStyle>(this, ConfigPrefix.Style);
TileSet = new ConfigDynamoBase<ConfigTileSet>(this, ConfigPrefix.TileSet);
Provider = new ConfigDynamoCached<ConfigProvider>(this, ConfigPrefix.Provider);
ProcessingJob = new ConfigDynamoCached<ConfigProcessingJob>(this, ConfigPrefix.ProcessingJob);

constructor(tableName: string) {
super();
Expand Down
1 change: 1 addition & 0 deletions packages/config/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ export { BaseConfig } from './config/base.js';
export { ConfigImagery } from './config/imagery.js';
export { ConfigPrefix } from './config/prefix.js';
export { ConfigProvider } from './config/provider.js';
export { ConfigProcessingJob } from './config/processing.job.js';
export {
ConfigLayer,
ConfigTileSet,
Expand Down
2 changes: 2 additions & 0 deletions packages/config/src/memory/memory.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { BasemapsConfigProvider, BasemapsConfigObject } from '../base.config.js';
import { BaseConfig } from '../config/base.js';
import { ConfigImagery } from '../config/imagery.js';
import { ConfigProcessingJob } from '../config/processing.job.js';
import { ConfigPrefix } from '../config/prefix.js';
import { ConfigProvider } from '../config/provider.js';
import { ConfigTileSet } from '../config/tile.set.js';
Expand All @@ -11,6 +12,7 @@ export class ConfigProviderMemory extends BasemapsConfigProvider {
Style = new MemoryConfigObject<ConfigVectorStyle>(this, ConfigPrefix.Style);
TileSet = new MemoryConfigObject<ConfigTileSet>(this, ConfigPrefix.TileSet);
Provider = new MemoryConfigObject<ConfigProvider>(this, ConfigPrefix.Provider);
ProcessingJob = new MemoryConfigObject<ConfigProcessingJob>(this, ConfigPrefix.ProcessingJob);

/** Memory cache of all objects */
objects = new Map<string, BaseConfig>();
Expand Down

0 comments on commit 4ad2d37

Please sign in to comment.