Small fixes & fmt
This commit is contained in:
parent
6b12e21d50
commit
f32a552f46
23 changed files with 347 additions and 99 deletions
|
|
@ -12,7 +12,7 @@ use tracing::{info, warn};
|
|||
use crate::auth::OptionalUser;
|
||||
use crate::consts::{AI_FILTERS_MAX_TOKENS, AI_FILTERS_TEMPERATURE, AI_FILTERS_WEEKLY_TOKEN_LIMIT};
|
||||
use crate::data::slugify;
|
||||
use crate::pocketbase::get_superuser_token;
|
||||
use crate::pocketbase::{get_superuser_token, log_ai_query};
|
||||
use crate::routes::{FeatureInfo, FeaturesResponse};
|
||||
use crate::state::{AppState, SharedState};
|
||||
use crate::utils::gemini_chat;
|
||||
|
|
@ -783,6 +783,28 @@ pub async fn post_ai_filters(
|
|||
counter!("ai_tokens_total").increment(total_tokens_accumulated);
|
||||
counter!("ai_requests_total", "status" => "success").increment(1);
|
||||
|
||||
// Log the query to PocketBase (fire-and-forget)
|
||||
let filters_json = serde_json::to_string(&filters).unwrap_or_default();
|
||||
let log_state = state.clone();
|
||||
let log_user_id = user.id.clone();
|
||||
let log_query = req.query.clone();
|
||||
let log_listing_type = listing_type.to_string();
|
||||
let log_notes = notes.clone();
|
||||
let log_rounds = (round + 1) as u64;
|
||||
tokio::spawn(async move {
|
||||
log_ai_query(
|
||||
&log_state,
|
||||
&log_user_id,
|
||||
&log_query,
|
||||
&log_listing_type,
|
||||
&filters_json,
|
||||
&log_notes,
|
||||
total_tokens_accumulated,
|
||||
log_rounds,
|
||||
)
|
||||
.await;
|
||||
});
|
||||
|
||||
return Ok(Json(AiFiltersResponse {
|
||||
filters,
|
||||
travel_time_filters,
|
||||
|
|
|
|||
|
|
@ -22,7 +22,10 @@ static PROXY_CLIENT: LazyLock<reqwest::Client> = LazyLock::new(|| {
|
|||
.expect("Failed to build proxy HTTP client")
|
||||
});
|
||||
|
||||
pub async fn proxy_to_pocketbase(State(shared): State<Arc<SharedState>>, req: Request) -> impl IntoResponse {
|
||||
pub async fn proxy_to_pocketbase(
|
||||
State(shared): State<Arc<SharedState>>,
|
||||
req: Request,
|
||||
) -> impl IntoResponse {
|
||||
let state = shared.load_state();
|
||||
let pb_url = state.pocketbase_url.trim_end_matches('/');
|
||||
|
||||
|
|
|
|||
|
|
@ -128,7 +128,9 @@ pub struct POICategoriesResponse {
|
|||
groups: Vec<POICategoryGroup>,
|
||||
}
|
||||
|
||||
pub async fn get_poi_categories(State(shared): State<Arc<SharedState>>) -> 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();
|
||||
|
||||
|
|
|
|||
|
|
@ -38,7 +38,10 @@ struct PbRecord {
|
|||
params: String,
|
||||
}
|
||||
|
||||
pub async fn post_shorten(State(shared): State<Arc<SharedState>>, Json(req): Json<ShortenRequest>) -> Response {
|
||||
pub async fn post_shorten(
|
||||
State(shared): State<Arc<SharedState>>,
|
||||
Json(req): Json<ShortenRequest>,
|
||||
) -> Response {
|
||||
let state = shared.load_state();
|
||||
let pb_url = state.pocketbase_url.trim_end_matches('/');
|
||||
|
||||
|
|
@ -86,7 +89,10 @@ pub async fn post_shorten(State(shared): State<Arc<SharedState>>, Json(req): Jso
|
|||
}
|
||||
}
|
||||
|
||||
pub async fn get_short_url(State(shared): State<Arc<SharedState>>, Path(code): Path<String>) -> Response {
|
||||
pub async fn get_short_url(
|
||||
State(shared): State<Arc<SharedState>>,
|
||||
Path(code): Path<String>,
|
||||
) -> Response {
|
||||
let state = shared.load_state();
|
||||
|
||||
if code.is_empty() || code.len() > 20 || !code.bytes().all(|b| b.is_ascii_alphanumeric()) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue