aboutsummaryrefslogtreecommitdiff
path: root/planetwars-server/src/routes/bots.rs
diff options
context:
space:
mode:
authorIlion Beyst <ilion.beyst@gmail.com>2021-12-30 23:40:37 +0100
committerIlion Beyst <ilion.beyst@gmail.com>2021-12-30 23:40:37 +0100
commitf5e8b4093a1527967423a3af70f2b95d4b05008f (patch)
treefd000cd7689e54b9efc73f2913ec4d1817c098b0 /planetwars-server/src/routes/bots.rs
parentc6ca7cf2d1238c05f75a53934ea2f6c91efc3646 (diff)
downloadplanetwars.dev-f5e8b4093a1527967423a3af70f2b95d4b05008f.tar.xz
planetwars.dev-f5e8b4093a1527967423a3af70f2b95d4b05008f.zip
prototype bots pages
Diffstat (limited to 'planetwars-server/src/routes/bots.rs')
-rw-r--r--planetwars-server/src/routes/bots.rs17
1 files changed, 14 insertions, 3 deletions
diff --git a/planetwars-server/src/routes/bots.rs b/planetwars-server/src/routes/bots.rs
index da09669..033c683 100644
--- a/planetwars-server/src/routes/bots.rs
+++ b/planetwars-server/src/routes/bots.rs
@@ -1,5 +1,6 @@
use axum::extract::{Path, RawBody};
use axum::http::StatusCode;
+use axum::response::IntoResponse;
use axum::Json;
use rand::Rng;
use serde::{Deserialize, Serialize};
@@ -30,9 +31,19 @@ pub async fn create_bot(
}
// TODO: handle errors
-pub async fn get_bot(conn: DatabaseConnection, Path(bot_id): Path<i32>) -> Json<Bot> {
- let bot = bots::find_bot(bot_id, &conn).unwrap();
- Json(bot)
+pub async fn get_bot(conn: DatabaseConnection, Path(bot_id): Path<i32>) -> impl IntoResponse {
+ bots::find_bot(bot_id, &conn)
+ .map(Json)
+ .map_err(|_| StatusCode::NOT_FOUND)
+}
+
+pub async fn get_my_bots(
+ conn: DatabaseConnection,
+ user: User,
+) -> Result<Json<Vec<Bot>>, StatusCode> {
+ bots::find_bots_by_owner(user.id, &conn)
+ .map(Json)
+ .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)
}
// TODO: proper error handling