amagi 0.1.3

Rust SDK, CLI, and Web API service skeleton for multi-platform social web adapters.
Documentation
use axum::{
    Json,
    extract::{Path, State},
    http::HeaderMap,
};

use super::super::support::{FetchResult, bilibili_fetcher, fetch_error_response};
use crate::platforms::bilibili::{BilibiliLiveRoomInfo, BilibiliLiveRoomInit};
use crate::server::state::AppState;

/// Fetch one Bilibili live room detail payload through the web API.
pub async fn bilibili_live_room_info(
    Path(room_id): Path<u64>,
    headers: HeaderMap,
    State(state): State<AppState>,
) -> FetchResult<BilibiliLiveRoomInfo> {
    bilibili_fetcher(&state, &headers)
        .fetch_live_room_info(room_id)
        .await
        .map(Json)
        .map_err(fetch_error_response)
}

/// Fetch one Bilibili live room init payload through the web API.
pub async fn bilibili_live_room_init(
    Path(room_id): Path<u64>,
    headers: HeaderMap,
    State(state): State<AppState>,
) -> FetchResult<BilibiliLiveRoomInit> {
    bilibili_fetcher(&state, &headers)
        .fetch_live_room_init(room_id)
        .await
        .map(Json)
        .map_err(fetch_error_response)
}