예제 #1
0
def api_client(db_session):
    return StacApi(
        settings=SqlalchemySettings(),
        client=CoreCrudClient(session=db_session),
        extensions=[
            TransactionExtension(client=TransactionsClient(session=db_session)),
            ContextExtension(),
            SortExtension(),
            FieldsExtension(),
            QueryExtension(),
        ],
    )
예제 #2
0
def api_client(db_session):
    settings = SqlalchemySettings()
    return StacApi(
        settings=settings,
        client=CoreCrudClient(session=db_session),
        extensions=[
            TransactionExtension(client=TransactionsClient(session=db_session),
                                 settings=settings),
            ContextExtension(),
            SortExtension(),
            FieldsExtension(),
            QueryExtension(),
        ],
        search_request_model=SQLAlchemySTACSearch,
    )
def tiles_extension_app(postgres_core, postgres_transactions, load_test_data):
    # Ingest test data for testing
    coll = Collection.parse_obj(load_test_data("test_collection.json"))
    postgres_transactions.create_collection(coll, request=MockStarletteRequest)

    item = Item.parse_obj(load_test_data("test_item.json"))
    postgres_transactions.create_item(item, request=MockStarletteRequest)

    settings = SqlalchemySettings()
    api = StacApi(
        settings=settings,
        client=postgres_core,
        extensions=[TilesExtension(TilesClient(postgres_core))],
    )
    with TestClient(api.app) as test_app:
        yield test_app

    # Cleanup test data
    postgres_transactions.delete_item(item.id, request=MockStarletteRequest)
    postgres_transactions.delete_collection(coll.id,
                                            request=MockStarletteRequest)
예제 #4
0
def api_client(db_session):
    settings = SqlalchemySettings()
    extensions = [
        TransactionExtension(
            client=TransactionsClient(session=db_session), settings=settings
        ),
        ContextExtension(),
        SortExtension(),
        FieldsExtension(),
        QueryExtension(),
        TokenPaginationExtension(),
    ]

    get_request_model = create_request_model(
        "SearchGetRequest",
        base_model=BaseSearchGetRequest,
        extensions=extensions,
        request_type="GET",
    )

    post_request_model = create_request_model(
        "SearchPostRequest",
        base_model=BaseSearchPostRequest,
        extensions=extensions,
        request_type="POST",
    )

    return StacApi(
        settings=settings,
        client=CoreCrudClient(
            session=db_session,
            extensions=extensions,
            post_request_model=post_request_model,
        ),
        extensions=extensions,
        search_get_request_model=get_request_model,
        search_post_request_model=post_request_model,
    )
예제 #5
0
from stac_fastapi.extensions.core import (
    FieldsExtension,
    QueryExtension,
    SortExtension,
    TransactionExtension,
)
from stac_fastapi.extensions.third_party import BulkTransactionExtension
from stac_fastapi.sqlalchemy.config import SqlalchemySettings
from stac_fastapi.sqlalchemy.core import CoreCrudClient
from stac_fastapi.sqlalchemy.session import Session
from stac_fastapi.sqlalchemy.transactions import (
    BulkTransactionsClient,
    TransactionsClient,
)

settings = SqlalchemySettings()
session = Session.create_from_settings(settings)
api = StacApi(
    settings=settings,
    extensions=[
        TransactionExtension(client=TransactionsClient(session=session)),
        BulkTransactionExtension(client=BulkTransactionsClient(
            session=session)),
        FieldsExtension(),
        QueryExtension(),
        SortExtension(),
    ],
    client=CoreCrudClient(session=session),
)
app = api.app