From f4b87daa7f71c0380ce0351e2e1f83778d6ebd2f Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Wed, 5 Feb 2025 12:48:57 -0800 Subject: [PATCH] Add DU to network service --- Server/service/networkService.js | 33 ++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/Server/service/networkService.js b/Server/service/networkService.js index 54edf39f9..8a58d4b88 100644 --- a/Server/service/networkService.js +++ b/Server/service/networkService.js @@ -1,5 +1,6 @@ import { errorMessages, successMessages } from "../utils/messages.js"; const SERVICE_NAME = "NetworkService"; +const UPROCK_ENDPOINT = "https://api.uprock.com/checkmate/push"; /** * Constructs a new NetworkService instance. @@ -19,6 +20,7 @@ class NetworkService { this.TYPE_HARDWARE = "hardware"; this.TYPE_DOCKER = "docker"; this.TYPE_PORT = "port"; + this.TYPE_DISTRIBUTED_HTTP = "distributed_http"; this.SERVICE_NAME = SERVICE_NAME; this.NETWORK_ERROR = 5000; this.PING_ERROR = 5001; @@ -323,6 +325,35 @@ class NetworkService { } } + async requestDistributedHttp(job) { + try { + const monitor = job.data; + const CALLBACK_URL = process.env.NGROK_URL + ? process.env.NGROK_URL + : process.env.CALLBACK_URL; + + const response = await this.axios.post( + UPROCK_ENDPOINT, + { + id: monitor._id, + url: monitor.url, + callback: `${CALLBACK_URL}/api/v1/distributed-uptime/callback`, + }, + { + headers: { + "Content-Type": "application/json", + "x-checkmate-key": process.env.UPROCK_API_KEY, + }, + } + ); + } catch (error) { + console.log(error.message); + error.service = this.SERVICE_NAME; + error.method = "requestDistributedHttp"; + throw error; + } + } + /** * Handles unsupported job types by throwing an error with details. * @@ -360,6 +391,8 @@ class NetworkService { return await this.requestDocker(job); case this.TYPE_PORT: return await this.requestPort(job); + case this.TYPE_DISTRIBUTED_HTTP: + return await this.requestDistributedHttp(job); default: return this.handleUnsupportedType(type);