Recombined bot and service, fixed dockerfile

This commit is contained in:
Benjamin Sherriff
2023-10-05 15:38:59 -04:00
parent 5915a29dd5
commit 5dcc2a6afc
27 changed files with 64 additions and 153 deletions

View File

@@ -27,6 +27,7 @@ pub struct QuerySpell {
#[derive(Debug)]
pub struct QueryFilters {
pub by_name: Option<String>,
pub like_name: Option<String>,
pub by_schools: Option<Vec<String>>,
pub by_levels: Option<Vec<i32>>,
pub by_ritual: Option<bool>,
@@ -43,6 +44,7 @@ impl Default for QueryFilters {
fn default() -> Self {
Self {
by_name: None,
like_name: None,
by_schools: None,
by_levels: None,
by_ritual: None,
@@ -65,6 +67,9 @@ impl QuerySpell {
let offset = (page - 1) * limit;
query = query.offset(offset as i64);
if let Some(name) = &filters.by_name {
query = query.filter(spells::name.eq(name));
}
if let Some(name) = &filters.like_name {
query = query.filter(spells::name.ilike(format!("%{}%", name)));
}
if let Some(schools) = &filters.by_schools {

View File

@@ -10,6 +10,7 @@ use super::{Spell, InsertSpell};
#[derive(Serialize, Deserialize)]
struct GetAllParams {
name: Option<String>,
like_name: Option<String>,
schools: Option<String>,
levels: Option<String>,
ritual: Option<bool>,
@@ -35,6 +36,7 @@ async fn get_all(req: HttpRequest) -> HttpResponse {
};
let mut filters = QueryFilters::default();
filters.by_name = params.name.clone();
filters.like_name = params.like_name.clone();
filters.by_schools = match &params.schools {
Some(schools) => Some(schools.split(",").map(|s| s.to_string()).collect()),
None => None