Shared state
This commit is contained in:
parent
53fff3efaa
commit
15fa09430b
25 changed files with 174 additions and 215 deletions
|
|
@ -1,6 +1,6 @@
|
|||
use std::sync::Arc;
|
||||
|
||||
use axum::extract::Query;
|
||||
use axum::extract::{Query, State};
|
||||
use axum::http::StatusCode;
|
||||
use axum::response::Json;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
|
@ -9,7 +9,7 @@ use tracing::info;
|
|||
use crate::consts::MAX_POIS_PER_REQUEST;
|
||||
use crate::data::POICategoryGroup;
|
||||
use crate::parsing::require_bounds;
|
||||
use crate::state::AppState;
|
||||
use crate::state::SharedState;
|
||||
|
||||
#[derive(Serialize)]
|
||||
#[allow(clippy::upper_case_acronyms)]
|
||||
|
|
@ -36,9 +36,10 @@ pub struct POIParams {
|
|||
}
|
||||
|
||||
pub async fn get_pois(
|
||||
state: Arc<AppState>,
|
||||
State(shared): State<Arc<SharedState>>,
|
||||
Query(params): Query<POIParams>,
|
||||
) -> Result<Json<POIsResponse>, (StatusCode, String)> {
|
||||
let state = shared.load_state();
|
||||
let (south, west, north, east) = require_bounds(params.bounds)?;
|
||||
|
||||
let category_filter: Option<rustc_hash::FxHashSet<u16>> = params
|
||||
|
|
@ -127,7 +128,8 @@ pub struct POICategoriesResponse {
|
|||
groups: Vec<POICategoryGroup>,
|
||||
}
|
||||
|
||||
pub async fn get_poi_categories(state: Arc<AppState>) -> Json<POICategoriesResponse> {
|
||||
pub async fn get_poi_categories(State(shared): State<Arc<SharedState>>) -> Json<POICategoriesResponse> {
|
||||
let state = shared.load_state();
|
||||
let groups: Vec<POICategoryGroup> = state.poi_category_groups.to_vec();
|
||||
|
||||
let total: usize = groups.iter().map(|group| group.categories.len()).sum();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue