Compare commits

...

2 Commits

Author SHA1 Message Date
Pierre Hubert 757692e054 Expose server 2023-05-23 14:46:45 +02:00
Pierre Hubert 7f8a37ce01 Update dependencies 2023-05-23 14:41:19 +02:00
4 changed files with 325 additions and 286 deletions

584
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -13,9 +13,9 @@ categories = ["text-processing"]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
serde_json = "1.0.89"
reqwest = { version = "0.11.13", features = ["json"] }
serde = { version = "1.0.151", features = ["derive"] }
serde_json = "1.0.96"
reqwest = { version = "0.11.18", features = ["json"] }
serde = { version = "1.0.163", features = ["derive"] }
log = "0.4.17"
zip = { version = "0.6.3", optional = true }
mktemp = { version = "0.5.0", optional = true }
@ -27,4 +27,4 @@ embedded-server = ["zip", "mktemp", "rand", "port_scanner"]
[dev-dependencies]
env_logger = "0.10.0"
tokio = { version = "1.23.0", features = ["full"] }
tokio = { version = "1.28.1", features = ["full"] }

View File

@ -10,7 +10,7 @@
//! temporary web server that will act as Grammalecte backend, instead
//! of targetting an existing instance:
//!
//! ```rust,no_run
//! ```rust,ignore
//! use grammalecte_client::GrammalecteClient;
//!
//! let msg = "Les ange sont inssuportables!";
@ -24,7 +24,9 @@
//!
//! ## Suggestion
//! You can also ask Grammalecte to give you valid alternatives words:
//! ```rust,no_run
//! ```rust,ignore
//! use grammalecte_client::GrammalecteClient;
//!
//! let res = GrammalecteClient::start_server()
//! .unwrap()
//! .suggest("bonjou")
@ -40,7 +42,7 @@ use std::collections::HashMap;
use std::error::Error;
#[cfg(feature = "embedded-server")]
mod server;
pub mod server;
/// Spell check options
#[derive(Hash, Debug, Eq, PartialEq)]
@ -356,7 +358,7 @@ impl GrammalecteClient {
log::debug!("Will use URL {} for spell check", url);
let options = options
.into_iter()
.iter()
.map(|t| (t.0.id(), t.1))
.collect::<HashMap<_, _>>();
let options = serde_json::to_string(&options)?;

View File

@ -12,8 +12,13 @@ pub struct EmbeddedServer {
}
impl EmbeddedServer {
/// Start embedded Grammalecte server
/// Start embedded Grammalecte server on a random free port
pub fn start() -> Result<Self, Box<dyn Error>> {
Self::start_listen_on_port(get_free_port()?)
}
/// Start embedded Grammalecte server on a given port
pub fn start_listen_on_port(port: u16) -> Result<Self, Box<dyn Error>> {
log::info!("Will start server");
// First, unpack server
let dest = mktemp::Temp::new_dir()?;
@ -34,8 +39,6 @@ impl EmbeddedServer {
}
}
// Get a free port
let port = get_free_port()?;
log::info!("Will start to listen on port {}", port);
let server_file = dest