/* * 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::{post_request_auth, NetworkingOptions}; use super::Action; pub type CreateActionResponse = Result; #[derive(Serialize)] struct CreateActionPost { game_id: String, invoker: String, target: String, command: String, seed: String, } 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: serde_json::to_string(&action.command).unwrap(), seed: action.seed.to_string(), } ); Ok(res.json().unwrap()) }