update
This commit is contained in:
parent
acf5ebae78
commit
0e174dc06e
6 changed files with 53 additions and 16 deletions
|
@ -25,6 +25,8 @@ mod variant;
|
|||
|
||||
#[launch]
|
||||
async fn rocket() -> _ {
|
||||
env_logger::init();
|
||||
|
||||
let cors = rocket_cors::CorsOptions {
|
||||
allowed_origins: rocket_cors::AllowedOrigins::all(),
|
||||
allowed_methods: vec![Method::Get, Method::Post, Method::Options]
|
||||
|
@ -53,7 +55,8 @@ async fn rocket() -> _ {
|
|||
routes::item::demand_route,
|
||||
routes::item::transaction_route,
|
||||
routes::item::inventory_route,
|
||||
routes::item::variant_stat_route
|
||||
routes::item::variant_stat_route,
|
||||
routes::item::unique_field_route
|
||||
],
|
||||
)
|
||||
.manage(itemdb)
|
||||
|
|
|
@ -55,3 +55,24 @@ pub async fn transaction_route(transaction: &str) -> FallibleApiResponse {
|
|||
.ok_or_else(|| api_error("No transaction with this UUID"))?;
|
||||
Ok(t.api_json())
|
||||
}
|
||||
|
||||
/// Returns unique values for a field
|
||||
#[get("/item/<item_id>/<variant_id>/unique?<field>")]
|
||||
pub async fn unique_field_route(
|
||||
item_id: &str,
|
||||
variant_id: &str,
|
||||
field: &str,
|
||||
itemdb: &State<ItemDB>,
|
||||
) -> FallibleApiResponse {
|
||||
let variant = itemdb
|
||||
.get_item(item_id)
|
||||
.ok_or_else(item_does_not_exist_error)?
|
||||
.variant(variant_id)
|
||||
.ok_or_else(variant_does_not_exist_error)?;
|
||||
|
||||
match field {
|
||||
"origin" => Ok(json!(variant.get_unique_origins().await)),
|
||||
"destination" => Ok(json!(variant.get_unique_destinations().await)),
|
||||
_ => Err(api_error("Unknown field")),
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue