|
1 | 1 | """FastAPI application.""" |
2 | 2 |
|
| 3 | +import logging |
3 | 4 | import os |
4 | 5 | from contextlib import asynccontextmanager |
5 | 6 |
|
|
23 | 24 | from stac_fastapi.core.rate_limit import setup_rate_limit |
24 | 25 | from stac_fastapi.core.route_dependencies import get_route_dependencies |
25 | 26 | from stac_fastapi.core.session import Session |
| 27 | +from stac_fastapi.core.utilities import get_bool_env |
26 | 28 | from stac_fastapi.elasticsearch.config import ElasticsearchSettings |
27 | 29 | from stac_fastapi.elasticsearch.database_logic import ( |
28 | 30 | DatabaseLogic, |
|
39 | 41 | ) |
40 | 42 | from stac_fastapi.extensions.third_party import BulkTransactionExtension |
41 | 43 |
|
| 44 | +logging.basicConfig(level=logging.INFO) |
| 45 | +logger = logging.getLogger(__name__) |
| 46 | + |
| 47 | +TRANSACTIONS_EXTENSIONS = get_bool_env("ENABLE_TRANSACTIONS_EXTENSIONS", default=True) |
| 48 | +logger.info("TRANSACTIONS_EXTENSIONS is set to %s", TRANSACTIONS_EXTENSIONS) |
| 49 | + |
42 | 50 | settings = ElasticsearchSettings() |
43 | 51 | session = Session.create_from_settings(settings) |
44 | 52 |
|
|
60 | 68 | aggregation_extension.GET = EsAggregationExtensionGetRequest |
61 | 69 |
|
62 | 70 | search_extensions = [ |
63 | | - TransactionExtension( |
64 | | - client=TransactionsClient( |
65 | | - database=database_logic, session=session, settings=settings |
66 | | - ), |
67 | | - settings=settings, |
68 | | - ), |
69 | | - BulkTransactionExtension( |
70 | | - client=BulkTransactionsClient( |
71 | | - database=database_logic, |
72 | | - session=session, |
73 | | - settings=settings, |
74 | | - ) |
75 | | - ), |
76 | 71 | FieldsExtension(), |
77 | 72 | QueryExtension(), |
78 | 73 | SortExtension(), |
|
81 | 76 | FreeTextExtension(), |
82 | 77 | ] |
83 | 78 |
|
| 79 | +if TRANSACTIONS_EXTENSIONS: |
| 80 | + search_extensions.insert( |
| 81 | + 0, |
| 82 | + TransactionExtension( |
| 83 | + client=TransactionsClient( |
| 84 | + database=database_logic, session=session, settings=settings |
| 85 | + ), |
| 86 | + settings=settings, |
| 87 | + ), |
| 88 | + ) |
| 89 | + search_extensions.insert( |
| 90 | + 1, |
| 91 | + BulkTransactionExtension( |
| 92 | + client=BulkTransactionsClient( |
| 93 | + database=database_logic, |
| 94 | + session=session, |
| 95 | + settings=settings, |
| 96 | + ) |
| 97 | + ), |
| 98 | + ) |
| 99 | + |
84 | 100 | extensions = [aggregation_extension] + search_extensions |
85 | 101 |
|
86 | 102 | database_logic.extensions = [type(ext).__name__ for ext in extensions] |
|
0 commit comments