diff --git a/src/serializers/allowed_langs.rs b/src/serializers/allowed_langs.rs index 2944049..9ca2a9d 100644 --- a/src/serializers/allowed_langs.rs +++ b/src/serializers/allowed_langs.rs @@ -1,6 +1,15 @@ use serde::Deserialize; +fn default_langs() -> Vec { + vec![ + "ru".to_string(), + "be".to_string(), + "uk".to_string() + ] +} + #[derive(Deserialize)] pub struct AllowedLangs { + #[serde(default = "default_langs")] pub allowed_langs: Vec } diff --git a/src/serializers/book.rs b/src/serializers/book.rs index 78947e2..58444a8 100644 --- a/src/serializers/book.rs +++ b/src/serializers/book.rs @@ -1,4 +1,4 @@ -use chrono::{DateTime, Utc}; +use chrono::{NaiveDate, NaiveDateTime, NaiveTime}; use serde::{Serialize, Deserialize}; use crate::prisma::book::{self}; @@ -6,12 +6,22 @@ use crate::prisma::book::{self}; use super::{source::Source, utils::{get_available_types, get_translators, get_sequences, get_authors, get_genres}, author::Author, sequence::Sequence, genre::Genre}; +fn default_langs() -> Vec { + vec![ + "ru".to_string(), + "be".to_string(), + "uk".to_string() + ] +} + + #[derive(Deserialize)] pub struct BookFilter { + #[serde(default = "default_langs")] pub allowed_langs: Vec, pub is_deleted: Option, - pub uploaded_gte: Option>, - pub uploaded_lte: Option>, + pub uploaded_gte: Option, + pub uploaded_lte: Option, pub id_gte: Option, pub id_lte: Option, } @@ -39,13 +49,13 @@ impl BookFilter { if let Some(uploaded_gte) = self.uploaded_gte { result.push( - book::uploaded::gte(uploaded_gte.into()) + book::uploaded::gte(NaiveDateTime::new(uploaded_gte, NaiveTime::default()).and_utc().into()) ); }; if let Some(uploaded_lte) = self.uploaded_lte { result.push( - book::uploaded::lte(uploaded_lte.into()) + book::uploaded::lte(NaiveDateTime::new(uploaded_lte, NaiveTime::default()).and_utc().into()) ); };