From d3a8a278e6ee7f51f63eb867f5410bf087dc43ab Mon Sep 17 00:00:00 2001 From: ViViDboarder Date: Fri, 5 Apr 2019 11:49:58 -0700 Subject: [PATCH] Add new endpoint for retrieving all users --- src/api/admin.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/api/admin.rs b/src/api/admin.rs index c40f523..09f1882 100644 --- a/src/api/admin.rs +++ b/src/api/admin.rs @@ -6,7 +6,7 @@ use rocket::response::{content::Html, Flash, Redirect}; use rocket::{Outcome, Route}; use rocket_contrib::json::Json; -use crate::api::{ApiResult, EmptyResult}; +use crate::api::{ApiResult, EmptyResult, JsonResult}; use crate::auth::{decode_admin, encode_jwt, generate_admin_claims, ClientIp}; use crate::config::ConfigBuilder; use crate::db::{models::*, DbConn}; @@ -21,6 +21,7 @@ pub fn routes() -> Vec { routes![ admin_login, + get_users, post_admin_login, admin_page, invite_user, @@ -155,6 +156,14 @@ fn invite_user(data: Json, _token: AdminToken, conn: DbConn) -> Empt } } +#[get("/users")] +fn get_users(_token: AdminToken, conn: DbConn) ->JsonResult { + let users = User::get_all(&conn); + let users_json: Vec = users.iter().map(|u| u.to_json(&conn)).collect(); + + Ok(Json(Value::Array(users_json))) +} + #[post("/users//delete")] fn delete_user(uuid: String, _token: AdminToken, conn: DbConn) -> EmptyResult { let user = match User::find_by_uuid(&uuid, &conn) {