diff --git a/src/Routes/RouteUserDirectory.c b/src/Routes/RouteUserDirectory.c index c1040ff..2c8c0e2 100644 --- a/src/Routes/RouteUserDirectory.c +++ b/src/Routes/RouteUserDirectory.c @@ -23,13 +23,14 @@ */ #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include + #include -#include ROUTE_IMPL(RouteUserDirectory, path, argp) { @@ -51,6 +52,7 @@ ROUTE_IMPL(RouteUserDirectory, path, argp) char *token = NULL; char *searchTerm = NULL; char *requesterName = NULL; + char *msg = NULL; size_t limit = 10; @@ -61,8 +63,9 @@ ROUTE_IMPL(RouteUserDirectory, path, argp) if (HttpRequestMethodGet(args->context) != HTTP_POST) { + msg = "Request supports only POST."; HttpResponseStatus(args->context, HTTP_BAD_REQUEST); - response = MatrixErrorCreate(M_UNRECOGNIZED); + response = MatrixErrorCreate(M_UNRECOGNIZED, msg); goto finish; } @@ -70,7 +73,7 @@ ROUTE_IMPL(RouteUserDirectory, path, argp) if (!request) { HttpResponseStatus(args->context, HTTP_BAD_REQUEST); - response = MatrixErrorCreate(M_NOT_JSON); + response = MatrixErrorCreate(M_NOT_JSON, NULL); goto finish; } @@ -85,18 +88,19 @@ ROUTE_IMPL(RouteUserDirectory, path, argp) if (!user) { HttpResponseStatus(args->context, HTTP_BAD_REQUEST); - response = MatrixErrorCreate(M_UNKNOWN_TOKEN); + response = MatrixErrorCreate(M_UNKNOWN_TOKEN, NULL); goto finish; } requesterName = UserGetName(user); - /* Parse limit and search_term */ + /* TODO: Use j2s instead of an hardcoded parser */ if (!(val = JsonGet(request, 1, "search_term")) || JsonValueType(val) != JSON_STRING) { /* The Spec requires search_term to be set to a string. */ + msg = "search_term must be set to a string"; HttpResponseStatus(args->context, HTTP_BAD_REQUEST); - response = MatrixErrorCreate(M_BAD_JSON); + response = MatrixErrorCreate(M_BAD_JSON, msg); goto finish; } searchTerm = StrLower(JsonValueAsString(val)); @@ -122,7 +126,7 @@ ROUTE_IMPL(RouteUserDirectory, path, argp) { Log(LOG_ERR, "Directory endpoint failed to lock configuration."); HttpResponseStatus(args->context, HTTP_INTERNAL_SERVER_ERROR); - response = MatrixErrorCreate(M_UNKNOWN); + response = MatrixErrorCreate(M_UNKNOWN, NULL); goto finish; }