Cli reworks | 0.1.1 | Stable

Seperated json creation from cli.rs and added better help message.
Also user-friendly message creation
This commit is contained in:
Max Chaev 2025-03-12 21:15:11 +03:00
parent 542fc634ad
commit 83d71ac2ac
4 changed files with 22 additions and 10 deletions

2
Cargo.lock generated
View File

@ -79,7 +79,7 @@ dependencies = [
[[package]] [[package]]
name = "cctweaked-messager" name = "cctweaked-messager"
version = "0.1.0" version = "0.1.1"
dependencies = [ dependencies = [
"reqwest", "reqwest",
"serde", "serde",

View File

@ -1,6 +1,6 @@
[package] [package]
name = "cctweaked-messager" name = "cctweaked-messager"
version = "0.1.0" version = "0.1.1"
edition = "2024" edition = "2024"
[dependencies] [dependencies]

View File

@ -2,7 +2,7 @@ use std::{env, process::exit};
use strum::{EnumIter, IntoEnumIterator}; use strum::{EnumIter, IntoEnumIterator};
use crate::{decoding::{decode_json, CctweakedMessage}, networking::{get_json, send_json}}; use crate::{decoding::decode_json, networking::{get_json, send_json}};
#[derive(Debug, EnumIter)] #[derive(Debug, EnumIter)]
enum KnownArguments { enum KnownArguments {
@ -28,7 +28,7 @@ pub fn process_cli_args() {
// Removing execution path probably. // Removing execution path probably.
let args = &args[1..]; let args = &args[1..];
let arg_type = match args[0].as_str() { let arg_type = match args[0].to_lowercase().as_str() {
"help" => KnownArguments::Help, "help" => KnownArguments::Help,
"--help" => KnownArguments::Help, "--help" => KnownArguments::Help,
"-h" => KnownArguments::Help, "-h" => KnownArguments::Help,
@ -48,14 +48,24 @@ pub fn process_cli_args() {
fn process_help(_: &[String]) { fn process_help(_: &[String]) {
println!("All posible arguments:"); println!("All posible arguments:");
for argument in KnownArguments::iter() { for argument in KnownArguments::iter() {
println!("{:?}", argument); match argument {
KnownArguments::Help => println!("{:?} - Shows help message.", argument),
KnownArguments::Send => println!("{:?} <content> <msg_type> - sends a cctweaked message to server", argument),
KnownArguments::Recieve => println!("{:?} - Fetches cctweaked message from server", argument),
_ => (),
}
} }
} }
fn process_send(args: &[String]) { fn process_send(args: &[String]) {
let inputed_json: CctweakedMessage = serde_json::from_str(&args[1]) if args.len() < 3 {
.expect("Wrong CCTweaked Message. Try to encapsulate it in '' "); println!("Not enough arguments for 'send', please refer to --help");
exit(0);
}
let resp = send_json(URL.to_owned(), inputed_json) let input_content = &args[1];
let input_type = &args[2].parse::<i32>().expect("Wrong message type");
let resp = send_json(URL.to_owned(), input_content.to_owned(), *input_type)
.expect("Failed to send json"); .expect("Failed to send json");
println!("{}, {}", resp.status(), resp.text().unwrap()); println!("{}, {}", resp.status(), resp.text().unwrap());

View File

@ -1,6 +1,6 @@
use reqwest::{blocking::{Client, Response}, Error, StatusCode}; use reqwest::{blocking::{Client, Response}, Error, StatusCode};
use crate::decoding::CctweakedMessage; use crate::decoding::create_cctweaked_message;
pub fn get_json(url: String) -> Result<String, StatusCode> { pub fn get_json(url: String) -> Result<String, StatusCode> {
let resp = reqwest::blocking::get(url) let resp = reqwest::blocking::get(url)
@ -14,7 +14,9 @@ pub fn get_json(url: String) -> Result<String, StatusCode> {
} }
} }
pub fn send_json(url: String, message: CctweakedMessage) -> Result<Response, Error> { pub fn send_json(url: String, content: String, msg_type: i32) -> Result<Response, Error> {
let message = create_cctweaked_message(content, msg_type);
let client = Client::new(); let client = Client::new();
let resp = client.post(url) let resp = client.post(url)
.body(serde_json::to_string(&message).expect("Failed to create json from message")) .body(serde_json::to_string(&message).expect("Failed to create json from message"))