From 8ef17aee96e7f7250fca6994edcf19a68b36a420 Mon Sep 17 00:00:00 2001 From: chenhuijun Date: Wed, 19 Jun 2024 11:04:57 +0800 Subject: [PATCH] feat: add connect error handle to Reconclient --- src/recon/ReconClient.cpp | 24 ++++++++++++++++++++++++ src/recon/RequestResult.cpp | 15 +++++++++++++++ src/recon/RequestResult.h | 4 ++++ 3 files changed, 43 insertions(+) diff --git a/src/recon/ReconClient.cpp b/src/recon/ReconClient.cpp index ebf23d9..4547962 100644 --- a/src/recon/ReconClient.cpp +++ b/src/recon/ReconClient.cpp @@ -39,6 +39,10 @@ RequestResult ReconClient::CheckActive() std::string content; content.append("1"); auto resp = mRequest.post(mHost + STATE_URL, content, mHeaders); + if (resp.isResponsed() == false){ + mErrorMessage = resp.getContent(); + return RequestResult::ConnectFail(mErrorMessage); + } if (resp.httpCode() == 200) { return RequestResult::Success(resp.getContent()); @@ -74,6 +78,10 @@ RequestResult ReconClient::Create(const Scan &aScan) content.append(str); free(str); auto resp = mRequest.post(mHost + CREATE_URL, content, mHeaders); + if (resp.isResponsed() == false){ + mErrorMessage = resp.getContent(); + return RequestResult::ConnectFail(mErrorMessage); + } if (resp.httpCode() == 200) { return RequestResult::Success(); @@ -95,6 +103,10 @@ RequestResult ReconClient::QueryScan(const std::string &aScanID, int &state) content.append(str); free(str); auto resp = mRequest.post(mHost + QUERY_SCAN_URL, content, mHeaders); + if (resp.isResponsed() == false){ + mErrorMessage = resp.getContent(); + return RequestResult::ConnectFail(mErrorMessage); + } if (resp.httpCode() == 200) { cJSON *scans = cJSON_Parse(resp.getContent().data()); @@ -125,6 +137,10 @@ RequestResult ReconClient::QueryVersion() std::string content; content.append("1"); auto resp = mRequest.post(mHost + QUERY_VERSION_URL, content, mHeaders); + if (resp.isResponsed() == false){ + mErrorMessage = resp.getContent(); + return RequestResult::ConnectFail(mErrorMessage); + } if (resp.httpCode() == 200) { std::string version = resp.getContent(); @@ -162,6 +178,10 @@ RequestResult ReconClient::SetPACSSetting(const PACSSetting &aSetting) content.append(str); free(str); auto resp = mRequest.post(mHost + SET_PACS_URL, content, mHeaders); + if (resp.isResponsed() == false){ + mErrorMessage = resp.getContent(); + return RequestResult::ConnectFail(mErrorMessage); + } if (resp.httpCode() == 200) { return RequestResult::Success(); @@ -195,6 +215,10 @@ RequestResult ReconClient::SetMPPSSetting(const MPPSSetting &aSetting) content.append(str); free(str); auto resp = mRequest.post(mHost + SET_MPPS_URL, content, mHeaders); + if (resp.isResponsed() == false){ + mErrorMessage = resp.getContent(); + return RequestResult::ConnectFail(mErrorMessage); + } if (resp.httpCode() == 200) { return RequestResult::Success(); diff --git a/src/recon/RequestResult.cpp b/src/recon/RequestResult.cpp index 1bedefa..6d8c3cf 100644 --- a/src/recon/RequestResult.cpp +++ b/src/recon/RequestResult.cpp @@ -22,6 +22,11 @@ bool RequestResult::bad() return !mSuccess; } +bool RequestResult::isConnectFailure() +{ + return mConnectError; +} + std::string RequestResult::error() { return mError; @@ -34,6 +39,7 @@ std::string RequestResult::message() RequestResult RequestResult::Success(const std::string& aMessage) { RequestResult r; + r.mConnectError = false; r.becomeGood(aMessage); return r; } @@ -41,6 +47,15 @@ RequestResult RequestResult::Success(const std::string& aMessage) RequestResult RequestResult::Fail(const std::string& aMessage) { RequestResult r; + r.mConnectError = false; + r.becomeBad(aMessage); + return r; +} + +RequestResult RequestResult::ConnectFail(const std::string& aMessage) +{ + RequestResult r; + r.mConnectError = true; r.becomeBad(aMessage); return r; } diff --git a/src/recon/RequestResult.h b/src/recon/RequestResult.h index df8d01b..1cd4c25 100644 --- a/src/recon/RequestResult.h +++ b/src/recon/RequestResult.h @@ -6,6 +6,8 @@ class RequestResult public: static RequestResult Success(const std::string& aMessage= std::string()); static RequestResult Fail(const std::string& aMessage); + static RequestResult ConnectFail(const std::string& aMessage); + RequestResult()=default; RequestResult(RequestResult &&) = default; @@ -16,6 +18,7 @@ public: bool good(); bool bad(); + bool isConnectFailure(); std::string message(); std::string error(); @@ -24,6 +27,7 @@ private: std::string mMessage; std::string mError; bool mSuccess; + bool mConnectError; void becomeGood(const std::string& aMessage ); void becomeBad(const std::string& aMessage);