Files
Minikura/apps/backend/src/application/services/reverse-proxy.service.ts
T

83 lines
2.4 KiB
TypeScript
Raw Normal View History

2026-02-17 18:12:02 +07:00
import type { ReverseProxyWithEnvVars } from "@minikura/db";
2026-02-13 15:52:13 +07:00
import {
ReverseProxyCreatedEvent,
ReverseProxyDeletedEvent,
ReverseProxyUpdatedEvent,
} from "../../domain/events/reverse-proxy-lifecycle.events";
import type {
ReverseProxyCreateInput,
ReverseProxyRepository,
ReverseProxyUpdateInput,
} from "../../domain/repositories/reverse-proxy.repository";
2026-08-13 02:18:51 +07:00
import type { OperatorResourceSync } from "../../services/operator-resource-sync";
2026-02-17 18:12:02 +07:00
import type { IReverseProxyService } from "../interfaces/reverse-proxy.service.interface";
import { BaseCrudService } from "./base-crud.service";
2026-02-13 15:52:13 +07:00
2026-02-17 18:12:02 +07:00
export class ReverseProxyService
extends BaseCrudService<
ReverseProxyWithEnvVars,
ReverseProxyCreateInput,
ReverseProxyUpdateInput,
ReverseProxyRepository,
{
created: typeof ReverseProxyCreatedEvent;
updated: typeof ReverseProxyUpdatedEvent;
deleted: typeof ReverseProxyDeletedEvent;
2026-02-13 15:52:13 +07:00
}
2026-02-17 18:12:02 +07:00
>
implements IReverseProxyService
{
2026-08-13 02:18:51 +07:00
constructor(
reverseProxyRepo: ReverseProxyRepository,
private operatorResourceSync: OperatorResourceSync
) {
2026-02-17 18:12:02 +07:00
super(
reverseProxyRepo,
{
created: ReverseProxyCreatedEvent,
updated: ReverseProxyUpdatedEvent,
deleted: ReverseProxyDeletedEvent,
},
"ReverseProxyServer"
2026-02-13 15:52:13 +07:00
);
}
2026-02-17 18:12:02 +07:00
protected getEntityType(input: ReverseProxyCreateInput) {
return input.type || "VELOCITY";
2026-02-13 15:52:13 +07:00
}
2026-02-17 18:12:02 +07:00
protected getInputId(input: ReverseProxyCreateInput): string {
return typeof input.id === "string" ? input.id : String(input.id);
2026-02-13 15:52:13 +07:00
}
2026-02-17 18:12:02 +07:00
getAllReverseProxies(omitSensitive = false) {
return this.getAll(omitSensitive);
2026-02-13 15:52:13 +07:00
}
2026-02-17 18:12:02 +07:00
getReverseProxyById(id: string, omitSensitive = false) {
return this.getById(id, omitSensitive);
2026-02-13 15:52:13 +07:00
}
2026-02-17 18:12:02 +07:00
createReverseProxy(input: ReverseProxyCreateInput) {
return this.create(input);
}
updateReverseProxy(id: string, input: ReverseProxyUpdateInput) {
return this.update(id, input);
}
deleteReverseProxy(id: string) {
return this.delete(id);
2026-02-13 15:52:13 +07:00
}
2026-08-13 02:18:51 +07:00
override async setEnvVariable(proxyId: string, key: string, value: string): Promise<void> {
await super.setEnvVariable(proxyId, key, value);
await this.operatorResourceSync.syncReverseProxyById(proxyId);
}
override async deleteEnvVariable(proxyId: string, key: string): Promise<void> {
await super.deleteEnvVariable(proxyId, key);
await this.operatorResourceSync.syncReverseProxyById(proxyId);
}
2026-02-13 15:52:13 +07:00
}