use crate::error::Error;
use mongodb::bson::{oid::ObjectId, Bson};
pub fn convert_bson_to_oid(bson: Bson) -> Result<ObjectId, Error> {
match bson.as_object_id() {
Some(oid) => Ok(oid),
None => Err(Error::internal(&format!(
"Could not convert Bson: {:?} to ObjectId",
bson
))),
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_convert_bson_to_oid() {
let oid_bson = Bson::ObjectId(ObjectId::new());
convert_bson_to_oid(oid_bson).unwrap();
let non_oid_bson = Bson::Int64(1337);
assert!(convert_bson_to_oid(non_oid_bson).is_err());
}
}