🏗️ refactor error handling in controllers and integrate logging functionality
This commit is contained in:
parent
cd5122c6cf
commit
fb2846c0b5
@ -7,6 +7,7 @@ import SystemService from "../service/SystemService";
|
||||
import moment from "moment";
|
||||
import ResponseUtils from "../utils/ResponseUtils";
|
||||
import { dialog } from "electron";
|
||||
import Logger from "../core/Logger";
|
||||
|
||||
class ConfigController extends BaseController {
|
||||
private readonly _serverService: ServerService;
|
||||
@ -25,49 +26,73 @@ class ConfigController extends BaseController {
|
||||
}
|
||||
|
||||
saveConfig(req: ControllerParam) {
|
||||
this._serverService.saveServerConfig(req.args).then(() => {
|
||||
req.event.reply(req.channel, ResponseUtils.success());
|
||||
});
|
||||
this._serverService
|
||||
.saveServerConfig(req.args)
|
||||
.then(() => {
|
||||
req.event.reply(req.channel, ResponseUtils.success());
|
||||
})
|
||||
.catch((err: Error) => {
|
||||
Logger.error("ConfigController.saveConfig", err);
|
||||
req.event.reply(req.channel, ResponseUtils.fail(err.message));
|
||||
});
|
||||
}
|
||||
|
||||
getServerConfig(req: ControllerParam) {
|
||||
this._serverService.getServerConfig().then(data => {
|
||||
req.event.reply(req.channel, ResponseUtils.success(data));
|
||||
});
|
||||
this._serverService
|
||||
.getServerConfig()
|
||||
.then(data => {
|
||||
req.event.reply(req.channel, ResponseUtils.success(data));
|
||||
})
|
||||
.catch((err: Error) => {
|
||||
Logger.error("ConfigController.getServerConfig", err);
|
||||
req.event.reply(req.channel, ResponseUtils.fail(err.message));
|
||||
});
|
||||
}
|
||||
|
||||
openAppData(req: ControllerParam) {
|
||||
this._systemService.openLocalPath(PathUtils.getAppData()).then(data => {
|
||||
req.event.reply(req.channel, ResponseUtils.success(data));
|
||||
});
|
||||
this._systemService
|
||||
.openLocalPath(PathUtils.getAppData())
|
||||
.then(data => {
|
||||
req.event.reply(req.channel, ResponseUtils.success(data));
|
||||
})
|
||||
.catch((err: Error) => {
|
||||
Logger.error("ConfigController.openAppData", err);
|
||||
req.event.reply(req.channel, ResponseUtils.fail(err.message));
|
||||
});
|
||||
}
|
||||
|
||||
async resetAllConfig(req: ControllerParam) {
|
||||
resetAllConfig(req: ControllerParam) {
|
||||
// await this._serverDao.truncate();
|
||||
// await this._proxyDao.truncate();
|
||||
// await this._versionDao.truncate();
|
||||
await this._frpcProcessService.stopFrpcProcess();
|
||||
fs.rmSync(PathUtils.getDataBaseStoragePath(), {
|
||||
recursive: true,
|
||||
force: true
|
||||
});
|
||||
this._frpcProcessService
|
||||
.stopFrpcProcess()
|
||||
.then(() => {
|
||||
fs.rmSync(PathUtils.getDataBaseStoragePath(), {
|
||||
recursive: true,
|
||||
force: true
|
||||
});
|
||||
|
||||
fs.rmSync(PathUtils.getDownloadStoragePath(), {
|
||||
recursive: true,
|
||||
force: true
|
||||
});
|
||||
fs.rmSync(PathUtils.getDownloadStoragePath(), {
|
||||
recursive: true,
|
||||
force: true
|
||||
});
|
||||
|
||||
fs.rmSync(PathUtils.getVersionStoragePath(), {
|
||||
recursive: true,
|
||||
force: true
|
||||
});
|
||||
fs.rmSync(PathUtils.getVersionStoragePath(), {
|
||||
recursive: true,
|
||||
force: true
|
||||
});
|
||||
|
||||
fs.rmSync(PathUtils.getFrpcLogStoragePath(), {
|
||||
recursive: true,
|
||||
force: true
|
||||
});
|
||||
|
||||
req.event.reply(req.channel, ResponseUtils.success());
|
||||
fs.rmSync(PathUtils.getFrpcLogStoragePath(), {
|
||||
recursive: true,
|
||||
force: true
|
||||
});
|
||||
req.event.reply(req.channel, ResponseUtils.success());
|
||||
})
|
||||
.catch((err: Error) => {
|
||||
Logger.error("ConfigController.resetAllConfig", err);
|
||||
req.event.reply(req.channel, ResponseUtils.fail(err.message));
|
||||
});
|
||||
}
|
||||
|
||||
exportConfig(req: ControllerParam) {
|
||||
@ -98,13 +123,23 @@ class ConfigController extends BaseController {
|
||||
);
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch((err: Error) => {
|
||||
Logger.error("ConfigController.exportConfig", err);
|
||||
req.event.reply(req.channel, ResponseUtils.fail(err.message));
|
||||
});
|
||||
}
|
||||
|
||||
importTomlConfig(req: ControllerParam) {
|
||||
this._serverService.importTomlConfig().then(() => {
|
||||
req.event.reply(req.channel, ResponseUtils.success());
|
||||
});
|
||||
this._serverService
|
||||
.importTomlConfig()
|
||||
.then(() => {
|
||||
req.event.reply(req.channel, ResponseUtils.success());
|
||||
})
|
||||
.catch((err: Error) => {
|
||||
Logger.error("ConfigController.importTomlConfig", err);
|
||||
req.event.reply(req.channel, ResponseUtils.fail(err.message));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
import BaseController from "./BaseController";
|
||||
import FrpcProcessService from "../service/FrpcProcessService";
|
||||
import ResponseUtils from "../utils/ResponseUtils";
|
||||
import Logger from "../core/Logger";
|
||||
|
||||
class LaunchController extends BaseController {
|
||||
private readonly _frpcProcessService: FrpcProcessService;
|
||||
@ -16,15 +17,21 @@ class LaunchController extends BaseController {
|
||||
.then(r => {
|
||||
req.event.reply(req.channel, ResponseUtils.success());
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err, "1");
|
||||
.catch((err: Error) => {
|
||||
Logger.error("LaunchController.launch", err);
|
||||
req.event.reply(req.channel, ResponseUtils.fail(err.message));
|
||||
});
|
||||
}
|
||||
|
||||
terminate(req: ControllerParam) {
|
||||
this._frpcProcessService.stopFrpcProcess().then(r => {
|
||||
req.event.reply(req.channel, ResponseUtils.success());
|
||||
});
|
||||
this._frpcProcessService
|
||||
.stopFrpcProcess()
|
||||
.then(r => {
|
||||
req.event.reply(req.channel, ResponseUtils.success());
|
||||
})
|
||||
.catch(err => {
|
||||
Logger.error("LaunchController.terminate", err);
|
||||
});
|
||||
}
|
||||
|
||||
getStatus(req: ControllerParam) {
|
||||
|
@ -1,6 +1,7 @@
|
||||
import BaseController from "./BaseController";
|
||||
import LogService from "../service/LogService";
|
||||
import ResponseUtils from "../utils/ResponseUtils";
|
||||
import Logger from "../core/Logger";
|
||||
|
||||
class LogController extends BaseController {
|
||||
private readonly _logService: LogService;
|
||||
@ -11,9 +12,15 @@ class LogController extends BaseController {
|
||||
}
|
||||
|
||||
getFrpLogContent(req: ControllerParam) {
|
||||
this._logService.getFrpLogContent().then(data => {
|
||||
req.event.reply(req.channel, ResponseUtils.success(data));
|
||||
});
|
||||
this._logService
|
||||
.getFrpLogContent()
|
||||
.then(data => {
|
||||
req.event.reply(req.channel, ResponseUtils.success(data));
|
||||
})
|
||||
.catch((err: Error) => {
|
||||
Logger.error("LogController.getFrpLogContent", err);
|
||||
req.event.reply(req.channel, ResponseUtils.fail(err.message));
|
||||
});
|
||||
}
|
||||
|
||||
// watchFrpcLogContent(req: ControllerRequest) {
|
||||
@ -24,13 +31,19 @@ class LogController extends BaseController {
|
||||
// }
|
||||
|
||||
openFrpcLogFile(req: ControllerParam) {
|
||||
this._logService.openFrpcLogFile().then(data => {
|
||||
if (data) {
|
||||
ResponseUtils.success();
|
||||
} else {
|
||||
ResponseUtils.fail();
|
||||
}
|
||||
});
|
||||
this._logService
|
||||
.openFrpcLogFile()
|
||||
.then(data => {
|
||||
if (data) {
|
||||
ResponseUtils.success();
|
||||
} else {
|
||||
ResponseUtils.fail();
|
||||
}
|
||||
})
|
||||
.catch((err: Error) => {
|
||||
Logger.error("LogController.openFrpcLogFile", err);
|
||||
req.event.reply(req.channel, ResponseUtils.fail(err.message));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,7 @@ import BaseController from "./BaseController";
|
||||
import ProxyService from "../service/ProxyService";
|
||||
import ResponseUtils from "../utils/ResponseUtils";
|
||||
import ProxyRepository from "../repository/ProxyRepository";
|
||||
import Logger from "../core/Logger";
|
||||
|
||||
class ProxyController extends BaseController {
|
||||
private readonly _proxyService: ProxyService;
|
||||
@ -14,39 +15,75 @@ class ProxyController extends BaseController {
|
||||
}
|
||||
|
||||
createProxy(req: ControllerParam) {
|
||||
this._proxyService.insertProxy(req.args).then(data => {
|
||||
req.event.reply(req.channel, ResponseUtils.success(data));
|
||||
});
|
||||
this._proxyService
|
||||
.insertProxy(req.args)
|
||||
.then(data => {
|
||||
req.event.reply(req.channel, ResponseUtils.success(data));
|
||||
})
|
||||
.catch((err: Error) => {
|
||||
Logger.error("ProxyController.createProxy", err);
|
||||
req.event.reply(req.channel, ResponseUtils.fail(err.message));
|
||||
});
|
||||
}
|
||||
|
||||
modifyProxy(req: ControllerParam) {
|
||||
this._proxyService.updateProxy(req.args).then(data => {
|
||||
req.event.reply(req.channel, ResponseUtils.success(data));
|
||||
});
|
||||
this._proxyService
|
||||
.updateProxy(req.args)
|
||||
.then(data => {
|
||||
req.event.reply(req.channel, ResponseUtils.success(data));
|
||||
})
|
||||
.catch((err: Error) => {
|
||||
Logger.error("ProxyController.modifyProxy", err);
|
||||
req.event.reply(req.channel, ResponseUtils.fail(err.message));
|
||||
});
|
||||
}
|
||||
|
||||
getAllProxies(req: ControllerParam) {
|
||||
this._proxyDao.findAll().then(data => {
|
||||
req.event.reply(req.channel, ResponseUtils.success(data));
|
||||
});
|
||||
this._proxyDao
|
||||
.findAll()
|
||||
.then(data => {
|
||||
req.event.reply(req.channel, ResponseUtils.success(data));
|
||||
})
|
||||
.catch((err: Error) => {
|
||||
Logger.error("ProxyController.getAllProxies", err);
|
||||
req.event.reply(req.channel, ResponseUtils.fail(err.message));
|
||||
});
|
||||
}
|
||||
|
||||
deleteProxy(req: ControllerParam) {
|
||||
this._proxyService.deleteProxy(req.args).then(data => {
|
||||
req.event.reply(req.channel, ResponseUtils.success(data));
|
||||
});
|
||||
this._proxyService
|
||||
.deleteProxy(req.args)
|
||||
.then(data => {
|
||||
req.event.reply(req.channel, ResponseUtils.success(data));
|
||||
})
|
||||
.catch((err: Error) => {
|
||||
Logger.error("ProxyController.deleteProxy", err);
|
||||
req.event.reply(req.channel, ResponseUtils.fail(err.message));
|
||||
});
|
||||
}
|
||||
|
||||
modifyProxyStatus(req: ControllerParam) {
|
||||
this._proxyDao.updateProxyStatus(req.args.id, req.args.status).then(() => {
|
||||
req.event.reply(req.channel, ResponseUtils.success());
|
||||
});
|
||||
this._proxyDao
|
||||
.updateProxyStatus(req.args.id, req.args.status)
|
||||
.then(() => {
|
||||
req.event.reply(req.channel, ResponseUtils.success());
|
||||
})
|
||||
.catch((err: Error) => {
|
||||
Logger.error("ProxyController.modifyProxyStatus", err);
|
||||
req.event.reply(req.channel, ResponseUtils.fail(err.message));
|
||||
});
|
||||
}
|
||||
|
||||
getLocalPorts(req: ControllerParam) {
|
||||
this._proxyService.getLocalPorts().then(data => {
|
||||
req.event.reply(req.channel, ResponseUtils.success(data));
|
||||
});
|
||||
this._proxyService
|
||||
.getLocalPorts()
|
||||
.then(data => {
|
||||
req.event.reply(req.channel, ResponseUtils.success(data));
|
||||
})
|
||||
.catch((err: Error) => {
|
||||
Logger.error("ProxyController.getLocalPorts", err);
|
||||
req.event.reply(req.channel, ResponseUtils.fail(err.message));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3,6 +3,7 @@ import ResponseUtils from "../utils/ResponseUtils";
|
||||
import PathUtils from "../utils/PathUtils";
|
||||
import { BrowserWindow, dialog } from "electron";
|
||||
import BeanFactory from "../core/BeanFactory";
|
||||
import Logger from "../core/Logger";
|
||||
|
||||
class SystemController {
|
||||
private readonly _systemService: SystemService;
|
||||
@ -17,21 +18,34 @@ class SystemController {
|
||||
.then(() => {
|
||||
req.event.reply(req.channel, ResponseUtils.success());
|
||||
})
|
||||
.catch(err => {
|
||||
req.event.reply(req.channel, ResponseUtils.fail());
|
||||
.catch((err: Error) => {
|
||||
Logger.error("SystemController.openUrl", err);
|
||||
req.event.reply(req.channel, ResponseUtils.fail(err.message));
|
||||
});
|
||||
}
|
||||
|
||||
relaunchApp(req: ControllerParam) {
|
||||
this._systemService.relaunch().then(() => {
|
||||
req.event.reply(req.channel, ResponseUtils.success());
|
||||
});
|
||||
this._systemService
|
||||
.relaunch()
|
||||
.then(() => {
|
||||
req.event.reply(req.channel, ResponseUtils.success());
|
||||
})
|
||||
.catch((err: Error) => {
|
||||
Logger.error("SystemController.relaunchApp", err);
|
||||
req.event.reply(req.channel, ResponseUtils.fail(err.message));
|
||||
});
|
||||
}
|
||||
|
||||
openAppData(req: ControllerParam) {
|
||||
this._systemService.openLocalPath(PathUtils.getAppData()).then(() => {
|
||||
req.event.reply(req.channel, ResponseUtils.success());
|
||||
});
|
||||
this._systemService
|
||||
.openLocalPath(PathUtils.getAppData())
|
||||
.then(() => {
|
||||
req.event.reply(req.channel, ResponseUtils.success());
|
||||
})
|
||||
.catch((err: Error) => {
|
||||
Logger.error("SystemController.openAppData", err);
|
||||
req.event.reply(req.channel, ResponseUtils.fail(err.message));
|
||||
});
|
||||
}
|
||||
|
||||
selectLocalFile(req: ControllerParam) {
|
||||
@ -58,6 +72,10 @@ class SystemController {
|
||||
path: result.filePaths[0]
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch((err: Error) => {
|
||||
Logger.error("SystemController.selectLocalFile", err);
|
||||
req.event.reply(req.channel, ResponseUtils.fail(err.message));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ import BaseController from "./BaseController";
|
||||
import VersionService from "../service/VersionService";
|
||||
import ResponseUtils from "../utils/ResponseUtils";
|
||||
import VersionRepository from "../repository/VersionRepository";
|
||||
import Logger from "../core/Logger";
|
||||
|
||||
class VersionController extends BaseController {
|
||||
private readonly _versionService: VersionService;
|
||||
@ -19,7 +20,8 @@ class VersionController extends BaseController {
|
||||
.then(data => {
|
||||
req.event.reply(req.channel, ResponseUtils.success(data));
|
||||
})
|
||||
.catch(() => {
|
||||
.catch(err => {
|
||||
Logger.error("VersionController.getVersions", err);
|
||||
this._versionService.getFrpVersionByLocalJson().then(localData => {
|
||||
req.event.reply(req.channel, ResponseUtils.success(localData));
|
||||
});
|
||||
@ -27,9 +29,15 @@ class VersionController extends BaseController {
|
||||
}
|
||||
|
||||
getDownloadedVersions(req: ControllerParam) {
|
||||
this._versionDao.findAll().then(data => {
|
||||
req.event.reply(req.channel, ResponseUtils.success(data));
|
||||
});
|
||||
this._versionDao
|
||||
.findAll()
|
||||
.then(data => {
|
||||
req.event.reply(req.channel, ResponseUtils.success(data));
|
||||
})
|
||||
.catch((err: Error) => {
|
||||
Logger.error("VersionController.getDownloadedVersions", err);
|
||||
req.event.reply(req.channel, ResponseUtils.fail(err.message));
|
||||
});
|
||||
}
|
||||
|
||||
downloadFrpVersion(req: ControllerParam) {
|
||||
@ -45,10 +53,18 @@ class VersionController extends BaseController {
|
||||
);
|
||||
})
|
||||
.then(r => {
|
||||
console.log(2);
|
||||
req.event.reply(
|
||||
req.channel,
|
||||
ResponseUtils.success({
|
||||
percent: 1,
|
||||
githubReleaseId: req.args.githubReleaseId,
|
||||
completed: true
|
||||
})
|
||||
);
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(1);
|
||||
.catch((err: Error) => {
|
||||
Logger.error("VersionController.downloadFrpVersion", err);
|
||||
req.event.reply(req.channel, ResponseUtils.fail(err.message));
|
||||
});
|
||||
}
|
||||
|
||||
@ -58,8 +74,9 @@ class VersionController extends BaseController {
|
||||
.then(() => {
|
||||
req.event.reply(req.channel, ResponseUtils.success());
|
||||
})
|
||||
.catch(err => {
|
||||
req.event.reply(req.channel, ResponseUtils.fail());
|
||||
.catch((err: Error) => {
|
||||
Logger.error("VersionController.deleteDownloadedVersion", err);
|
||||
req.event.reply(req.channel, ResponseUtils.fail(err.message));
|
||||
});
|
||||
}
|
||||
|
||||
@ -69,8 +86,9 @@ class VersionController extends BaseController {
|
||||
.then(data => {
|
||||
req.event.reply(req.channel, ResponseUtils.success());
|
||||
})
|
||||
.catch(err => {
|
||||
req.event.reply(req.channel, ResponseUtils.fail());
|
||||
.catch((err: Error) => {
|
||||
Logger.error("VersionController.importLocalFrpcVersion", err);
|
||||
req.event.reply(req.channel, ResponseUtils.fail(err.message));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -18,8 +18,8 @@ class Logger {
|
||||
log.warn(`[${module}] ${msg}`);
|
||||
}
|
||||
|
||||
public static error(module: string, msg: string) {
|
||||
log.warn(`[${module}] ${msg}`);
|
||||
public static error(module: string, error: Error) {
|
||||
log.error(`[${module}] ${error}`);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6,6 +6,7 @@ import { app, BrowserWindow, Notification } from "electron";
|
||||
import treeKill from "tree-kill";
|
||||
import BeanFactory from "../core/BeanFactory";
|
||||
import ResponseUtils from "../utils/ResponseUtils";
|
||||
import Logger from "../core/Logger";
|
||||
|
||||
class FrpcProcessService {
|
||||
private readonly _serverService: ServerService;
|
||||
@ -36,7 +37,7 @@ class FrpcProcessService {
|
||||
}
|
||||
const config = await this._serverService.getServerConfig();
|
||||
if (!config) {
|
||||
throw new Error("请先进行配置")
|
||||
throw new Error("请先进行配置");
|
||||
}
|
||||
const version = await this._versionDao.findByGithubReleaseId(
|
||||
config.frpcVersion
|
||||
|
@ -52,7 +52,7 @@ const defaultFormData: OpenSourceFrpcDesktopServer = {
|
||||
connectServerLocalIP: "",
|
||||
proxyURL: "",
|
||||
tls: {
|
||||
enable: false,
|
||||
enable: true,
|
||||
certFile: "",
|
||||
keyFile: "",
|
||||
trustedCaFile: "",
|
||||
@ -1347,7 +1347,7 @@ onUnmounted(() => {
|
||||
<div class="h2">日志配置</div>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item class="!w-full" label="日志级别:" prop="logLevel">
|
||||
<el-form-item class="!w-full" label="日志级别:" prop="log.level">
|
||||
<el-select v-model="formData.log.level">
|
||||
<el-option label="info" value="info" />
|
||||
<el-option label="debug" value="debug" />
|
||||
@ -1357,7 +1357,7 @@ onUnmounted(() => {
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item lalog.maxDaysbel="日志保留天数:" prop="">
|
||||
<el-form-item label="日志保留天数:" prop="log.maxDays">
|
||||
<el-input-number
|
||||
class="!w-full"
|
||||
controls-position="right"
|
||||
|
Loading…
Reference in New Issue
Block a user