use diesel::prelude::*;
use crate::registry::{
diesel::{models::NodesModel, schema::splinter_nodes},
RegistryError,
};
use super::RegistryOperations;
pub(in crate::registry::diesel) trait RegistryHasNodeOperation {
fn has_node(&self, identity: &str) -> Result<bool, RegistryError>;
}
impl<'a, C> RegistryHasNodeOperation for RegistryOperations<'a, C>
where
C: diesel::Connection,
String: diesel::deserialize::FromSql<diesel::sql_types::Text, C::Backend>,
{
fn has_node(&self, identity: &str) -> Result<bool, RegistryError> {
Ok(splinter_nodes::table
.find(identity)
.first::<NodesModel>(self.conn)
.optional()
.map(|opt| opt.is_some())?)
}
}