|
|
|
|
@ -1,6 +1,6 @@
|
|
|
|
|
from datetime import datetime
|
|
|
|
|
from re import IGNORECASE, sub as substitute
|
|
|
|
|
from typing import List
|
|
|
|
|
from typing import List, Optional
|
|
|
|
|
from urllib.parse import unquote_plus
|
|
|
|
|
|
|
|
|
|
from fastapi import Depends, FastAPI, File, HTTPException, UploadFile
|
|
|
|
|
@ -106,9 +106,25 @@ def read_item(item_id: int, db: Session = Depends(get_db)):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.get("/items/", response_model=List[schemas.Item])
|
|
|
|
|
def read_items(skip: int = 0, limit: int = 20, db: Session = Depends(get_db)):
|
|
|
|
|
"""список доступных в системе Описаний наборов данных"""
|
|
|
|
|
return crud.get_items(db=db, skip=skip, limit=limit)
|
|
|
|
|
def read_items(
|
|
|
|
|
categ: Optional[str] = None,
|
|
|
|
|
skip: int = 0,
|
|
|
|
|
limit: int = 20,
|
|
|
|
|
db: Session = Depends(get_db),
|
|
|
|
|
):
|
|
|
|
|
"""список доступных в системе Описаний наборов данных
|
|
|
|
|
опционально, с указанием конкретной категории
|
|
|
|
|
"""
|
|
|
|
|
if categ is None or str(categ).strip().lower() in ("any", "all"):
|
|
|
|
|
resp = crud.get_items(db=db, skip=skip, limit=limit)
|
|
|
|
|
else:
|
|
|
|
|
# heuristically adjust query capitalization to fit the spreadsheet form (e.g "Geology")
|
|
|
|
|
category = str(categ).strip().capitalize()
|
|
|
|
|
resp = crud.get_items_by_category(
|
|
|
|
|
category=category, db=db, skip=skip, limit=limit
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
return resp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.get(
|
|
|
|
|
|