config
This commit is contained in:
1 parent
190d9dd2b1
commit
27c44a0fbd
2 files changed
+9
-50
No files matched your search
@@ -82,6 +82,7 @@ import { PageSpeedProvider } from "@/service/infrastructure/network/PageSpeedPro
|
||||
import { HardwareProvider } from "@/service/infrastructure/network/HardwareProvider.js";
|
||||
import { DockerProvider } from "@/service/infrastructure/network/DockerProvider.js";
|
||||
import { PortProvider } from "@/service/infrastructure/network/PortProvider.js";
|
||||
import { GameProvider } from "@/service/infrastructure/network/GameProvider.js";
|
||||
|
||||
export type InitializedServices = {
|
||||
settingsService: any;
|
||||
@@ -159,6 +160,7 @@ export const initializeServices = async ({
|
||||
const hardwareProvider = new HardwareProvider(httpProvider);
|
||||
const dockerProvider = new DockerProvider(logger, Docker);
|
||||
const portProvider = new PortProvider(net);
|
||||
const gameProvider = new GameProvider(logger, GameDig);
|
||||
|
||||
const networkService = new NetworkService(
|
||||
axios,
|
||||
@@ -180,7 +182,8 @@ export const initializeServices = async ({
|
||||
pageSpeedProvider,
|
||||
hardwareProvider,
|
||||
dockerProvider,
|
||||
portProvider
|
||||
portProvider,
|
||||
gameProvider
|
||||
);
|
||||
const emailService = new EmailService(settingsService, fs, path, compile, mjml2html, nodemailer, logger);
|
||||
|
||||
|
||||
@@ -101,6 +101,7 @@ class NetworkService implements INetworkService {
|
||||
private hardwareProvider;
|
||||
private dockerProvider;
|
||||
private portProvider;
|
||||
private gameProvider;
|
||||
|
||||
private buildStatusResponse = <T>({
|
||||
monitor,
|
||||
@@ -176,7 +177,8 @@ class NetworkService implements INetworkService {
|
||||
pagespeedProvider: IStatusProvider<PageSpeedStatusPayload>,
|
||||
hardwareProvider: IStatusProvider<HardwareStatusPayload>,
|
||||
dockerProvider: IStatusProvider<DockerStatusPayload>,
|
||||
portProvider: IStatusProvider<PortStatusPayload>
|
||||
portProvider: IStatusProvider<PortStatusPayload>,
|
||||
gameProvider: IStatusProvider<GameStatusPayload>
|
||||
) {
|
||||
this.TYPE_PING = "ping";
|
||||
this.TYPE_HTTP = "http";
|
||||
@@ -208,6 +210,7 @@ class NetworkService implements INetworkService {
|
||||
this.hardwareProvider = hardwareProvider;
|
||||
this.dockerProvider = dockerProvider;
|
||||
this.portProvider = portProvider;
|
||||
this.gameProvider = gameProvider;
|
||||
const cacheable = new CacheableLookup();
|
||||
|
||||
this.got = got.extend({
|
||||
@@ -266,7 +269,7 @@ class NetworkService implements INetworkService {
|
||||
case this.TYPE_PORT:
|
||||
return await this.portProvider.handle(monitor);
|
||||
case this.TYPE_GAME:
|
||||
return await this.requestGame(monitor);
|
||||
return await this.gameProvider.handle(monitor);
|
||||
case this.TYPE_GRPC:
|
||||
return await this.requestGrpc(monitor);
|
||||
default:
|
||||
@@ -628,53 +631,6 @@ class NetworkService implements INetworkService {
|
||||
}
|
||||
}
|
||||
|
||||
private async requestGame(monitor: Monitor): Promise<MonitorStatusResponse<GameStatusPayload>> {
|
||||
try {
|
||||
const { url, port, gameId } = monitor;
|
||||
|
||||
const gameResponse = this.buildStatusResponse<GameStatusPayload>({
|
||||
monitor,
|
||||
overrides: {
|
||||
code: 200,
|
||||
status: true,
|
||||
message: "Success",
|
||||
},
|
||||
});
|
||||
|
||||
const state = await this.GameDig.query({
|
||||
type: gameId ?? "unknown",
|
||||
host: url,
|
||||
port: port ?? 0,
|
||||
}).catch((error: unknown): undefined => {
|
||||
this.logger.warn({
|
||||
message: error instanceof Error ? error.message : String(error),
|
||||
service: this.SERVICE_NAME,
|
||||
method: "requestGame",
|
||||
details: { url, port, gameId },
|
||||
});
|
||||
return undefined;
|
||||
});
|
||||
|
||||
if (!state) {
|
||||
gameResponse.code = this.NETWORK_ERROR;
|
||||
gameResponse.status = false;
|
||||
gameResponse.message = "No response";
|
||||
return gameResponse;
|
||||
}
|
||||
|
||||
gameResponse.responseTime = state.ping ?? 0;
|
||||
gameResponse.payload = state as GameStatusPayload;
|
||||
return gameResponse;
|
||||
} catch (err: unknown) {
|
||||
const originalMessage = err instanceof Error ? err.message : String(err);
|
||||
throw new AppError({
|
||||
message: originalMessage || "Error performing game server check",
|
||||
service: this.SERVICE_NAME,
|
||||
method: "requestGame",
|
||||
details: { url: monitor.url, port: monitor.port, gameId: monitor.gameId },
|
||||
});
|
||||
}
|
||||
}
|
||||
private async requestGrpc(monitor: Monitor): Promise<MonitorStatusResponse<GrpcStatusPayload>> {
|
||||
try {
|
||||
const { url, port, ignoreTlsErrors } = monitor;
|
||||
|
||||
Reference in new issue
Block a user