fix settings

This commit is contained in:
Simon Larsen
2023-05-14 21:13:51 +01:00
parent 5baf3f0496
commit 61e590e161
10 changed files with 78 additions and 66 deletions

View File

@@ -20,24 +20,20 @@ export default class WebsiteRequest {
timeout?: number | undefined;
}
): Promise<WebsiteResponse> {
try {
// use axios to fetch an HTML page
const response: AxiosResponse = await axios.get(url.toString(), {
headers: options.headers || {},
timeout: options.timeout || 5000,
});
// use axios to fetch an HTML page
const response: AxiosResponse = await axios.get(url.toString(), {
headers: options.headers || {},
timeout: options.timeout || 5000,
});
// return the response
return {
url: url,
requestHeaders: options.headers || {},
responseHeaders: response.headers,
responseStatusCode: response.status,
responseBody: new HTML(response.data),
isOnline: true,
};
} catch (err) {
throw err;
}
// return the response
return {
url: url,
requestHeaders: options.headers || {},
responseHeaders: response.headers,
responseStatusCode: response.status,
responseBody: new HTML(response.data),
isOnline: true,
};
}
}

View File

@@ -249,7 +249,6 @@ export default class API {
}
private static getErrorResponse(error: AxiosError): HTTPErrorResponse {
if (error.response) {
return new HTTPErrorResponse(
error.response.status,

View File

@@ -30,16 +30,20 @@ export default class Response {
const method: string = oneUptimeRequest.method;
const url: URL = URL.fromString(oneUptimeRequest.url);
const header_info: string = `Response ID: ${oneUptimeRequest.id
} -- POD NAME: ${process.env['POD_NAME'] || 'NONE'
} -- METHOD: ${method} -- URL: ${url.toString()} -- DURATION: ${(
requestEndedAt.getTime() -
(oneUptimeRequest.requestStartedAt as Date).getTime()
).toString()}ms -- STATUS: ${oneUptimeResponse.statusCode}`;
const header_info: string = `Response ID: ${
oneUptimeRequest.id
} -- POD NAME: ${
process.env['POD_NAME'] || 'NONE'
} -- METHOD: ${method} -- URL: ${url.toString()} -- DURATION: ${(
requestEndedAt.getTime() -
(oneUptimeRequest.requestStartedAt as Date).getTime()
).toString()}ms -- STATUS: ${oneUptimeResponse.statusCode}`;
const body_info: string = `Response ID: ${oneUptimeRequest.id
} -- RESPONSE BODY: ${responsebody ? JSON.stringify(responsebody, null, 2) : 'EMPTY'
}`;
const body_info: string = `Response ID: ${
oneUptimeRequest.id
} -- RESPONSE BODY: ${
responsebody ? JSON.stringify(responsebody, null, 2) : 'EMPTY'
}`;
if (oneUptimeResponse.statusCode > 299) {
logger.error(header_info + '\n ' + body_info);
@@ -162,7 +166,7 @@ export default class Response {
res: ExpressResponse,
list: Array<BaseModel>,
count: PositiveNumber,
modelType: { new(): BaseModel }
modelType: { new (): BaseModel }
): void {
return this.sendJsonArrayResponse(
req,
@@ -178,15 +182,15 @@ export default class Response {
req: ExpressRequest,
res: ExpressResponse,
item: BaseModel | null,
modelType: { new(): BaseModel }
modelType: { new (): BaseModel }
): void {
return this.sendJsonObjectResponse(
req,
res,
item
? JSONFunctions.serialize(
JSONFunctions.toJSONObject(item, modelType)
)
JSONFunctions.toJSONObject(item, modelType)
)
: {}
);
}

View File

@@ -41,7 +41,6 @@ const MonitorProbes: FunctionComponent<PageComponentProps> = (
const [error, setError] = useState<string>('');
const [probes, setProbes] = useState<Array<Probe>>([]);
const fetchItem: Function = async (): Promise<void> => {
@@ -65,25 +64,39 @@ const MonitorProbes: FunctionComponent<PageComponentProps> = (
return;
}
const projectProbeList: ListResult<Probe> = await ModelAPI.getList(Probe, {
projectId: DashboardNavigation.getProjectId()?.toString(),
}, LIMIT_PER_PROJECT, 0, {
name: true,
_id: true
}, {}, {}, {});
const projectProbeList: ListResult<Probe> = await ModelAPI.getList(
Probe,
{
projectId: DashboardNavigation.getProjectId()?.toString(),
},
LIMIT_PER_PROJECT,
0,
{
name: true,
_id: true,
},
{},
{},
{}
);
const globalProbeList: ListResult<Probe> = await ModelAPI.getList(Probe, {
}, LIMIT_PER_PROJECT, 0, {
name: true,
_id: true
}, {}, {}, {
overrideRequestUrl: URL.fromString(
DASHBOARD_API_URL.toString()
).addRoute('/probe/global-probes'),
});
const globalProbeList: ListResult<Probe> = await ModelAPI.getList(
Probe,
{},
LIMIT_PER_PROJECT,
0,
{
name: true,
_id: true,
},
{},
{},
{
overrideRequestUrl: URL.fromString(
DASHBOARD_API_URL.toString()
).addRoute('/probe/global-probes'),
}
);
setProbes([...projectProbeList.data, ...globalProbeList.data]);
setMonitorType(item.monitorType);

View File

@@ -75,13 +75,14 @@ export default class MonitorUtil {
return result;
}
if (monitor.monitorType === MonitorType.Ping || monitor.monitorType === MonitorType.IP) {
if (
monitor.monitorType === MonitorType.Ping ||
monitor.monitorType === MonitorType.IP
) {
const response: PingResponse = await PingMonitor.ping(
monitorStep.data?.monitorDestination
);
console.log(response);
result.isOnline = response.isOnline;
result.responseTimeInMs = response.responseTimeInMS?.toNumber();
}

View File

@@ -36,7 +36,9 @@ export default class PingMonitor {
} else if (host instanceof URL) {
connectionOptions = {
host: host.hostname.hostname,
port: host.hostname.port?.toNumber() || (host.isHttps() ? 443 : 80),
port:
host.hostname.port?.toNumber() ||
(host.isHttps() ? 443 : 80),
timeout,
};
} else {

View File

@@ -38,17 +38,16 @@ export default class WebsiteMonitor {
responseHeaders: result.responseHeaders,
};
} catch (err) {
if(err instanceof AxiosError){
if (err instanceof AxiosError) {
return {
url: url,
isOnline: !!err.response,
isOnline: Boolean(err.response),
requestHeaders: {},
isSecure: url.protocol === Protocol.HTTPS,
responseTimeInMS: new PositiveNumber(0),
statusCode: err.response?.status,
responseBody: err.response?.data,
responseHeaders: err.response?.headers as Headers || {},
responseHeaders: (err.response?.headers as Headers) || {},
};
}

View File

@@ -108,7 +108,6 @@ router.post(
return Boolean(monitor._id);
});
// return the list of monitors to be monitored
return Response.sendEntityArrayResponse(

View File

@@ -29,8 +29,7 @@ router.get(
let responseHeaders: JSONValue | undefined =
LocalCache.getJSON('TestServer', 'responseHeaders') || {};
if(responseHeaders && typeof responseHeaders === Typeof.String) {
if (responseHeaders && typeof responseHeaders === Typeof.String) {
responseHeaders = JSON.parse(responseHeaders.toString());
}
@@ -45,7 +44,7 @@ router.get(
res,
responseCode,
responseBody,
responseHeaders ? responseHeaders as any : {}
responseHeaders ? (responseHeaders as any) : {}
);
} catch (err) {
return next(err);

View File

@@ -33,9 +33,9 @@ router.post(
| string
| undefined;
const responseHeaders: JSONObject | undefined = data['responseHeaders'] as
| JSONObject
| undefined;
const responseHeaders: JSONObject | undefined = data[
'responseHeaders'
] as JSONObject | undefined;
LocalCache.setJSON(
'TestServer',