This commit is contained in:
JMARyA 2024-07-21 22:01:17 +02:00
parent e3c6740b1a
commit 6be8a879f9
Signed by: jmarya
GPG key ID: 901B2ADDF27C2263
3 changed files with 17 additions and 8 deletions

View file

@ -20,7 +20,7 @@ macro_rules! get_mongo {
#[macro_export]
macro_rules! col {
($db:expr, $col:expr) => {
$db.database("owl")
$db.database(&std::env::var("DB").unwrap())
.collection::<mongodb::bson::Document>($col)
};
}

View file

@ -87,17 +87,20 @@ pub trait Model:
#[must_use]
fn get_partial(
id: &str,
part: &serde_json::Value,
mut part: serde_json::Value,
) -> impl std::future::Future<Output = Option<Self::Partial>> {
async move {
let db = get_mongo!();
let collection = col!(db, Self::collection_name());
part.as_object_mut()?.insert("_id".into(), 1.into());
let doc = collection
.find_one(
id_of!(id),
Some(
FindOneOptions::builder()
.projection(Some(mongodb::bson::to_document(part).unwrap()))
.projection(Some(mongodb::bson::to_document(&part).unwrap()))
.build(),
),
)
@ -111,17 +114,20 @@ pub trait Model:
#[must_use]
fn find_one_partial(
filter: mongodb::bson::Document,
part: &serde_json::Value,
mut part: serde_json::Value,
) -> impl std::future::Future<Output = Option<Self::Partial>> {
async move {
let db = get_mongo!();
let collection = col!(db, Self::collection_name());
part.as_object_mut()?.insert("_id".into(), 1.into());
let doc = collection
.find_one(
filter,
Some(
FindOneOptions::builder()
.projection(Some(mongodb::bson::to_document(part).unwrap()))
.projection(Some(mongodb::bson::to_document(&part).unwrap()))
.build(),
),
)
@ -164,17 +170,20 @@ pub trait Model:
#[must_use]
fn find_partial(
filter: mongodb::bson::Document,
part: &serde_json::Value,
mut part: serde_json::Value,
) -> impl std::future::Future<Output = Option<Vec<Self>>> {
async move {
let db = get_mongo!();
let collection = col!(db, Self::collection_name());
part.as_object_mut()?.insert("_id".into(), 1.into());
let mut results = collection
.find(
filter,
Some(
FindOptions::builder()
.projection(Some(mongodb::bson::to_document(part).unwrap()))
.projection(Some(mongodb::bson::to_document(&part).unwrap()))
.build(),
),
)