refactor!: add ws endpoint, storage trait
This commit is contained in:
38
registry/storage/mod.rs
Normal file
38
registry/storage/mod.rs
Normal file
@@ -0,0 +1,38 @@
|
||||
use crate::{
|
||||
error::{Error, Result},
|
||||
utils::Peer,
|
||||
};
|
||||
|
||||
mod valkey;
|
||||
|
||||
pub use valkey::RegisterRequest;
|
||||
|
||||
pub enum Storage {
|
||||
Valkey(valkey::ValkeyStorage),
|
||||
}
|
||||
|
||||
pub trait StorageImpl {
|
||||
async fn register_device(&self, request: &RegisterRequest) -> Result<()>;
|
||||
async fn get_peers(&self) -> Result<Vec<Peer>>;
|
||||
}
|
||||
|
||||
impl StorageImpl for Storage {
|
||||
async fn register_device(&self, request: &RegisterRequest) -> Result<()> {
|
||||
match self {
|
||||
Self::Valkey(storage) => storage.register_device(request).await,
|
||||
}
|
||||
}
|
||||
|
||||
async fn get_peers(&self) -> Result<Vec<Peer>> {
|
||||
match self {
|
||||
Self::Valkey(storage) => storage.get_peers().await,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_storage_from_env() -> Result<Storage> {
|
||||
Ok(Storage::Valkey(valkey::ValkeyStorage {
|
||||
valkey_client: redis::Client::open("redis://127.0.0.1:6379/")
|
||||
.map_err(|e| Error::valkey_connect(e, "127.0.0.1:6379/".to_string()))?,
|
||||
}))
|
||||
}
|
||||
Reference in New Issue
Block a user