/* * This file is part of laurelin_client * Copyright (C) 2023 Jonni Liljamo * * Licensed under GPL-3.0-only. * See LICENSE for licensing information. */ use serde::Serialize; use crate::{NetworkingOptions, post_request_auth}; use super::{Command, Action}; pub type CreateActionResponse = Result; #[derive(Serialize)] struct CreateActionPost { game_id: String, invoker: String, target: String, command: Command, seed: u64, } pub fn create_action( no: &NetworkingOptions, action: &Action, ) -> CreateActionResponse { let res = post_request_auth!(no, "/game/action", &CreateActionPost { game_id: action.game_id.to_string(), invoker: action.invoker.to_string(), target: action.target.to_string(), command: action.command.clone(), seed: action.seed, }); Ok(res.json().unwrap()) }