feat: add governed hydrology and historical imagery
This commit is contained in:
@@ -6,10 +6,10 @@ from typing import Any
|
||||
from uuid import UUID
|
||||
from uuid import UUID as _UUID
|
||||
|
||||
from fastapi import APIRouter, Depends, File, Form, HTTPException, Query
|
||||
from fastapi import APIRouter, Depends, File, Form, HTTPException, Query, Response
|
||||
from fastapi import UploadFile
|
||||
from sqlalchemy.orm import Session
|
||||
from app.models import Area
|
||||
from app.models import Area, Project
|
||||
|
||||
from app.core.errors import AppError
|
||||
from app.db.session import get_db
|
||||
@@ -143,6 +143,14 @@ def acquire_bounded_orthophoto(
|
||||
return envelope(job)
|
||||
|
||||
|
||||
@router.get("/datasets/orthophoto/products", response_model=dict)
|
||||
def list_orthophoto_products(project_id: UUID, db: Session = Depends(get_db)):
|
||||
if not db.get(Project, project_id):
|
||||
raise AppError(code="PROJECT_NOT_FOUND", message="Project not found", status_code=404)
|
||||
items = OrthophotoAcquisitionService.list_products()
|
||||
return envelope({"items": items, "total": len(items)})
|
||||
|
||||
|
||||
@router.get("/datasets", response_model=dict)
|
||||
def list_datasets(
|
||||
project_id: UUID,
|
||||
@@ -426,6 +434,20 @@ def raster_preview_readiness(
|
||||
return envelope(RasterOperationsService.preview(db, dataset_id))
|
||||
|
||||
|
||||
@router.get("/datasets/{dataset_id}/raster/image")
|
||||
def raster_orthophoto_image(
|
||||
project_id: UUID,
|
||||
dataset_id: UUID,
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
content = OrthophotoAcquisitionService.render_png(db, project_id, dataset_id)
|
||||
return Response(
|
||||
content=content,
|
||||
media_type="image/png",
|
||||
headers={"Cache-Control": "private, max-age=86400"},
|
||||
)
|
||||
|
||||
|
||||
@router.get("/datasets/{dataset_id}/raster/stats", response_model=dict)
|
||||
def raster_stats(
|
||||
project_id: UUID,
|
||||
|
||||
Reference in New Issue
Block a user