1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
use crate::Backend;
use axum::{extract::State, routing::get, Json, Router};
use openvet_common::rust::*;
use std::collections::BTreeSet;

async fn crates_list(State(backend): State<Backend>) -> Json<BTreeSet<CrateName>> {
    let list = backend.crates_list().await.unwrap();
    Json(list)
}

async fn crate_info(_backend: State<Backend>) {
    todo!()
}

impl Backend {
    pub fn router_api_v1(&self) -> Router {
        Router::new()
            .route("/crates", get(crates_list))
            .route("/crate/:name", get(crate_info))
            .with_state(self.clone())
    }
}