nullnet-liblogging 0.3.0

Logging library for NullNet
Documentation
use crate::datastore::config::DatastoreConfig;
use crate::datastore::generic_log::GenericLog;
use crate::datastore::grpc_interface::GrpcInterface;
use std::sync::Arc;
use tokio::sync::RwLock;

pub(crate) struct ServerWrapper {
    inner: GrpcInterface,
    token: Arc<RwLock<String>>,
}

impl ServerWrapper {
    pub(crate) async fn new(datastore_config: DatastoreConfig) -> Self {
        let inner = datastore_config.connect().await;

        Self {
            inner,
            token: datastore_config.token,
        }
    }

    pub(crate) async fn logs_insert(&mut self, logs: Vec<GenericLog>) -> Result<(), String> {
        let token = self.token.read().await.clone();

        self.inner.handle_logs(token, logs).await
    }
}