fbc_starter/utils/
http_util.rs1use crate::constants::{HEADER_KEY_TENANT_ID, HEADER_KEY_UID};
2use crate::error::{AppError, AppResult};
3use axum::http::HeaderMap;
4
5pub fn get_uid_from_headers(headers: &HeaderMap) -> AppResult<i64> {
7 let uid_str = headers
8 .get(HEADER_KEY_UID)
9 .and_then(|v| v.to_str().ok())
10 .ok_or(AppError::Unauthorized)?;
11
12 uid_str
13 .parse::<i64>()
14 .map_err(|_| AppError::BadRequest("无效的用户ID".to_string()))
15}
16
17pub fn get_tanent_id_from_headers(headers: &HeaderMap) -> AppResult<i64> {
19 let tenant_id_str = headers
20 .get(HEADER_KEY_TENANT_ID)
21 .and_then(|v| v.to_str().ok())
22 .ok_or(AppError::Unauthorized)?;
23
24 tenant_id_str
25 .parse::<i64>()
26 .map_err(|_| AppError::BadRequest("无效的租户ID".to_string()))
27}