mirror of
https://github.com/edera-dev/krata.git
synced 2025-08-03 05:10:55 +00:00
25 lines
534 B
Rust
25 lines
534 B
Rust
use std::str::FromStr;
|
|
|
|
use anyhow::Result;
|
|
use uuid::Uuid;
|
|
|
|
use krata::v1::control::{GetZoneReply, GetZoneRequest};
|
|
|
|
use crate::db::zone::ZoneStore;
|
|
|
|
pub struct GetZoneRpc {
|
|
zones: ZoneStore,
|
|
}
|
|
|
|
impl GetZoneRpc {
|
|
pub fn new(zones: ZoneStore) -> Self {
|
|
Self { zones }
|
|
}
|
|
|
|
pub async fn process(self, request: GetZoneRequest) -> Result<GetZoneReply> {
|
|
let mut zones = self.zones.list().await?;
|
|
let zone = zones.remove(&Uuid::from_str(&request.zone_id)?);
|
|
Ok(GetZoneReply { zone })
|
|
}
|
|
}
|