Allow null parameter values

If a resource parameter is defined as a null JSON value, it is ignored.
This commit is contained in:
Markus Mäkelä
2018-08-10 11:05:46 +03:00
parent 8bbc2c3f33
commit f9e5d3135d

View File

@ -92,8 +92,31 @@ bool Resource::match(const HttpRequest& request) const
return rval;
}
static void remove_null_parameters(json_t* json)
{
if (json_t* parameters = mxs_json_pointer(json, MXS_JSON_PTR_PARAMETERS))
{
const char* key;
json_t* value;
void* tmp;
json_object_foreach_safe(parameters, tmp, key, value)
{
if (json_is_null(value))
{
json_object_del(parameters, key);
}
}
}
}
HttpResponse Resource::call(const HttpRequest& request) const
{
if (json_t* json = request.get_json())
{
remove_null_parameters(json);
}
return m_cb(request);
};