MCPcopy Create free account
hub / github.com/cinemast/libjson-rpc-cpp / ValidateResponse

Method ValidateResponse

src/jsonrpccpp/client/rpcprotocolclient.cpp:89–114  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

87}
88
89bool RpcProtocolClient::ValidateResponse(const Json::Value &response) {
90 if (!response.isObject() || !response.isMember(KEY_ID))
91 return false;
92
93 if (this->version == JSONRPC_CLIENT_V1) {
94 if (!response.isMember(KEY_RESULT) || !response.isMember(KEY_ERROR))
95 return false;
96 if (!response[KEY_RESULT].isNull() && !response[KEY_ERROR].isNull())
97 return false;
98 if (!response[KEY_ERROR].isNull() &&
99 !(response[KEY_ERROR].isObject() && response[KEY_ERROR].isMember(KEY_ERROR_CODE) && response[KEY_ERROR][KEY_ERROR_CODE].isIntegral()))
100 return false;
101 } else if (this->version == JSONRPC_CLIENT_V2) {
102 if (!response.isMember(KEY_PROTOCOL_VERSION) || response[KEY_PROTOCOL_VERSION] != "2.0")
103 return false;
104 if (response.isMember(KEY_RESULT) && response.isMember(KEY_ERROR))
105 return false;
106 if (!response.isMember(KEY_RESULT) && !response.isMember(KEY_ERROR))
107 return false;
108 if (response.isMember(KEY_ERROR) &&
109 !(response[KEY_ERROR].isObject() && response[KEY_ERROR].isMember(KEY_ERROR_CODE) && response[KEY_ERROR][KEY_ERROR_CODE].isIntegral()))
110 return false;
111 }
112
113 return true;
114}
115
116bool RpcProtocolClient::HasError(const Json::Value &response) {
117 if (this->version == JSONRPC_CLIENT_V1 && !response[KEY_ERROR].isNull())

Callers 1

HandleResponseMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected