/* * 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, } pub fn create_action( no: &NetworkingOptions, game_id: &str, invoker: &str, target: &str, command: &Command ) -> CreateActionResponse { let res = post_request_auth!(no, "/game/action", &CreateActionPost { game_id: game_id.to_string(), invoker: invoker.to_string(), target: target.to_string(), command: command.clone(), }); Ok(res.json().unwrap()) }