frpc-desktop/electron/api/proxy.ts

116 lines
3.4 KiB
TypeScript
Raw Normal View History

2023-11-27 15:03:25 +08:00
import { ipcMain } from "electron";
import {
deleteProxyById,
getProxyById,
insertProxy,
listProxy,
2024-09-05 10:28:55 +08:00
updateProxyById,
updateProxyStatus
2023-11-27 15:03:25 +08:00
} from "../storage/proxy";
import { reloadFrpcProcess } from "./frpc";
2025-01-08 12:01:00 +08:00
import { logError, logInfo, LogModule, logWarn } from "../utils/log";
2023-11-27 15:03:25 +08:00
export const initProxyApi = () => {
ipcMain.on("proxy.getProxys", async (event, args) => {
2025-01-08 12:01:00 +08:00
logInfo(LogModule.APP, "Requesting to get proxies.");
2023-11-27 15:03:25 +08:00
listProxy((err, documents) => {
2025-01-08 12:01:00 +08:00
if (err) {
logError(LogModule.APP, `Error retrieving proxies: ${err.message}`);
} else {
logInfo(LogModule.APP, "Proxies retrieved successfully.");
}
2023-11-27 15:03:25 +08:00
event.reply("Proxy.getProxys.hook", {
err: err,
data: documents
});
});
});
ipcMain.on("proxy.insertProxy", async (event, args) => {
delete args["_id"];
2025-01-08 12:01:00 +08:00
logInfo(LogModule.APP, "Inserting a new proxy.");
2023-11-27 15:03:25 +08:00
insertProxy(args, (err, documents) => {
2025-01-08 12:01:00 +08:00
if (err) {
logError(LogModule.APP, `Error inserting proxy: ${err.message}`);
} else {
logInfo(LogModule.APP, "Proxy inserted successfully.");
2024-09-05 10:28:55 +08:00
reloadFrpcProcess();
2023-11-27 15:03:25 +08:00
}
event.reply("Proxy.insertProxy.hook", {
err: err,
data: documents
});
});
});
ipcMain.on("proxy.deleteProxyById", async (event, args) => {
2025-01-08 12:01:00 +08:00
logInfo(LogModule.APP, `Deleting proxy with ID: ${args._id}`);
2023-11-27 15:03:25 +08:00
deleteProxyById(args, (err, documents) => {
2025-01-08 12:01:00 +08:00
if (err) {
logError(LogModule.APP, `Error deleting proxy: ${err.message}`);
} else {
logInfo(LogModule.APP, "Proxy deleted successfully.");
2024-09-05 10:28:55 +08:00
reloadFrpcProcess();
2023-11-27 15:03:25 +08:00
}
event.reply("Proxy.deleteProxyById.hook", {
err: err,
data: documents
});
});
});
ipcMain.on("proxy.getProxyById", async (event, args) => {
2025-01-08 12:01:00 +08:00
logInfo(LogModule.APP, `Requesting proxy with ID: ${args._id}`);
2023-11-27 15:03:25 +08:00
getProxyById(args, (err, documents) => {
2025-01-08 12:01:00 +08:00
if (err) {
logError(LogModule.APP, `Error retrieving proxy: ${err.message}`);
} else {
logInfo(LogModule.APP, "Proxy retrieved successfully.");
}
2023-11-27 15:03:25 +08:00
event.reply("Proxy.getProxyById.hook", {
err: err,
data: documents
});
});
});
ipcMain.on("proxy.updateProxy", async (event, args) => {
2025-01-08 12:01:00 +08:00
if (!args._id) {
logWarn(LogModule.APP, "No proxy ID provided for update.");
return;
}
logInfo(LogModule.APP, `Updating proxy with ID: ${args._id}`);
2023-11-27 15:03:25 +08:00
updateProxyById(args, (err, documents) => {
2025-01-08 12:01:00 +08:00
if (err) {
logError(LogModule.APP, `Error updating proxy: ${err.message}`);
} else {
logInfo(LogModule.APP, "Proxy updated successfully.");
2024-09-05 10:28:55 +08:00
reloadFrpcProcess();
2023-11-27 15:03:25 +08:00
}
event.reply("Proxy.updateProxy.hook", {
err: err,
data: documents
});
});
});
2024-09-02 23:26:55 +08:00
ipcMain.on("proxy.updateProxyStatus", async (event, args) => {
2025-01-08 12:01:00 +08:00
logInfo(LogModule.APP, `Updating status for proxy ID: ${args._id}`);
if (!args._id) {
logWarn(LogModule.APP, "No proxy ID provided for status update.");
return;
}
2024-09-05 10:28:55 +08:00
updateProxyStatus(args._id, args.status, (err, documents) => {
2025-01-08 12:01:00 +08:00
if (err) {
logError(LogModule.APP, `Error updating proxy status: ${err.message}`);
} else {
logInfo(LogModule.APP, "Proxy status updated successfully.");
2024-09-05 10:28:55 +08:00
reloadFrpcProcess();
}
event.reply("Proxy.updateProxyStatus.hook", {
err: err,
data: documents
});
});
2024-09-02 23:26:55 +08:00
});
2023-11-27 15:03:25 +08:00
};