use candid::{CandidType, Deserialize};
use ex3_canister_types::pager::GetPageOutput;
use ex3_canister_types::result::ServiceResult;
use ex3_common_error_info::ErrorInfo;
use ex3_node_types::transaction::{CandidVerifiedDeposit, VerifiedDeposit};
use serde::Serialize;
pub use report::*;
pub mod error;
mod report;
#[derive(Serialize, Deserialize, CandidType, Debug, Clone, PartialEq)]
pub enum DepositConsumeStatus {
Consumed,
NotFound,
}
#[derive(Deserialize, CandidType)]
pub enum GetVerifiedDepositsByPageResponse {
Ok(GetPageOutput<CandidVerifiedDeposit>),
Err(ErrorInfo),
}
impl From<ServiceResult<GetPageOutput<VerifiedDeposit>>> for GetVerifiedDepositsByPageResponse {
fn from(res: ServiceResult<GetPageOutput<VerifiedDeposit>>) -> Self {
match res {
Ok(items) => {
let items: Vec<CandidVerifiedDeposit> =
items.items.into_iter().map(|x| x.into()).collect();
GetVerifiedDepositsByPageResponse::Ok(GetPageOutput { items })
}
Err(err) => GetVerifiedDepositsByPageResponse::Err(err),
}
}
}
#[derive(Deserialize, CandidType)]
pub enum GeConsumedDepositsByPageResponse {
Ok(GetPageOutput<CandidVerifiedDeposit>),
Err(ErrorInfo),
}
impl From<ServiceResult<GetPageOutput<VerifiedDeposit>>> for GeConsumedDepositsByPageResponse {
fn from(res: ServiceResult<GetPageOutput<VerifiedDeposit>>) -> Self {
match res {
Ok(page_data) => GeConsumedDepositsByPageResponse::Ok(GetPageOutput {
items: page_data.items.into_iter().map(|x| x.into()).collect(),
}),
Err(err) => GeConsumedDepositsByPageResponse::Err(err),
}
}
}