| 12345678910111213141516171819202122232425 |
- use actix_web::{HttpResponse, HttpRequest, web, post};
- use sqlx::PgPool;
- use uuid::Uuid;
- use crate::{
- http_error::HttpError,
- auth::user_auth,
- models::{
- session::Session,
- game::Game
- }
- };
- #[post("/game/{game_id}/session")]
- pub async fn route(
- db: web::Data<PgPool>,
- path: web::Path<String>,
- req: HttpRequest
- ) -> Result<HttpResponse, HttpError> {
- let user = user_auth(&db, &req, true).await?;
- let game_id = Uuid::parse_str(&path.into_inner())?;
- 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))
- }
|