Browse Source

Add 'tokens_remaining' for session creation response

Lee Morgan 1 month ago
parent
commit
66eb2434e4
3 changed files with 8 additions and 6 deletions
  1. 1 2
      sql/users.sql
  2. 5 2
      src/controllers/game/session/create.rs
  3. 2 2
      src/models/user.rs

+ 1 - 2
sql/users.sql

@@ -1,10 +1,9 @@
 CREATE TABLE IF NOT EXISTS users(
     id UUID PRIMARY KEY,
-
     session_token UUID NOT NULL,
     name TEXT NOT NULL,
     email TEXT NOT NULL UNIQUE,
     pass_hash TEXT NOT NULL,
-    tokens BIGINT NOT NULL,
+    tokens INTEGER NOT NULL,
     created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
 );

+ 5 - 2
src/controllers/game/session/create.rs

@@ -22,7 +22,8 @@ use crate::{
 #[derive(Serialize)]
 struct Response {
     session: Session,
-    turn: Turn
+    turn: Turn,
+    tokens_remaining: i32
 }
 
 #[post("/game/{game_id}/session")]
@@ -48,9 +49,11 @@ pub async fn route(
     turn.insert(&db).await?;
     User::add_tokens(&db, user.id, -turn.tokens_used).await?;
 
+    let tokens_remaining = user.tokens - turn.tokens_used;
     Ok(HttpResponse::Ok().json(Response {
         session: session,
-        turn: turn
+        turn: turn,
+        tokens_remaining: tokens_remaining
     }))
 }
 

+ 2 - 2
src/models/user.rs

@@ -11,7 +11,7 @@ pub struct User {
     pub name: String,
     pub email: String,
     pub pass_hash: String,
-    pub tokens: i64,
+    pub tokens: i32,
     pub created_at: DateTime<Utc>
 }
 
@@ -20,7 +20,7 @@ pub struct ResponseUser {
     id: String,
     name: String,
     email: String,
-    tokens: i64
+    tokens: i32
 }
 
 impl User {