api/services/action/
play_computer.rs1#[cfg(feature = "server")]
2use dioxus::fullstack::extract::State;
3use dioxus::prelude::*;
4
5#[cfg(feature = "server")]
6use crate::ServerStateExtractor;
7use crate::{
8 dto::{GameIdDTO, UserIdDTO},
9 error::ApiError,
10};
11
12#[post("/api/{user_id}/play_computer/", State(server_state): State<ServerStateExtractor>)]
13pub async fn play_computer(user_id: UserIdDTO) -> Result<GameIdDTO, ApiError> {
14 use server::{action::play_computer, domain::UserId};
15
16 let user_id = UserId::from(user_id.value());
17
18 let game_id = play_computer(server_state.0, user_id).await?;
19 Ok(GameIdDTO::from(game_id.value()))
20}