fedimovies/fedimovies-models/src/tags/queries.rs

26 lines
637 B
Rust
Raw Normal View History

use crate::database::{DatabaseClient, DatabaseError};
2022-09-19 00:45:56 +00:00
pub async fn search_tags(
db_client: &impl DatabaseClient,
2022-09-19 00:45:56 +00:00
search_query: &str,
2022-09-29 21:36:55 +00:00
limit: u16,
2022-09-19 00:45:56 +00:00
) -> Result<Vec<String>, DatabaseError> {
let db_search_query = format!("%{}%", search_query);
2023-04-24 15:35:32 +00:00
let rows = db_client
.query(
"
2022-09-19 00:45:56 +00:00
SELECT tag_name
FROM tag
WHERE tag_name ILIKE $1
LIMIT $2
",
2023-04-24 15:35:32 +00:00
&[&db_search_query, &i64::from(limit)],
)
.await?;
let tags: Vec<String> = rows
.iter()
2022-09-19 00:45:56 +00:00
.map(|row| row.try_get("tag_name"))
.collect::<Result<_, _>>()?;
Ok(tags)
}