Missing store file
This commit is contained in:
parent
9b48116dec
commit
c6f042b94f
|
@ -0,0 +1,46 @@
|
||||||
|
// std
|
||||||
|
use std::fmt::Debug;
|
||||||
|
use std::hash::Hash;
|
||||||
|
|
||||||
|
// crates
|
||||||
|
use axum::extract::{Query, State};
|
||||||
|
use axum::response::Response;
|
||||||
|
use serde::de::DeserializeOwned;
|
||||||
|
use serde::{Deserialize, Serialize};
|
||||||
|
// internal
|
||||||
|
use nomos_api::http::storage;
|
||||||
|
use nomos_core::block::BlockId;
|
||||||
|
use nomos_core::tx::Transaction;
|
||||||
|
use nomos_node::make_request_and_return_response;
|
||||||
|
use nomos_storage::backends::StorageSerde;
|
||||||
|
use overwatch_rs::overwatch::handle::OverwatchHandle;
|
||||||
|
|
||||||
|
#[derive(Deserialize)]
|
||||||
|
pub(crate) struct QueryParams {
|
||||||
|
blocks: Vec<BlockId>,
|
||||||
|
}
|
||||||
|
pub(crate) async fn store_blocks<Tx, S>(
|
||||||
|
State(store): State<OverwatchHandle>,
|
||||||
|
Query(query): Query<QueryParams>,
|
||||||
|
) -> Response
|
||||||
|
where
|
||||||
|
Tx: Transaction
|
||||||
|
+ Clone
|
||||||
|
+ Debug
|
||||||
|
+ Eq
|
||||||
|
+ Hash
|
||||||
|
+ Serialize
|
||||||
|
+ DeserializeOwned
|
||||||
|
+ Send
|
||||||
|
+ Sync
|
||||||
|
+ 'static,
|
||||||
|
<Tx as Transaction>::Hash: std::cmp::Ord + Debug + Send + Sync + 'static,
|
||||||
|
S: StorageSerde + Send + Sync + 'static,
|
||||||
|
{
|
||||||
|
let QueryParams { blocks } = query;
|
||||||
|
let results: Vec<_> = blocks
|
||||||
|
.into_iter()
|
||||||
|
.map(|id| storage::block_req::<S, Tx>(&store, id))
|
||||||
|
.collect();
|
||||||
|
make_request_and_return_response!(futures::future::try_join_all(results))
|
||||||
|
}
|
Loading…
Reference in New Issue