ensure "status" is always available on REST responses;

pull/19/head
Bryan Biedenkapp 3 years ago
parent dd5214793b
commit aff2ab1e07

@ -64,6 +64,16 @@ using namespace modem;
// Global Functions
// ---------------------------------------------------------------------------
/// <summary>
///
/// </summary>
/// <param name="obj"></param>
void setResponseDefaultStatus(json::object& obj)
{
int s = (int)HTTPReply::OK;
obj["status"].set<int>(s);
}
/// <summary>
///
/// </summary>
@ -342,6 +352,8 @@ void RESTAPI::restAPI_PutAuth(const HTTPRequest& request, HTTPReply& reply, cons
{
std::string host = request.headers.find("Host");
json::object response = json::object();
setResponseDefaultStatus(response);
json::object req = json::object();
if (!parseRequestBody(request, reply, req)) {
return;
@ -422,6 +434,7 @@ void RESTAPI::restAPI_GetVersion(const HTTPRequest& request, HTTPReply& reply, c
}
json::object response = json::object();
setResponseDefaultStatus(response);
response["version"].set<std::string>(std::string((__PROG_NAME__ " " __VER__ " (" DESCR_DMR DESCR_P25 DESCR_NXDN "CW Id, Network) (built " __BUILD__ ")")));
reply.reply(response);
@ -440,6 +453,7 @@ void RESTAPI::restAPI_GetStatus(const HTTPRequest& request, HTTPReply& reply, co
}
json::object response = json::object();
setResponseDefaultStatus(response);
yaml::Node systemConf = m_host->m_conf["system"];
{
@ -453,7 +467,7 @@ void RESTAPI::restAPI_GetStatus(const HTTPRequest& request, HTTPReply& reply, co
uint32_t portSpeed = uartConfig["speed"].as<uint32_t>(115200U);
response["portSpeed"].set<uint32_t>(portSpeed);
response["hostState"].set<uint8_t>(m_host->m_state);
response["state"].set<uint8_t>(m_host->m_state);
bool dmrEnabled = m_dmr != nullptr;
response["dmrEnabled"].set<bool>(dmrEnabled);
bool p25Enabled = m_p25 != nullptr;
@ -565,6 +579,7 @@ void RESTAPI::restAPI_GetVoiceCh(const HTTPRequest& request, HTTPReply& reply, c
}
json::object response = json::object();
setResponseDefaultStatus(response);
json::array channels = json::array();
if (m_host->m_voiceChData.size() > 0) {
@ -600,6 +615,8 @@ void RESTAPI::restAPI_PutModemMode(const HTTPRequest& request, HTTPReply& reply,
}
json::object response = json::object();
setResponseDefaultStatus(response);
json::object req = json::object();
if (!parseRequestBody(request, reply, req)) {
return;
@ -738,6 +755,8 @@ void RESTAPI::restAPI_PutPermitTG(const HTTPRequest& request, HTTPReply& reply,
return;
}
errorReply(reply, "OK", HTTPReply::OK);
if (!m_host->m_authoritative) {
errorReply(reply, "Host is authoritative, cannot permit TG");
return;
@ -849,6 +868,8 @@ void RESTAPI::restAPI_PutGrantTG(const HTTPRequest& request, HTTPReply& reply, c
return;
}
errorReply(reply, "OK", HTTPReply::OK);
if (m_host->m_authoritative && (m_host->m_dmrCtrlChannel || m_host->m_p25CtrlChannel || m_host->m_nxdnCtrlChannel)) {
errorReply(reply, "Host is authoritative, cannot grant TG");
return;
@ -1058,7 +1079,6 @@ void RESTAPI::restAPI_GetRIDBlacklist(const HTTPRequest& request, HTTPReply& rep
return;
}
json::object response = json::object();
if (match.size() < 2) {
errorReply(reply, "invalid API call arguments");
return;
@ -1071,7 +1091,7 @@ void RESTAPI::restAPI_GetRIDBlacklist(const HTTPRequest& request, HTTPReply& rep
m_ridLookup->toggleEntry(srcId, false);
}
else {
errorReply(reply, "tried to whitelist RID 0");
errorReply(reply, "tried to blacklist RID 0");
}
}
@ -1124,6 +1144,7 @@ void RESTAPI::restAPI_GetDMRDebug(const HTTPRequest& request, HTTPReply& reply,
}
json::object response = json::object();
setResponseDefaultStatus(response);
#if defined(ENABLE_DMR)
errorReply(reply, "OK", HTTPReply::OK);
if (m_dmr != nullptr) {
@ -1167,6 +1188,7 @@ void RESTAPI::restAPI_GetDMRDumpCSBK(const HTTPRequest& request, HTTPReply& repl
}
json::object response = json::object();
setResponseDefaultStatus(response);
#if defined(ENABLE_DMR)
errorReply(reply, "OK", HTTPReply::OK);
if (m_dmr != nullptr) {
@ -1206,13 +1228,12 @@ void RESTAPI::restAPI_PutDMRRID(const HTTPRequest& request, HTTPReply& reply, co
return;
}
json::object response = json::object();
json::object req = json::object();
if (!parseRequestBody(request, reply, req)) {
return;
}
reply.reply(response);
errorReply(reply, "OK", HTTPReply::OK);
}
/// <summary>
@ -1227,15 +1248,12 @@ void RESTAPI::restAPI_GetDMRCCEnable(const HTTPRequest& request, HTTPReply& repl
return;
}
json::object response = json::object();
if (match.size() < 2) {
errorReply(reply, "invalid API call arguments");
return;
}
uint32_t v = (uint32_t)::strtoul(match.str(1).c_str(), NULL, 10);
reply.reply(response);
errorReply(reply, "OK", HTTPReply::OK);
}
/// <summary>
@ -1250,15 +1268,12 @@ void RESTAPI::restAPI_GetDMRCCBroadcast(const HTTPRequest& request, HTTPReply& r
return;
}
json::object response = json::object();
if (match.size() < 2) {
errorReply(reply, "invalid API call arguments");
return;
}
uint32_t v = (uint32_t)::strtoul(match.str(1).c_str(), NULL, 10);
reply.reply(response);
errorReply(reply, "OK", HTTPReply::OK);
}
/*
@ -1279,7 +1294,7 @@ void RESTAPI::restAPI_GetP25CC(const HTTPRequest& request, HTTPReply& reply, con
#if defined(ENABLE_P25)
errorReply(reply, "OK", HTTPReply::OK);
if (m_dmr != nullptr) {
if (m_p25 != nullptr) {
if (m_host->m_p25CCData) {
g_fireP25Control = true;
}
@ -1310,6 +1325,7 @@ void RESTAPI::restAPI_GetP25Debug(const HTTPRequest& request, HTTPReply& reply,
}
json::object response = json::object();
setResponseDefaultStatus(response);
#if defined(ENABLE_P25)
errorReply(reply, "OK", HTTPReply::OK);
if (m_dmr != nullptr) {
@ -1353,6 +1369,7 @@ void RESTAPI::restAPI_GetP25DumpTSBK(const HTTPRequest& request, HTTPReply& repl
}
json::object response = json::object();
setResponseDefaultStatus(response);
#if defined(ENABLE_P25)
errorReply(reply, "OK", HTTPReply::OK);
if (m_p25 != nullptr) {
@ -1392,13 +1409,12 @@ void RESTAPI::restAPI_PutP25RID(const HTTPRequest& request, HTTPReply& reply, co
return;
}
json::object response = json::object();
json::object req = json::object();
if (!parseRequestBody(request, reply, req)) {
return;
}
reply.reply(response);
errorReply(reply, "OK", HTTPReply::OK);
}
/// <summary>
@ -1413,15 +1429,12 @@ void RESTAPI::restAPI_GetP25CCEnable(const HTTPRequest& request, HTTPReply& repl
return;
}
json::object response = json::object();
if (match.size() < 2) {
errorReply(reply, "invalid API call arguments");
return;
}
uint32_t v = (uint32_t)::strtoul(match.str(1).c_str(), NULL, 10);
reply.reply(response);
errorReply(reply, "OK", HTTPReply::OK);
}
/// <summary>
@ -1436,15 +1449,12 @@ void RESTAPI::restAPI_GetP25CCBroadcast(const HTTPRequest& request, HTTPReply& r
return;
}
json::object response = json::object();
if (match.size() < 2) {
errorReply(reply, "invalid API call arguments");
return;
}
uint32_t v = (uint32_t)::strtoul(match.str(1).c_str(), NULL, 10);
reply.reply(response);
errorReply(reply, "OK", HTTPReply::OK);
}
/*
@ -1464,6 +1474,7 @@ void RESTAPI::restAPI_GetNXDNDebug(const HTTPRequest& request, HTTPReply& reply,
}
json::object response = json::object();
setResponseDefaultStatus(response);
#if defined(ENABLE_NXDN)
errorReply(reply, "OK", HTTPReply::OK);
if (m_dmr != nullptr) {
@ -1507,6 +1518,7 @@ void RESTAPI::restAPI_GetNXDNDumpRCCH(const HTTPRequest& request, HTTPReply& rep
}
json::object response = json::object();
setResponseDefaultStatus(response);
#if defined(ENABLE_NXDN)
errorReply(reply, "OK", HTTPReply::OK);
if (m_p25 != nullptr) {

Loading…
Cancel
Save

Powered by TurnKey Linux.