cat_gateway/service/api/cardano/cip36/
mod.rs1use poem_openapi::{param::Query, OpenApi};
4
5use self::cardano::slot_no::SlotNo;
6use crate::service::common::{
7 self,
8 auth::api_key::InternalApiKeyAuthorization,
9 tags::ApiTags,
10 types::cardano::{self},
11};
12
13pub(crate) mod endpoint;
14
15pub(crate) mod filter;
16
17pub(crate) mod response;
18
19pub(crate) struct Api;
21
22#[OpenApi(tag = "ApiTags::Cardano")]
23impl Api {
24 #[oai(
40 path = "/v1/cardano/registration/cip36",
41 method = "get",
42 operation_id = "cardanoRegistrationCip36",
43 hidden = true
44 )]
45 async fn get_registration(
46 &self, lookup: Query<Option<cardano::query::stake_or_voter::StakeOrVoter>>,
47 asat: Query<Option<cardano::query::AsAt>>,
48 page: Query<Option<common::types::generic::query::pagination::Page>>,
49 limit: Query<Option<common::types::generic::query::pagination::Limit>>,
50 _auth: InternalApiKeyAuthorization,
51 ) -> response::AllRegistration {
52 endpoint::cip36_registrations(
53 lookup.0,
54 SlotNo::into_option(asat.0),
55 page.0.unwrap_or_default(),
56 limit.0.unwrap_or_default(),
57 )
58 .await
59 }
60}