|
1 | 1 | """FastAPI application.""" |
2 | 2 |
|
| 3 | +import logging |
3 | 4 | import os |
4 | 5 | from contextlib import asynccontextmanager |
5 | 6 |
|
|
21 | 22 | from stac_fastapi.core.rate_limit import setup_rate_limit |
22 | 23 | from stac_fastapi.core.route_dependencies import get_route_dependencies |
23 | 24 | from stac_fastapi.core.session import Session |
| 25 | +from stac_fastapi.core.utilities import get_bool_env |
24 | 26 | from stac_fastapi.elasticsearch.config import ElasticsearchSettings |
25 | 27 | from stac_fastapi.elasticsearch.database_logic import ( |
26 | 28 | DatabaseLogic, |
|
46 | 48 | from stac_fastapi.sfeos_helpers.aggregation import EsAsyncBaseAggregationClient |
47 | 49 | from stac_fastapi.sfeos_helpers.filter import EsAsyncBaseFiltersClient |
48 | 50 |
|
| 51 | +logging.basicConfig(level=logging.INFO) |
| 52 | +logger = logging.getLogger(__name__) |
| 53 | + |
| 54 | +TRANSACTIONS_EXTENSIONS = get_bool_env("ENABLE_TRANSACTIONS_EXTENSIONS", default=True) |
| 55 | +logger.info("TRANSACTIONS_EXTENSIONS is set to %s", TRANSACTIONS_EXTENSIONS) |
| 56 | + |
49 | 57 | settings = ElasticsearchSettings() |
50 | 58 | session = Session.create_from_settings(settings) |
51 | 59 |
|
|
55 | 63 | client=EsAsyncBaseFiltersClient(database=database_logic) |
56 | 64 | ) |
57 | 65 | filter_extension.conformance_classes.append( |
58 | | - "http://www.opengis.net/spec/cql2/1.0/conf/advanced-comparison-operators" |
| 66 | + FilterConformanceClasses.ADVANCED_COMPARISON_OPERATORS |
59 | 67 | ) |
60 | | - |
61 | 68 | aggregation_extension = AggregationExtension( |
62 | 69 | client=EsAsyncBaseAggregationClient( |
63 | 70 | database=database_logic, session=session, settings=settings |
|
67 | 74 | aggregation_extension.GET = EsAggregationExtensionGetRequest |
68 | 75 |
|
69 | 76 | search_extensions = [ |
70 | | - TransactionExtension( |
71 | | - client=TransactionsClient( |
72 | | - database=database_logic, session=session, settings=settings |
73 | | - ), |
74 | | - settings=settings, |
75 | | - ), |
76 | | - BulkTransactionExtension( |
77 | | - client=BulkTransactionsClient( |
78 | | - database=database_logic, |
79 | | - session=session, |
80 | | - settings=settings, |
81 | | - ) |
82 | | - ), |
83 | 77 | CollectionSearchExtension(), |
84 | 78 | FieldsExtension(), |
85 | 79 | QueryExtension(), |
|
89 | 83 | FreeTextExtension(), |
90 | 84 | ] |
91 | 85 |
|
92 | | -extensions = [aggregation_extension] + search_extensions |
| 86 | +if TRANSACTIONS_EXTENSIONS: |
| 87 | + search_extensions.insert( |
| 88 | + 0, |
| 89 | + TransactionExtension( |
| 90 | + client=TransactionsClient( |
| 91 | + database=database_logic, session=session, settings=settings |
| 92 | + ), |
| 93 | + settings=settings, |
| 94 | + ), |
| 95 | + ) |
| 96 | + search_extensions.insert( |
| 97 | + 1, |
| 98 | + BulkTransactionExtension( |
| 99 | + client=BulkTransactionsClient( |
| 100 | + database=database_logic, |
| 101 | + session=session, |
| 102 | + settings=settings, |
| 103 | + ) |
| 104 | + ), |
| 105 | + ) |
93 | 106 |
|
94 | | -post_request_model = create_post_request_model(search_extensions) |
| 107 | +extensions = [aggregation_extension] + search_extensions |
95 | 108 |
|
96 | 109 | # Define the collection search extensions map |
97 | 110 | cs_extensions_map = { |
|
0 commit comments