refactor: cli handle operator and operator.rs moved to general module

This commit is contained in:
Noor 2025-03-20 21:53:27 +05:30
parent de8f761e1f
commit 36df27f3e6
Signed by: noormohammedb
GPG Key ID: D83EFB8B3B967146
5 changed files with 49 additions and 42 deletions

@ -1,5 +1,6 @@
use clap::{builder::PossibleValue, Arg, ArgMatches, Command};
use clap_complete::{generate, Shell};
use detee_cli::general::cli_handler::handle_operators;
use detee_cli::sgx::cli_handler::handle_app;
use detee_cli::snp::cli_handler::{handle_vm, handle_vm_nodes};
use detee_cli::*;
@ -618,39 +619,6 @@ fn handle_account(matches: &ArgMatches) {
}
}
fn handle_operators(matches: &ArgMatches) {
match matches.subcommand() {
Some(("list", _)) => {
cli_print(crate::operators::print_operators().map_err(Into::into));
}
Some(("register", subcom_args)) => {
let escrow: u64 = *subcom_args.get_one::<u64>("escrow").unwrap();
let email: String = subcom_args.get_one::<String>("email").unwrap().clone();
cli_print(crate::operators::register(escrow, email).map_err(Into::into));
}
Some(("inspect", inspect_args)) => {
let wallet = match inspect_args.get_one::<String>("wallet") {
Some(wallet) => wallet.to_string(),
None => config::Config::get_detee_wallet().unwrap_or("".to_string()),
};
cli_print(crate::operators::inspect_operator(wallet).map_err(Into::into));
}
Some(("kick", subcom_args)) => {
let uuid: String = subcom_args.get_one::<String>("contract").unwrap().clone();
let reason: String = subcom_args.get_one::<String>("reason").unwrap().clone();
cli_print(crate::operators::kick(uuid, reason).map_err(Into::into));
}
Some(("ban-user", subcom_args)) => {
let user_wallet: String = subcom_args.get_one::<String>("wallet").unwrap().clone();
cli_print(crate::operators::ban(user_wallet).map_err(Into::into));
}
Some(("decom", _)) => {
todo!("Currently decomissioning is not supported. Will be ");
}
_ => println!("To get more information about operators, use: detee-cli operator --help"),
}
}
fn handle_packagers(
_matches: &ArgMatches,
) -> Result<Vec<crate::packagers::Packager>, Box<dyn Error>> {

@ -0,0 +1,36 @@
use super::operators;
use crate::{cli_print, config};
use clap::ArgMatches;
pub fn handle_operators(matches: &ArgMatches) {
match matches.subcommand() {
Some(("list", _)) => {
cli_print(operators::print_operators().map_err(Into::into));
}
Some(("register", subcom_args)) => {
let escrow: u64 = *subcom_args.get_one::<u64>("escrow").unwrap();
let email: String = subcom_args.get_one::<String>("email").unwrap().clone();
cli_print(operators::register(escrow, email).map_err(Into::into));
}
Some(("inspect", inspect_args)) => {
let wallet = match inspect_args.get_one::<String>("wallet") {
Some(wallet) => wallet.to_string(),
None => config::Config::get_detee_wallet().unwrap_or("".to_string()),
};
cli_print(operators::inspect_operator(wallet).map_err(Into::into));
}
Some(("kick", subcom_args)) => {
let uuid: String = subcom_args.get_one::<String>("contract").unwrap().clone();
let reason: String = subcom_args.get_one::<String>("reason").unwrap().clone();
cli_print(operators::kick(uuid, reason).map_err(Into::into));
}
Some(("ban-user", subcom_args)) => {
let user_wallet: String = subcom_args.get_one::<String>("wallet").unwrap().clone();
cli_print(operators::ban(user_wallet).map_err(Into::into));
}
Some(("decom", _)) => {
todo!("Currently decomissioning is not supported. Will be ");
}
_ => println!("To get more information about operators, use: detee-cli operator --help"),
}
}

3
src/general/mod.rs Normal file

@ -0,0 +1,3 @@
pub mod cli_handler;
pub mod operators;
// pub mod grpc;

@ -26,12 +26,12 @@ impl From<grpc::brain::ListOperatorsResp> for TabledOperator {
}
}
pub fn register(escrow: u64, email: String) -> Result<super::SimpleOutput, grpc::Error> {
pub fn register(escrow: u64, email: String) -> Result<crate::SimpleOutput, grpc::Error> {
block_on(grpc::register_operator(escrow, email))?;
Ok(super::SimpleOutput::from("Successfully registered you as operator."))
Ok(crate::SimpleOutput::from("Successfully registered you as operator."))
}
impl super::HumanOutput for brain::InspectOperatorResp {
impl crate::HumanOutput for brain::InspectOperatorResp {
fn human_cli_print(&self) {
match &self.operator {
Some(op) => {
@ -65,7 +65,7 @@ pub fn inspect_operator(wallet: String) -> Result<brain::InspectOperatorResp, gr
block_on(grpc::inspect_operator(wallet))
}
impl super::HumanOutput for Vec<brain::ListOperatorsResp> {
impl crate::HumanOutput for Vec<brain::ListOperatorsResp> {
fn human_cli_print(&self) {
let operators: Vec<TabledOperator> = self.iter().map(|op| op.clone().into()).collect();
@ -80,14 +80,14 @@ pub fn print_operators() -> Result<Vec<brain::ListOperatorsResp>, grpc::Error> {
Ok(block_on(grpc::list_operators())?)
}
pub fn kick(contract_uuid: String, reason: String) -> Result<super::SimpleOutput, grpc::Error> {
pub fn kick(contract_uuid: String, reason: String) -> Result<crate::SimpleOutput, grpc::Error> {
let nano_lp = block_on(grpc::kick_contract(contract_uuid, reason))?;
Ok(super::SimpleOutput::from(
Ok(crate::SimpleOutput::from(
format!("Successfully terminated contract. Refunded {} nanoLP.", nano_lp).as_str(),
))
}
pub fn ban(wallet: String) -> Result<super::SimpleOutput, grpc::Error> {
pub fn ban(wallet: String) -> Result<crate::SimpleOutput, grpc::Error> {
block_on(grpc::ban_user(wallet))?;
Ok(super::SimpleOutput::from("Successfully banned user"))
Ok(crate::SimpleOutput::from("Successfully banned user"))
}

@ -1,7 +1,7 @@
pub mod config;
pub mod constants;
pub mod general;
pub mod name_generator;
pub mod operators;
pub mod packagers;
pub mod sgx;
pub mod snp;