switched to sqlite
This commit is contained in:
@ -3,7 +3,7 @@ use crate::cli::env_settings;
|
||||
use crate::status::ServerStatus;
|
||||
use crate::utils::{ validate_name, extract_archive, move_all_elements};
|
||||
|
||||
use diesel::{insert_into, prelude::*};
|
||||
use diesel::prelude::*;
|
||||
use crate::{DbPool, models};
|
||||
use crate::schema;
|
||||
|
||||
@ -27,21 +27,22 @@ pub fn create_subcommand() -> Command {
|
||||
|
||||
|
||||
pub async fn subcommand(arg: &ArgMatches, pool: DbPool) -> Result<(), String>{
|
||||
// use schema::servers::dsl::*;
|
||||
let config = crate::Config::load();
|
||||
let name = arg.get_one::<String>("NAME").unwrap();
|
||||
let server_name = arg.get_one::<String>("NAME").unwrap();
|
||||
|
||||
|
||||
if !validate_name(name) {
|
||||
if !validate_name(server_name) {
|
||||
return Err("Invalid name provided".to_string());
|
||||
}
|
||||
|
||||
let conn = &mut pool.get().unwrap();
|
||||
|
||||
if let Ok(_) = schema::servers::table.filter(schema::servers::name.eq(name)).select(models::Servers::as_select()).first(conn) {
|
||||
if let Ok(_) = schema::servers::table.filter(schema::servers::name.eq(server_name)).select(models::Servers::as_select()).first(conn) {
|
||||
return Err("Server with this name already exists".to_string())
|
||||
}
|
||||
|
||||
let path = config.config_path + "/" + name + "/";
|
||||
let path = config.config_path + "/" + server_name + "/";
|
||||
|
||||
create_dir(&path).await.map_err(|e| format!("failed to create the config folder, reason : {}", e))?;
|
||||
|
||||
@ -56,14 +57,14 @@ pub async fn subcommand(arg: &ArgMatches, pool: DbPool) -> Result<(), String>{
|
||||
std::fs::remove_dir_all(path.to_string() + "tmp").map_err(|e| format!("failed to remove the tmp dir, reason : {}", e))?;
|
||||
}
|
||||
|
||||
let new_server = models::CreateServer {
|
||||
name: name,
|
||||
let _new_server = models::CreateServer {
|
||||
name: server_name,
|
||||
last_login: Some(SystemTime::now()),
|
||||
container_id: None,
|
||||
status: ServerStatus::Stopped,
|
||||
redirect_ip: None
|
||||
};
|
||||
|
||||
insert_into(schema::servers::dsl::servers).values(&new_server).execute(conn).map_err(|e| format!("Failed to insert in db, error : {:?}", e))?;
|
||||
// insert_into(schema::servers::dsl::servers).values(&new_server).execute(conn).map_err(|e| format!("Failed to insert in db, error : {:?}", e))?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user