Skip to content

Commit

Permalink
Merge pull request #492 from dfpc-coe/outgoing
Browse files Browse the repository at this point in the history
Outgoing Layers
  • Loading branch information
ingalls authored Jan 31, 2025
2 parents 81ea984 + 7e35a2e commit be53142
Show file tree
Hide file tree
Showing 8 changed files with 2,599 additions and 16 deletions.
3 changes: 3 additions & 0 deletions api/lib/models.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ export default class Models {

Layer: Layer;
LayerIncoming: Modeler<typeof pgtypes.LayerIncoming>;;
LayerOutgoing: Modeler<typeof pgtypes.LayerOutgoing>;;
LayerTemplate: Modeler<typeof pgtypes.LayerTemplate>;
LayerAlert: Modeler<typeof pgtypes.LayerAlert>;

Expand All @@ -61,6 +62,8 @@ export default class Models {
this.Iconset = new Modeler(pg, pgtypes.Iconset);
this.Layer = new Layer(pg);
this.LayerIncoming = new Modeler(pg, pgtypes.LayerIncoming);
this.LayerOutgoing = new Modeler(pg, pgtypes.LayerOutgoing);

this.LayerAlert = new Modeler(pg, pgtypes.LayerAlert);
this.LayerTemplate = new Modeler(pg, pgtypes.LayerTemplate);
}
Expand Down
34 changes: 33 additions & 1 deletion api/lib/models/Layer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,14 @@ export const Layer_Config = Type.Object({
}))
});

export const AugmentedLayerOutgoing = Type.Object({
layer: Type.Integer(),
created: Type.String(),
updated: Type.String(),
environment: Type.Any(),
ephemeral: Type.Record(Type.String(), Type.String()),
})

export const AugmentedLayerIncoming = Type.Object({
layer: Type.Integer(),
created: Type.String(),
Expand Down Expand Up @@ -49,7 +57,8 @@ export const AugmentedLayer = Type.Object({
timeout: Type.Integer(),
priority: Type.Enum(Layer_Priority),

incoming: Type.Optional(AugmentedLayerIncoming)
incoming: Type.Optional(AugmentedLayerIncoming),
outgoing: Type.Optional(AugmentedLayerOutgoing)
});

export default class LayerModel extends Modeler<typeof Layer> {
Expand Down Expand Up @@ -88,6 +97,13 @@ export default class LayerModel extends Modeler<typeof Layer> {
delete l.incoming;
}

if (l.outgoing && l.outgoing.layer) {
if (typeof l.outgoing.ephemeral === 'string') l.outgoing.ephemeral = JSON.parse(l.outgoing.ephemeral)
if (typeof l.outgoing.environment === 'string') l.outgoing.environment = JSON.parse(l.outgoing.environment)
} else {
delete l.outgoing;
}

return l
}

Expand Down Expand Up @@ -146,6 +162,14 @@ export default class LayerModel extends Modeler<typeof Layer> {
data: LayerIncoming.data,
enabled_styles: LayerIncoming.enabled_styles,
styles: LayerIncoming.styles,
}),

outgoing: jsonBuildObject({
layer: LayerIncoming.layer,
created: LayerIncoming.created,
updated: LayerIncoming.updated,
environment: LayerIncoming.environment,
ephemeral: LayerIncoming.ephemeral,
})
})
.from(Layer)
Expand Down Expand Up @@ -196,6 +220,14 @@ export default class LayerModel extends Modeler<typeof Layer> {
data: LayerIncoming.data,
enabled_styles: LayerIncoming.enabled_styles,
styles: LayerIncoming.styles,
}),

outgoing: jsonBuildObject({
layer: LayerIncoming.layer,
created: LayerIncoming.created,
updated: LayerIncoming.updated,
environment: LayerIncoming.environment,
ephemeral: LayerIncoming.ephemeral,
})
})
.from(Layer)
Expand Down
9 changes: 9 additions & 0 deletions api/migrations/0090_nosy_thunderbolts.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
CREATE TABLE "layers_outgoing" (
"layer" integer PRIMARY KEY NOT NULL,
"created" timestamp with time zone DEFAULT Now() NOT NULL,
"updated" timestamp with time zone DEFAULT Now() NOT NULL,
"environment" json DEFAULT '{}'::json NOT NULL,
"ephemeral" json DEFAULT '{}'::json NOT NULL
);
--> statement-breakpoint
ALTER TABLE "layers_outgoing" ADD CONSTRAINT "layers_outgoing_layer_layers_id_fk" FOREIGN KEY ("layer") REFERENCES "public"."layers"("id") ON DELETE no action ON UPDATE no action;
Loading

0 comments on commit be53142

Please sign in to comment.