Files
Homarr/src/pages/api/modules/ping.ts
2023-04-25 16:06:15 +09:00

41 lines
1.3 KiB
TypeScript

import axios, { AxiosError } from 'axios';
import https from 'https';
import Consola from 'consola';
import { NextApiRequest, NextApiResponse } from 'next';
async function Get(req: NextApiRequest, res: NextApiResponse) {
// Parse req.body as a AppItem
const { url } = req.query;
const agent = new https.Agent({ rejectUnauthorized: false });
await axios
.get(url as string, { httpsAgent: agent, timeout: 2000 })
.then((response) => {
res.status(response.status).json(response.statusText);
})
.catch((error: AxiosError) => {
if (error.response) {
Consola.warn(`Unexpected response: ${error.message}`);
res.status(error.response.status).json(error.response.statusText);
} else if (error.code === 'ECONNABORTED') {
res.status(408).json('Request Timeout');
} else {
Consola.error(`Unexpected error: ${error.message}`);
res.status(500).json('Internal Server Error');
}
});
// // Make a request to the URL
// const response = await axios.get(url);
// // Return the response
}
export default async (req: NextApiRequest, res: NextApiResponse) => {
// Filter out if the reuqest is a POST or a GET
if (req.method === 'GET') {
return Get(req, res);
}
return res.status(405).json({
statusCode: 405,
message: 'Method not allowed',
});
};