ErrorPtr VdcApiRequest::sendError(ErrorPtr aErrorToSend) { if (!Error::isOK(aErrorToSend)) { VdcApiErrorPtr ve = boost::dynamic_pointer_cast<VdcApiError>(aErrorToSend); if (ve) { // special VdcApiError, has extra user facing information return sendError((uint32_t)aErrorToSend->getErrorCode(), aErrorToSend->getErrorMessage(), ApiValuePtr(), ve->getErrorType(), ve->getUserFacingMessage()); } else { return sendError((uint32_t)aErrorToSend->getErrorCode(), aErrorToSend->getErrorMessage()); } } return ErrorPtr(); }
ErrorPtr VdcApiRequest::sendError(ErrorPtr aErrorToSend) { if (!Error::isOK(aErrorToSend)) { return sendError((uint32_t)aErrorToSend->getErrorCode(), aErrorToSend->getErrorMessage()); } return ErrorPtr(); }
ErrorPtr JsonRpcComm::sendError(const char *aJsonRpcId, ErrorPtr aErrorToSend) { if (!Error::isOK(aErrorToSend)) { return sendError(aJsonRpcId, (uint32_t)aErrorToSend->getErrorCode(), aErrorToSend->getErrorMessage()); } return ErrorPtr(); }
void P44VdcHost::sendCfgApiResponse(JsonCommPtr aJsonComm, JsonObjectPtr aResult, ErrorPtr aError) { // create response JsonObjectPtr response = JsonObject::newObj(); if (!Error::isOK(aError)) { // error, return error response response->add("error", JsonObject::newInt32((int32_t)aError->getErrorCode())); response->add("errormessage", JsonObject::newString(aError->getErrorMessage())); response->add("errordomain", JsonObject::newString(aError->getErrorDomain())); VdcApiErrorPtr ve = boost::dynamic_pointer_cast<VdcApiError>(aError); if (ve) { response->add("errortype", JsonObject::newInt32(ve->getErrorType())); response->add("userfacingmessage", JsonObject::newString(ve->getUserFacingMessage())); } } else { // no error, return result (if any) response->add("result", aResult); } LOG(LOG_DEBUG, "Config API response: %s", response->c_strValue()); aJsonComm->sendMessage(response); }