Skip to content

Commit

Permalink
fix lint
Browse files Browse the repository at this point in the history
  • Loading branch information
vincentsarago committed Dec 11, 2023
1 parent b234c2e commit 2d1fb0d
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 7 deletions.
22 changes: 16 additions & 6 deletions src/titiler/application/titiler/application/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import logging

import jinja2
from fastapi import FastAPI, Depends, HTTPException, Security
from fastapi import Depends, FastAPI, HTTPException, Security
from fastapi.security.api_key import APIKeyQuery
from rio_tiler.io import STACReader
from starlette.middleware.cors import CORSMiddleware
Expand Down Expand Up @@ -51,13 +51,15 @@
###############################################################################
# Setup a global API access key, if configured
api_key_query = APIKeyQuery(name="access_token", auto_error=False)


def validate_access_token(access_token: str = Security(api_key_query)):
"""Validates API key access token, set as the `api_settings.global_access_token` value.
Returns True if no access token is required, or if the access token is valid.
Raises an HTTPException (403) if the access token is required but invalid/missing."""
if api_settings.global_access_token is None:
return True

if not access_token:
raise HTTPException(status_code=403, detail="Missing `access_token`")

Expand All @@ -66,6 +68,8 @@ def validate_access_token(access_token: str = Security(api_key_query)):
raise HTTPException(status_code=403, detail="Invalid `access_token`")

return True


###############################################################################

app = FastAPI(
Expand Down Expand Up @@ -118,29 +122,35 @@ def validate_access_token(access_token: str = Security(api_key_query)):
)

app.include_router(
stac.router, prefix="/stac", tags=["SpatioTemporal Asset Catalog"],
stac.router,
prefix="/stac",
tags=["SpatioTemporal Asset Catalog"],
)

###############################################################################
# Mosaic endpoints
if not api_settings.disable_mosaic:
mosaic = MosaicTilerFactory(router_prefix="/mosaicjson")
app.include_router(
mosaic.router, prefix="/mosaicjson", tags=["MosaicJSON"],
mosaic.router,
prefix="/mosaicjson",
tags=["MosaicJSON"],
)

###############################################################################
# TileMatrixSets endpoints
tms = TMSFactory()
app.include_router(
tms.router, tags=["Tiling Schemes"],
tms.router,
tags=["Tiling Schemes"],
)

###############################################################################
# Algorithms endpoints
algorithms = AlgorithmFactory()
app.include_router(
algorithms.router, tags=["Algorithms"],
algorithms.router,
tags=["Algorithms"],
)

add_exception_handlers(app, DEFAULT_STATUS_CODES)
Expand Down
4 changes: 3 additions & 1 deletion src/titiler/application/titiler/application/settings.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
"""Titiler API settings."""

from typing import Union

from pydantic import field_validator
from pydantic_settings import BaseSettings, SettingsConfigDict
from typing import Union


class ApiSettings(BaseSettings):
"""FASTAPI application settings."""
Expand Down

0 comments on commit 2d1fb0d

Please sign in to comment.