Skip to content

Commit f580d15

Browse files
committed
updated add_file.rs
1 parent f301fc5 commit f580d15

File tree

1 file changed

+15
-109
lines changed

1 file changed

+15
-109
lines changed

src/add_file.rs

Lines changed: 15 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -1,86 +1,13 @@
1-
pub mod add_fn {
2-
#![allow(warnings)]
3-
1+
pub mod add_fn
2+
{
43
// PACKAGES
54
use std::fs;
65
use std::io::Write;
7-
use std::path::Path;
8-
use std::error::Error;
9-
10-
extern crate rusqlite;
11-
use rusqlite::{params, Connection, Result, NO_PARAMS};
12-
// PACKAGES
13-
14-
#[derive(Debug)]
15-
struct FileStr {
16-
id: i64,
17-
file_path: String,
18-
save_name: String,
19-
saved_date: String,
20-
saved_time: String
21-
}
22-
23-
#[derive(Debug)]
24-
struct DBStr {
25-
id: i64,
26-
save_name: String
27-
}
28-
29-
30-
// FUNC for UPDATE DATABASE - CLEAR DB and THEN INSERT NEW DB
31-
fn rewrite_db(base: Vec<FileStr>) -> Result<(), Box<dyn Error>> {
32-
let conn = Connection::open("rustix/storage.db3")?;
33-
conn.execute("DROP TABLE IF EXISTS main", NO_PARAMS)?;
34-
35-
conn.execute("CREATE TABLE IF NOT EXISTS main (
36-
id INTEGER PRIMARY KEY,
37-
file_path TEXT NOT NULL, save_name TEXT UNIQUE,
38-
saved_date TEXT NOT NULL, saved_time TEXT NOT NULL)", NO_PARAMS,
39-
)?;
40-
41-
for x in base {
42-
conn.execute("INSERT INTO main (
43-
id, file_path, save_name, saved_date, saved_time) VALUES (?1, ?2, ?3, ?4, ?5)",
44-
params![x.id, x.file_path, x.save_name, x.saved_date, x.saved_time],
45-
)?;
46-
}
47-
48-
conn.close();
49-
Ok(())
50-
}
51-
52-
53-
// FUNC for REWRITE ELEMENTS' ID and ADD NEW ELEMENT
54-
fn rewrite_id(mut data: FileStr) -> Result<Vec<FileStr>> {
55-
let conn = Connection::open("rustix/storage.db3")?;
56-
let mut stmt = conn.prepare("SELECT * FROM main")?;
57-
58-
let mut base = stmt.query_map(NO_PARAMS, |row| {
59-
Ok(FileStr {
60-
id: row.get(0)?,
61-
file_path: row.get(1)?, save_name: row.get(2)?,
62-
saved_date: row.get(3)?, saved_time: row.get(4)?,
63-
})
64-
})?;
65-
66-
let mut new_base: Vec<FileStr> = Vec::new();
67-
let mut new_id: i64 = 1;
68-
for one in base.into_iter() { new_base.push(one.unwrap()); }
69-
70-
for e in new_base.iter_mut() {
71-
e.id = new_id;
72-
new_id += 1;
73-
}
74-
75-
data.id = new_id;
76-
new_base.push(data);
77-
78-
Ok(new_base)
79-
}
806

817

828
// COPY FILE'S CONTENT and CREATE SAVE
83-
fn create_save(unq_name: &String, file_path: &String) {
9+
fn create_save(unq_name: &String, file_path: &String)
10+
{
8411
fn copy_file(file_path: &String) -> String { return fs::read_to_string(file_path).expect("Should have been able to read the file"); }
8512

8613
let file_name = format!("rustix/saves/{:02}.txt", unq_name);
@@ -93,42 +20,21 @@ pub mod add_fn {
9320

9421

9522
// START POINT
96-
pub fn start(file_path: &String, unq_name: &String) {
23+
pub fn start(file_path: &String, unq_name: &String)
24+
{
9725
crate::log::logger::start("ADD ".to_string());
98-
let TIME_DATE: [String; 2] = crate::time::time_fn::start();
99-
100-
fn check_unique_name(unq: &String) -> Result<bool, Box<dyn Error>>
101-
{
102-
let conn = Connection::open("rustix/storage.db3")?;
103-
let mut stmt = conn.prepare("SELECT id, save_name FROM main")?;
104-
let mut base = stmt.query_map(NO_PARAMS, |row| { Ok(DBStr { id: row.get(0)?, save_name: row.get(1)?, }) })?;
105-
106-
let mut x: bool = false;
107-
for e in base.into_iter() {
108-
if &e.unwrap().save_name == unq {
109-
println!("Such a name already exists !");
110-
x = true;
111-
112-
break;
113-
} else { continue; }
114-
}
115-
116-
Ok(x)
117-
}
118-
if check_unique_name(&unq_name).unwrap() == true { return; }
11926

27+
let TIME_DATE : [String; 2] = crate::time::time_fn::start();
12028

121-
let file_info = FileStr {
122-
id: 0,
123-
file_path: file_path.to_string(),
124-
save_name: unq_name.to_string(),
125-
saved_date: TIME_DATE[0].to_string(),
126-
saved_time: TIME_DATE[1].to_string()
127-
};
29+
let save_info : [String; 4] = [
30+
file_path.to_string(),
31+
unq_name.to_string(),
32+
TIME_DATE[0].to_string(),
33+
TIME_DATE[1].to_string()];
12834

129-
create_save(&unq_name, &file_path);
130-
rewrite_db(rewrite_id(file_info).unwrap());
13135

132-
println!("Added !");
36+
let CREATE_COPY = crate::database::add::start(save_info);
37+
if (CREATE_COPY == true) { create_save(&unq_name, &file_path); }
38+
else { println!(":("); }
13339
}
13440
}

0 commit comments

Comments
 (0)