aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMiquel Sabaté Solà <mssola@mssola.com>2026-01-19 21:49:45 +0100
committerMiquel Sabaté Solà <mssola@mssola.com>2026-01-19 22:01:40 +0100
commit22f19cf9f50ae4ce96b175366602b9a2816332a6 (patch)
tree0aa85a1e876425222ebb37764a81d1c0529199eb /lib
parente1e7a94d0c781fa3c8a3c82a74c671ee1e92af92 (diff)
downloadmihi-22f19cf9f50ae4ce96b175366602b9a2816332a6.tar.gz
mihi-22f19cf9f50ae4ce96b175366602b9a2816332a6.zip
words: add the poke subcommand
This subcommand allows the user to update the `updated_at` timestamp, which is quite relevant as this timestamp is used when selecting words. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/mihi/src/lib.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/mihi/src/lib.rs b/lib/mihi/src/lib.rs
index d75965d..0c44335 100644
--- a/lib/mihi/src/lib.rs
+++ b/lib/mihi/src/lib.rs
@@ -646,6 +646,24 @@ pub fn update_word(word: Word) -> Result<(), String> {
}
}
+/// Update the `updated_at` timestamp for any word matching the given
+/// `enunciated` string. In theory the given enunciated should identify only a
+/// single word, but nothing forbids the caller from updating every word which
+/// somehow matches the given string.
+pub fn update_timestamp(enunciated: &str) -> Result<(), String> {
+ let conn = get_connection()?;
+
+ match conn.execute(
+ "UPDATE words \
+ SET updated_at = datetime('now') \
+ WHERE enunciated = ?1",
+ params![enunciated],
+ ) {
+ Ok(_) => Ok(()),
+ Err(e) => Err(format!("could not update '{}': {}", enunciated, e)),
+ }
+}
+
pub fn select_enunciated(filter: Option<String>) -> Result<Vec<String>, String> {
let conn = get_connection()?;