use crate::{
cdk::types::Principal,
dto::pool::{CanisterPoolEntry, CanisterPoolResponse},
ops::storage::pool::{
PoolOps,
mapper::{CanisterPoolEntryMapper, CanisterPoolResponseMapper},
},
};
pub struct PoolQuery;
impl PoolQuery {
#[must_use]
pub fn pool_entry(pid: Principal) -> Option<CanisterPoolEntry> {
let data = PoolOps::data();
data.entries
.into_iter()
.find(|entry| entry.pid == pid)
.map(|entry| CanisterPoolEntryMapper::record_to_view(entry.pid, entry.record))
}
#[must_use]
pub fn pool_list() -> CanisterPoolResponse {
let data = PoolOps::data();
CanisterPoolResponseMapper::data_to_response(data)
}
}