diff --git a/src/db/mod.rs b/src/db/mod.rs index 101e504..f4fa1b9 100644 --- a/src/db/mod.rs +++ b/src/db/mod.rs @@ -37,6 +37,7 @@ pub struct User { pub last_name: Option, pub username: Option, pub language_code: Option, + pub metas: Vec, } #[macro_export] @@ -76,6 +77,23 @@ impl User { Ok(()) }); + + pub async fn insert_meta(&self, db: &mut D, meta: &str) -> DbResult<()> { + let db_collection = db.get_database().await.collection::("users"); + + db_collection + .update_one( + doc! { "_id": self._id }, + doc! { + "$push": { + "metas": meta, + } + }, + ) + .await?; + + Ok(()) + } } #[derive(Serialize, Deserialize)] @@ -215,7 +233,7 @@ pub trait CallDB { doc! { "id": userid }, doc! { "$set": doc! { "first_name": firstname}, - "$setOnInsert": doc! { "is_admin": false }, + "$setOnInsert": doc! { "is_admin": false, "metas": [] }, }, ) .upsert(true)