diff options
author | fxqnlr <[email protected]> | 2023-04-23 21:47:37 +0200 |
---|---|---|
committer | fxqnlr <[email protected]> | 2023-04-23 21:47:37 +0200 |
commit | 3e65975227baa511f570e8223fccda5607cf905e (patch) | |
tree | f852fd5cc3b26a004cf7bfab054e86c0d74c4669 /src/db.rs | |
parent | 416f4dc383ff5a1194da3a5532a8e159a4a1dac0 (diff) | |
download | modlist-3e65975227baa511f570e8223fccda5607cf905e.tar modlist-3e65975227baa511f570e8223fccda5607cf905e.tar.gz modlist-3e65975227baa511f570e8223fccda5607cf905e.zip |
added config argument, remove devdir
Diffstat (limited to 'src/db.rs')
-rw-r--r-- | src/db.rs | 65 |
1 files changed, 32 insertions, 33 deletions
@@ -4,14 +4,13 @@ use rusqlite::Connection; | |||
4 | 4 | ||
5 | use crate::{ | 5 | use crate::{ |
6 | config::Cfg, | 6 | config::Cfg, |
7 | devdir, | ||
8 | error::{ErrorType, MLError, MLE}, | 7 | error::{ErrorType, MLError, MLE}, |
9 | List, Modloader, | 8 | List, Modloader, |
10 | }; | 9 | }; |
11 | 10 | ||
12 | //MODS | 11 | //MODS |
13 | pub fn mods_insert(config: Cfg, id: &str, slug: &str, name: &str) -> MLE<()> { | 12 | pub fn mods_insert(config: Cfg, id: &str, slug: &str, name: &str) -> MLE<()> { |
14 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 13 | let data = format!("{}/data.db", config.data); |
15 | let connection = Connection::open(data)?; | 14 | let connection = Connection::open(data)?; |
16 | 15 | ||
17 | connection.execute( | 16 | connection.execute( |
@@ -23,7 +22,7 @@ pub fn mods_insert(config: Cfg, id: &str, slug: &str, name: &str) -> MLE<()> { | |||
23 | } | 22 | } |
24 | 23 | ||
25 | pub fn mods_get_all_ids(config: Cfg) -> Result<Vec<String>, Box<dyn std::error::Error>> { | 24 | pub fn mods_get_all_ids(config: Cfg) -> Result<Vec<String>, Box<dyn std::error::Error>> { |
26 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 25 | let data = format!("{}/data.db", config.data); |
27 | let connection = Connection::open(data).unwrap(); | 26 | let connection = Connection::open(data).unwrap(); |
28 | 27 | ||
29 | let mut mods: Vec<String> = Vec::new(); | 28 | let mut mods: Vec<String> = Vec::new(); |
@@ -53,7 +52,7 @@ pub fn mods_get_all_ids(config: Cfg) -> Result<Vec<String>, Box<dyn std::error:: | |||
53 | pub fn mods_get_id(data: &str, slug: &str) -> MLE<String> { | 52 | pub fn mods_get_id(data: &str, slug: &str) -> MLE<String> { |
54 | //TODO check if "slug" is id | 53 | //TODO check if "slug" is id |
55 | 54 | ||
56 | let data = devdir(format!("{}/data.db", data).as_str()); | 55 | let data = format!("{}/data.db", data); |
57 | let connection = Connection::open(data)?; | 56 | let connection = Connection::open(data)?; |
58 | 57 | ||
59 | let mut mod_id = String::new(); | 58 | let mut mod_id = String::new(); |
@@ -88,7 +87,7 @@ pub struct ModInfo { | |||
88 | } | 87 | } |
89 | 88 | ||
90 | pub fn mods_get_info(config: Cfg, id: &str) -> MLE<ModInfo> { | 89 | pub fn mods_get_info(config: Cfg, id: &str) -> MLE<ModInfo> { |
91 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 90 | let data = format!("{}/data.db", config.data); |
92 | let connection = Connection::open(data)?; | 91 | let connection = Connection::open(data)?; |
93 | 92 | ||
94 | let mut mod_info: Option<ModInfo> = None; | 93 | let mut mod_info: Option<ModInfo> = None; |
@@ -117,7 +116,7 @@ pub fn mods_get_info(config: Cfg, id: &str) -> MLE<ModInfo> { | |||
117 | pub fn mods_remove(config: Cfg, id: String) -> MLE<()> { | 116 | pub fn mods_remove(config: Cfg, id: String) -> MLE<()> { |
118 | println!("Removing mod {} from database", id); | 117 | println!("Removing mod {} from database", id); |
119 | 118 | ||
120 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 119 | let data = format!("{}/data.db", config.data); |
121 | let connection = Connection::open(data)?; | 120 | let connection = Connection::open(data)?; |
122 | 121 | ||
123 | connection.execute("DELETE FROM mods WHERE id = ?", [id])?; | 122 | connection.execute("DELETE FROM mods WHERE id = ?", [id])?; |
@@ -132,7 +131,7 @@ pub struct DBModlistVersions { | |||
132 | } | 131 | } |
133 | 132 | ||
134 | pub fn mods_get_versions(config: Cfg, mods: Vec<String>) -> MLE<Vec<DBModlistVersions>> { | 133 | pub fn mods_get_versions(config: Cfg, mods: Vec<String>) -> MLE<Vec<DBModlistVersions>> { |
135 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 134 | let data = format!("{}/data.db", config.data); |
136 | let connection = Connection::open(data)?; | 135 | let connection = Connection::open(data)?; |
137 | 136 | ||
138 | if mods.is_empty() { | 137 | if mods.is_empty() { |
@@ -188,7 +187,7 @@ pub fn userlist_insert( | |||
188 | current_link: &str, | 187 | current_link: &str, |
189 | set_version: bool, | 188 | set_version: bool, |
190 | ) -> MLE<()> { | 189 | ) -> MLE<()> { |
191 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 190 | let data = format!("{}/data.db", config.data); |
192 | let connection = Connection::open(data)?; | 191 | let connection = Connection::open(data)?; |
193 | 192 | ||
194 | let sv = match set_version { | 193 | let sv = match set_version { |
@@ -215,7 +214,7 @@ pub fn userlist_insert( | |||
215 | } | 214 | } |
216 | 215 | ||
217 | pub fn userlist_get_all_ids(config: Cfg, list_id: String) -> MLE<Vec<String>> { | 216 | pub fn userlist_get_all_ids(config: Cfg, list_id: String) -> MLE<Vec<String>> { |
218 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 217 | let data = format!("{}/data.db", config.data); |
219 | let connection = Connection::open(data).unwrap(); | 218 | let connection = Connection::open(data).unwrap(); |
220 | 219 | ||
221 | let mut mod_ids: Vec<String> = Vec::new(); | 220 | let mut mod_ids: Vec<String> = Vec::new(); |
@@ -234,7 +233,7 @@ pub fn userlist_get_all_ids(config: Cfg, list_id: String) -> MLE<Vec<String>> { | |||
234 | } | 233 | } |
235 | 234 | ||
236 | pub fn userlist_remove(config: Cfg, list_id: &str, mod_id: &str) -> MLE<()> { | 235 | pub fn userlist_remove(config: Cfg, list_id: &str, mod_id: &str) -> MLE<()> { |
237 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 236 | let data = format!("{}/data.db", config.data); |
238 | let connection = Connection::open(data)?; | 237 | let connection = Connection::open(data)?; |
239 | 238 | ||
240 | connection.execute( | 239 | connection.execute( |
@@ -249,7 +248,7 @@ pub fn userlist_get_applicable_versions( | |||
249 | list_id: String, | 248 | list_id: String, |
250 | mod_id: String, | 249 | mod_id: String, |
251 | ) -> MLE<String> { | 250 | ) -> MLE<String> { |
252 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 251 | let data = format!("{}/data.db", config.data); |
253 | let connection = Connection::open(data).unwrap(); | 252 | let connection = Connection::open(data).unwrap(); |
254 | 253 | ||
255 | let mut version: String = String::new(); | 254 | let mut version: String = String::new(); |
@@ -276,7 +275,7 @@ pub fn userlist_get_all_applicable_versions_with_mods( | |||
276 | config: Cfg, | 275 | config: Cfg, |
277 | list_id: String, | 276 | list_id: String, |
278 | ) -> MLE<Vec<(String, String)>> { | 277 | ) -> MLE<Vec<(String, String)>> { |
279 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 278 | let data = format!("{}/data.db", config.data); |
280 | let connection = Connection::open(data)?; | 279 | let connection = Connection::open(data)?; |
281 | 280 | ||
282 | let mut versions: Vec<(String, String)> = Vec::new(); | 281 | let mut versions: Vec<(String, String)> = Vec::new(); |
@@ -302,7 +301,7 @@ pub fn userlist_get_all_applicable_versions_with_mods( | |||
302 | } | 301 | } |
303 | 302 | ||
304 | pub fn userlist_get_current_version(config: Cfg, list_id: &str, mod_id: &str) -> MLE<String> { | 303 | pub fn userlist_get_current_version(config: Cfg, list_id: &str, mod_id: &str) -> MLE<String> { |
305 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 304 | let data = format!("{}/data.db", config.data); |
306 | let connection = Connection::open(data).unwrap(); | 305 | let connection = Connection::open(data).unwrap(); |
307 | 306 | ||
308 | let mut version: String = String::new(); | 307 | let mut version: String = String::new(); |
@@ -324,7 +323,7 @@ pub fn userlist_get_all_current_version_ids( | |||
324 | config: Cfg, | 323 | config: Cfg, |
325 | list_id: String, | 324 | list_id: String, |
326 | ) -> Result<Vec<String>, Box<dyn std::error::Error>> { | 325 | ) -> Result<Vec<String>, Box<dyn std::error::Error>> { |
327 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 326 | let data = format!("{}/data.db", config.data); |
328 | let connection = Connection::open(data)?; | 327 | let connection = Connection::open(data)?; |
329 | 328 | ||
330 | let mut versions: Vec<String> = Vec::new(); | 329 | let mut versions: Vec<String> = Vec::new(); |
@@ -350,7 +349,7 @@ pub fn userlist_get_all_current_versions_with_mods( | |||
350 | config: Cfg, | 349 | config: Cfg, |
351 | list_id: String, | 350 | list_id: String, |
352 | ) -> Result<Vec<(String, String)>, Box<dyn std::error::Error>> { | 351 | ) -> Result<Vec<(String, String)>, Box<dyn std::error::Error>> { |
353 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 352 | let data = format!("{}/data.db", config.data); |
354 | let connection = Connection::open(data)?; | 353 | let connection = Connection::open(data)?; |
355 | 354 | ||
356 | let mut versions: Vec<(String, String)> = Vec::new(); | 355 | let mut versions: Vec<(String, String)> = Vec::new(); |
@@ -379,7 +378,7 @@ pub fn userlist_get_all_current_versions_with_mods( | |||
379 | } | 378 | } |
380 | 379 | ||
381 | pub fn userlist_get_set_version(config: Cfg, list_id: &str, mod_id: &str) -> MLE<bool> { | 380 | pub fn userlist_get_set_version(config: Cfg, list_id: &str, mod_id: &str) -> MLE<bool> { |
382 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 381 | let data = format!("{}/data.db", config.data); |
383 | let connection = Connection::open(data).unwrap(); | 382 | let connection = Connection::open(data).unwrap(); |
384 | 383 | ||
385 | let mut set_version: bool = false; | 384 | let mut set_version: bool = false; |
@@ -402,7 +401,7 @@ pub fn userlist_change_versions( | |||
402 | link: String, | 401 | link: String, |
403 | mod_id: String, | 402 | mod_id: String, |
404 | ) -> MLE<()> { | 403 | ) -> MLE<()> { |
405 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 404 | let data = format!("{}/data.db", config.data); |
406 | let connection = Connection::open(data)?; | 405 | let connection = Connection::open(data)?; |
407 | 406 | ||
408 | connection.execute(format!("UPDATE {} SET current_version = ?1, applicable_versions = ?2, current_download = ?3 WHERE mod_id = ?4", list_id).as_str(), [current_version, versions, link, mod_id])?; | 407 | connection.execute(format!("UPDATE {} SET current_version = ?1, applicable_versions = ?2, current_download = ?3 WHERE mod_id = ?4", list_id).as_str(), [current_version, versions, link, mod_id])?; |
@@ -415,7 +414,7 @@ pub fn userlist_add_disabled_versions( | |||
415 | disabled_version: String, | 414 | disabled_version: String, |
416 | mod_id: String, | 415 | mod_id: String, |
417 | ) -> MLE<()> { | 416 | ) -> MLE<()> { |
418 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 417 | let data = format!("{}/data.db", config.data); |
419 | let connection = Connection::open(data)?; | 418 | let connection = Connection::open(data)?; |
420 | 419 | ||
421 | let currently_disabled_versions = | 420 | let currently_disabled_versions = |
@@ -437,7 +436,7 @@ pub fn userlist_add_disabled_versions( | |||
437 | } | 436 | } |
438 | 437 | ||
439 | pub fn userlist_get_disabled_versions(config: Cfg, list_id: String, mod_id: String) -> MLE<String> { | 438 | pub fn userlist_get_disabled_versions(config: Cfg, list_id: String, mod_id: String) -> MLE<String> { |
440 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 439 | let data = format!("{}/data.db", config.data); |
441 | let connection = Connection::open(data).unwrap(); | 440 | let connection = Connection::open(data).unwrap(); |
442 | 441 | ||
443 | let mut version: String = String::new(); | 442 | let mut version: String = String::new(); |
@@ -459,7 +458,7 @@ pub fn userlist_get_all_downloads( | |||
459 | config: Cfg, | 458 | config: Cfg, |
460 | list_id: String, | 459 | list_id: String, |
461 | ) -> Result<Vec<String>, Box<dyn std::error::Error>> { | 460 | ) -> Result<Vec<String>, Box<dyn std::error::Error>> { |
462 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 461 | let data = format!("{}/data.db", config.data); |
463 | let connection = Connection::open(data).unwrap(); | 462 | let connection = Connection::open(data).unwrap(); |
464 | 463 | ||
465 | let mut links: Vec<String> = Vec::new(); | 464 | let mut links: Vec<String> = Vec::new(); |
@@ -494,7 +493,7 @@ pub fn lists_insert( | |||
494 | ) -> MLE<()> { | 493 | ) -> MLE<()> { |
495 | println!("Creating list {}", id); | 494 | println!("Creating list {}", id); |
496 | 495 | ||
497 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 496 | let data = format!("{}/data.db", config.data); |
498 | let connection = Connection::open(data)?; | 497 | let connection = Connection::open(data)?; |
499 | 498 | ||
500 | connection.execute( | 499 | connection.execute( |
@@ -512,7 +511,7 @@ pub fn lists_insert( | |||
512 | } | 511 | } |
513 | 512 | ||
514 | pub fn lists_remove(config: Cfg, id: String) -> MLE<()> { | 513 | pub fn lists_remove(config: Cfg, id: String) -> MLE<()> { |
515 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 514 | let data = format!("{}/data.db", config.data); |
516 | let connection = Connection::open(data)?; | 515 | let connection = Connection::open(data)?; |
517 | 516 | ||
518 | connection.execute("DELETE FROM lists WHERE id = ?", [&id])?; | 517 | connection.execute("DELETE FROM lists WHERE id = ?", [&id])?; |
@@ -521,7 +520,7 @@ pub fn lists_remove(config: Cfg, id: String) -> MLE<()> { | |||
521 | } | 520 | } |
522 | 521 | ||
523 | pub fn lists_get(config: Cfg, list_id: String) -> MLE<List> { | 522 | pub fn lists_get(config: Cfg, list_id: String) -> MLE<List> { |
524 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 523 | let data = format!("{}/data.db", config.data); |
525 | let connection = Connection::open(data).unwrap(); | 524 | let connection = Connection::open(data).unwrap(); |
526 | 525 | ||
527 | let mut list = List { | 526 | let mut list = List { |
@@ -559,7 +558,7 @@ pub fn lists_get(config: Cfg, list_id: String) -> MLE<List> { | |||
559 | } | 558 | } |
560 | 559 | ||
561 | pub fn lists_version(config: Cfg, list_id: &str, version: &str) -> MLE<()> { | 560 | pub fn lists_version(config: Cfg, list_id: &str, version: &str) -> MLE<()> { |
562 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 561 | let data = format!("{}/data.db", config.data); |
563 | let connection = Connection::open(data).unwrap(); | 562 | let connection = Connection::open(data).unwrap(); |
564 | 563 | ||
565 | connection.execute( | 564 | connection.execute( |
@@ -570,7 +569,7 @@ pub fn lists_version(config: Cfg, list_id: &str, version: &str) -> MLE<()> { | |||
570 | } | 569 | } |
571 | 570 | ||
572 | pub fn lists_get_all_ids(config: Cfg) -> MLE<Vec<String>> { | 571 | pub fn lists_get_all_ids(config: Cfg) -> MLE<Vec<String>> { |
573 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 572 | let data = format!("{}/data.db", config.data); |
574 | let connection = Connection::open(data).unwrap(); | 573 | let connection = Connection::open(data).unwrap(); |
575 | 574 | ||
576 | let mut list_ids: Vec<String> = Vec::new(); | 575 | let mut list_ids: Vec<String> = Vec::new(); |
@@ -589,7 +588,7 @@ pub fn lists_get_all_ids(config: Cfg) -> MLE<Vec<String>> { | |||
589 | 588 | ||
590 | //config | 589 | //config |
591 | pub fn config_change_current_list(config: Cfg, id: String) -> MLE<()> { | 590 | pub fn config_change_current_list(config: Cfg, id: String) -> MLE<()> { |
592 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 591 | let data = format!("{}/data.db", config.data); |
593 | let connection = Connection::open(data)?; | 592 | let connection = Connection::open(data)?; |
594 | 593 | ||
595 | connection.execute( | 594 | connection.execute( |
@@ -600,7 +599,7 @@ pub fn config_change_current_list(config: Cfg, id: String) -> MLE<()> { | |||
600 | } | 599 | } |
601 | 600 | ||
602 | pub fn config_get_current_list(config: Cfg) -> MLE<String> { | 601 | pub fn config_get_current_list(config: Cfg) -> MLE<String> { |
603 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 602 | let data = format!("{}/data.db", config.data); |
604 | let connection = Connection::open(data).unwrap(); | 603 | let connection = Connection::open(data).unwrap(); |
605 | 604 | ||
606 | let mut list_id = String::new(); | 605 | let mut list_id = String::new(); |
@@ -625,7 +624,7 @@ pub fn s_userlist_update_download( | |||
625 | mod_id: String, | 624 | mod_id: String, |
626 | link: String, | 625 | link: String, |
627 | ) -> Result<(), Box<dyn std::error::Error>> { | 626 | ) -> Result<(), Box<dyn std::error::Error>> { |
628 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 627 | let data = format!("{}/data.db", config.data); |
629 | let connection = Connection::open(data)?; | 628 | let connection = Connection::open(data)?; |
630 | 629 | ||
631 | connection.execute( | 630 | connection.execute( |
@@ -640,7 +639,7 @@ pub fn s_userlist_update_download( | |||
640 | } | 639 | } |
641 | 640 | ||
642 | pub fn s_config_create_version(config: Cfg) -> Result<(), Box<dyn std::error::Error>> { | 641 | pub fn s_config_create_version(config: Cfg) -> Result<(), Box<dyn std::error::Error>> { |
643 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 642 | let data = format!("{}/data.db", config.data); |
644 | let connection = Connection::open(data)?; | 643 | let connection = Connection::open(data)?; |
645 | 644 | ||
646 | connection.execute( | 645 | connection.execute( |
@@ -651,7 +650,7 @@ pub fn s_config_create_version(config: Cfg) -> Result<(), Box<dyn std::error::Er | |||
651 | } | 650 | } |
652 | 651 | ||
653 | pub fn s_config_update_version(config: Cfg, ver: String) -> Result<(), Box<dyn std::error::Error>> { | 652 | pub fn s_config_update_version(config: Cfg, ver: String) -> Result<(), Box<dyn std::error::Error>> { |
654 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 653 | let data = format!("{}/data.db", config.data); |
655 | let connection = Connection::open(data)?; | 654 | let connection = Connection::open(data)?; |
656 | 655 | ||
657 | connection.execute( | 656 | connection.execute( |
@@ -662,7 +661,7 @@ pub fn s_config_update_version(config: Cfg, ver: String) -> Result<(), Box<dyn s | |||
662 | } | 661 | } |
663 | 662 | ||
664 | pub fn s_config_get_version(config: Cfg) -> Result<String, Box<dyn std::error::Error>> { | 663 | pub fn s_config_get_version(config: Cfg) -> Result<String, Box<dyn std::error::Error>> { |
665 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 664 | let data = format!("{}/data.db", config.data); |
666 | let connection = Connection::open(data)?; | 665 | let connection = Connection::open(data)?; |
667 | 666 | ||
668 | let mut version: String = String::new(); | 667 | let mut version: String = String::new(); |
@@ -689,7 +688,7 @@ pub fn s_insert_column( | |||
689 | c_type: String, | 688 | c_type: String, |
690 | default: Option<String>, | 689 | default: Option<String>, |
691 | ) -> Result<(), Box<dyn std::error::Error>> { | 690 | ) -> Result<(), Box<dyn std::error::Error>> { |
692 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 691 | let data = format!("{}/data.db", config.data); |
693 | let connection = Connection::open(data)?; | 692 | let connection = Connection::open(data)?; |
694 | 693 | ||
695 | let mut sql = format!("ALTER TABLE {} ADD '{}' {}", table, column, c_type); | 694 | let mut sql = format!("ALTER TABLE {} ADD '{}' {}", table, column, c_type); |
@@ -705,7 +704,7 @@ pub fn s_insert_column( | |||
705 | pub fn db_setup(config: Cfg) -> MLE<()> { | 704 | pub fn db_setup(config: Cfg) -> MLE<()> { |
706 | println!("Initiating database"); | 705 | println!("Initiating database"); |
707 | 706 | ||
708 | let data = devdir(format!("{}/data.db", config.data).as_str()); | 707 | let data = format!("{}/data.db", config.data); |
709 | let connection = Connection::open(data)?; | 708 | let connection = Connection::open(data)?; |
710 | 709 | ||
711 | connection.execute_batch( | 710 | connection.execute_batch( |