qualia_client_core/api/
protocol.rs1#![allow(non_snake_case)]
4
5use std::path::Path;
6
7pub fn seed_bundled_qapps() -> Result<Vec<String>, String> {
8 crate::bundled_qapps::seed_bundled_qapps()
9}
10
11pub fn seed_bundled_ontologies() -> Result<Vec<String>, String> {
12 crate::bundled_ontologies::seed_bundled_ontologies()
13}
14
15pub fn installed_qapp_version(qapp_name: &str) -> Result<Option<String>, String> {
16 let state = crate::state::APP_STATE
17 .get()
18 .ok_or("APP_STATE not initialized")?;
19 let storage = state
20 .config
21 .lock()
22 .map_err(|e| e.to_string())?
23 .storage_path
24 .clone();
25 Ok(crate::bundled_qapps::installed_qapp_version(
26 Path::new(&storage),
27 qapp_name,
28 ))
29}
30
31pub fn check_qapp_update(qapp_name: String) -> Result<String, String> {
32 let state = crate::state::APP_STATE
33 .get()
34 .ok_or("APP_STATE not initialized")?;
35 let storage = state
36 .config
37 .lock()
38 .map_err(|e| e.to_string())?
39 .storage_path
40 .clone();
41 let status = crate::bundled_qapps::check_bundled_qapp_update(&qapp_name, Path::new(&storage));
42 serde_json::to_string(&status).map_err(|e| e.to_string())
43}
44
45pub fn check_qapp_update_from_path(
46 qapp_name: String,
47 source_path: String,
48) -> Result<String, String> {
49 let state = crate::state::APP_STATE
50 .get()
51 .ok_or("APP_STATE not initialized")?;
52 let storage = state
53 .config
54 .lock()
55 .map_err(|e| e.to_string())?
56 .storage_path
57 .clone();
58 let status = crate::bundled_qapps::check_qapp_update_from_source(
59 &qapp_name,
60 Path::new(&storage),
61 Path::new(&source_path),
62 )?;
63 serde_json::to_string(&status).map_err(|e| e.to_string())
64}
65
66pub fn list_qapp_update_offers() -> Result<String, String> {
67 let state = crate::state::APP_STATE
68 .get()
69 .ok_or("APP_STATE not initialized")?;
70 let storage = state
71 .config
72 .lock()
73 .map_err(|e| e.to_string())?
74 .storage_path
75 .clone();
76 let offers = crate::bundled_qapps::list_bundled_qapp_updates(Path::new(&storage));
77 serde_json::to_string(&offers).map_err(|e| e.to_string())
78}
79
80pub fn apply_qapp_update(qapp_name: String) -> Result<String, String> {
81 let state = crate::state::APP_STATE
82 .get()
83 .ok_or("APP_STATE not initialized")?;
84 let storage = state
85 .config
86 .lock()
87 .map_err(|e| e.to_string())?
88 .storage_path
89 .clone();
90 crate::bundled_qapps::apply_bundled_qapp_update(Path::new(&storage), &qapp_name)
91}
92
93pub fn apply_qapp_update_from_path(
94 qapp_name: String,
95 source_path: String,
96) -> Result<String, String> {
97 let state = crate::state::APP_STATE
98 .get()
99 .ok_or("APP_STATE not initialized")?;
100 let storage = state
101 .config
102 .lock()
103 .map_err(|e| e.to_string())?
104 .storage_path
105 .clone();
106 crate::bundled_qapps::upgrade_qapp_from_source(
107 Path::new(&storage),
108 &qapp_name,
109 Path::new(&source_path),
110 )
111}
112
113pub fn start_qualia_protocol() -> Result<u16, String> {
114 crate::qapps_protocol::start_qualia_protocol()
115}
116
117pub fn qualia_protocol_port() -> u16 {
118 crate::qapps_protocol::qualia_protocol_port()
119}
120
121pub async fn download_and_install_update(url: String) -> Result<(), String> {
122 crate::update_installer::download_and_install_update(url).await
123}
124
125pub fn register_qualia_uri_handler(exe_path: String) -> Result<(), String> {
126 crate::qapps_protocol::register_qualia_uri_handler(&exe_path)
127}