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
|
|
|
}
|