From 688c1d3b9e860f4186c8a92655c5be6fc78a576d Mon Sep 17 00:00:00 2001 From: LoaD Accumulator Date: Wed, 1 Nov 2023 17:58:41 +0100 Subject: [PATCH] [ADD] Implement /tokens/[tokenname] --- src/Routes.c | 1 + src/Routes/RouteAdminTokens.c | 13 ++++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Routes.c b/src/Routes.c index d2a19e6..353d5a4 100644 --- a/src/Routes.c +++ b/src/Routes.c @@ -87,6 +87,7 @@ RouterBuild(void) R("/_telodendria/admin/v1/privileges", RoutePrivileges); R("/_telodendria/admin/v1/privileges/(.*)", RoutePrivileges); R("/_telodendria/admin/v1/deactivate/(.*)", RouteAdminDeactivate); + R("/_telodendria/admin/v1/tokens/(.*)", RouteAdminTokens); R("/_telodendria/admin/v1/tokens", RouteAdminTokens); #undef R diff --git a/src/Routes/RouteAdminTokens.c b/src/Routes/RouteAdminTokens.c index 76fa529..ca685a4 100644 --- a/src/Routes/RouteAdminTokens.c +++ b/src/Routes/RouteAdminTokens.c @@ -43,8 +43,6 @@ ROUTE_IMPL(RouteAdminTokens, path, argp) HttpRequestMethod method = HttpRequestMethodGet(args->context); - (void) path; - if ((method != HTTP_GET)) { char *msg = "Route only supports GET for now."; @@ -75,7 +73,7 @@ ROUTE_IMPL(RouteAdminTokens, path, argp) goto finish; } - if (method == HTTP_GET) + if (method == HTTP_GET && ArraySize(path) == 0) { Array *tokensarray = ArrayCreate(); @@ -104,6 +102,15 @@ ROUTE_IMPL(RouteAdminTokens, path, argp) DbListFree(tokens); } + else if (method == HTTP_GET && ArraySize(path) == 1) + { + RegTokenInfo *info = RegTokenGetInfo(db, ArrayGet(path, 0)); + + response = RegTokenJSON(info); + + RegTokenClose(info); + RegTokenFree(info); + } finish: UserUnlock(user); return response;