MXS-1220: Add PUT support for servers

The server can now be modified with a PUT request of a modified server
resource. The server resource was reorganized to have the parameters as a
separate entity from the other more general entities of the resource.

The PUT/POST functions return a more appropriate error message when no
request body is provided.

Moved some of the constant names used in server.cc into the config.h
header.
This commit is contained in:
Markus Mäkelä
2017-04-20 18:52:56 +03:00
committed by Markus Mäkelä
parent 1e55ee5b2f
commit 043ed95bdf
7 changed files with 165 additions and 32 deletions

View File

@ -15,6 +15,7 @@
#include <maxscale/cppdefs.hh>
#include <string>
#include <sstream>
#include <maxscale/jansson.h>
#include <maxscale/utils.hh>
@ -71,4 +72,42 @@ static inline std::string json_dump(const Closer<json_t*>& json, int flags = 0)
return json_dump(json.get(), flags);
}
/**
* @brief Convert JSON to string
*
* @param JSON to convert
*
* @return The JSON value converted to a string
*/
static inline std::string json_to_string(json_t* json)
{
std::stringstream ss;
if (json_is_string(json))
{
ss << json_string_value(json);
}
else if (json_is_boolean(json))
{
ss << (json_boolean_value(json) ? "true" : "false");
}
else if (json_is_real(json))
{
ss << json_real_value(json);
}
else if (json_is_number(json))
{
ss << json_number_value(json);
}
else if (json_is_integer(json))
{
ss << json_integer_value(json);
}
else if (json_is_null(json))
{
ss << "";
}
return ss.str();
}
}