2 Komitmen 2aefd10b46 ... 9d4d666cd7

Pembuat SHA1 Pesan Tanggal
  Lee Morgan 9d4d666cd7 Create docs for updated session route 3 minggu lalu
  Lee Morgan 67c8cffa20 Update session creation to not create a turn 3 minggu lalu

+ 1 - 10
docs/paths/game/session/create.yaml

@@ -20,16 +20,7 @@ responses:
     content:
       application/json:
         schema:
-          type: object
-          properties:
-            session:
-              $ref: "#/components/schemas/Session"
-            turn:
-              $ref: "#/components/schemas/Turn"
-            tokens_remaining:
-              type: number
-              description: Tokens that the user has remaining
-              example: 998060
+          $ref: "#/components/schemas/Session"
   "400":
     $ref: "#/components/responses/400"
   "401":

File diff ditekan karena terlalu besar
+ 1 - 3
docs/redoc-static.html


+ 8 - 40
src/controllers/game/session/create.rs

@@ -1,17 +1,13 @@
-use actix_web::{HttpRequest, Responder, web, post};
+use actix_web::{HttpResponse, HttpRequest, web, post};
 use sqlx::PgPool;
 use uuid::Uuid;
-use tokio::sync::oneshot::Receiver;
 use crate::{
     http_error::HttpError,
     auth::user_auth,
     models::{
-        user::User,
-        game::Game,
         session::Session,
-        turn::Turn
-    },
-    logic::prompt
+        game::Game
+    }
 };
 
 #[post("/game/{game_id}/session")]
@@ -19,39 +15,11 @@ pub async fn route(
     db: web::Data<PgPool>,
     path: web::Path<String>,
     req: HttpRequest
-) -> Result<impl Responder, HttpError> {
+) -> Result<HttpResponse, HttpError> {
     let user = user_auth(&db, &req, true).await?;
     let game_id = Uuid::parse_str(&path.into_inner())?;
-    let (game, mut characters, sessions) = Game::get_full_game(&db, game_id.clone(), Some(user.id)).await?;
-    let session = Session::new(game_id);
-    let response = prompt(
-        game,
-        characters.remove(0),
-        sessions,
-        vec![],
-        None,
-        true
-    ).await?;
-    update_db(response.message, session, "".to_string(), user.id, db);
-    Ok(response.sse)
-}
-
-fn update_db(
-    message: Receiver<(String, i32, i32)>,
-    session: Session,
-    user_text: String,
-    user_id: Uuid,
-    db: web::Data<PgPool>
-) {
-    tokio::spawn(async move {
-        let _ = if let Ok((m, it, ot)) = message.await {
-            let new_turn = Turn::new(session.id, it, ot, user_text, m);
-            let _ = session.insert(&db).await;
-            let _ = new_turn.insert(&db).await;
-            let _ = User::add_tokens(&db, user_id, -new_turn.tokens_used).await;
-            Ok::<(), HttpError>(())
-        } else {
-            Ok::<(), HttpError>(())
-        };
-    });
+    let game = Game::get_one(&db, game_id, Some(user.id)).await?;
+    let session = Session::new(game.id);
+    session.insert(&db).await?;
+    Ok(HttpResponse::Ok().json(session))
 }

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini