File tree Expand file tree Collapse file tree 3 files changed +33
-5
lines changed
elasticsearch/stac_fastapi/elasticsearch
opensearch/stac_fastapi/opensearch Expand file tree Collapse file tree 3 files changed +33
-5
lines changed Original file line number Diff line number Diff line change @@ -352,9 +352,29 @@ async def item_collection(
352352 datetime_search = datetime_search ,
353353 )
354354
355- items = [
356- self .item_serializer .db_to_stac (item , base_url = base_url ) for item in items
357- ]
355+ fields = request .query_params .get ("fields" )
356+ if fields and self .extension_is_enabled ("FieldsExtension" ):
357+ fields = fields .split ("," )
358+ includes , excludes = set (), set ()
359+ for field in fields :
360+ if field [0 ] == "-" :
361+ excludes .add (field [1 :])
362+ else :
363+ includes .add (field [1 :] if field [0 ] in "+ " else field )
364+
365+ items = [
366+ filter_fields (
367+ self .item_serializer .db_to_stac (item , base_url = base_url ),
368+ includes ,
369+ excludes ,
370+ )
371+ for item in items
372+ ]
373+ else :
374+ items = [
375+ self .item_serializer .db_to_stac (item , base_url = base_url )
376+ for item in items
377+ ]
358378
359379 links = await PagingLinks (request = request , next = next_token ).get_links ()
360380
Original file line number Diff line number Diff line change 3838 TokenPaginationExtension ,
3939 TransactionExtension ,
4040)
41+ from stac_fastapi .extensions .core .fields import FieldsConformanceClasses
4142from stac_fastapi .extensions .core .filter import FilterConformanceClasses
4243from stac_fastapi .extensions .third_party import BulkTransactionExtension
4344from stac_fastapi .sfeos_helpers .aggregation import EsAsyncBaseAggregationClient
7778aggregation_extension .POST = EsAggregationExtensionPostRequest
7879aggregation_extension .GET = EsAggregationExtensionGetRequest
7980
81+ fields_extension = FieldsExtension ()
82+ fields_extension .conformance_classes .append (FieldsConformanceClasses .ITEMS )
83+
8084search_extensions = [
81- FieldsExtension () ,
85+ fields_extension ,
8286 QueryExtension (),
8387 SortExtension (),
8488 TokenPaginationExtension (),
Original file line number Diff line number Diff line change 3232 TokenPaginationExtension ,
3333 TransactionExtension ,
3434)
35+ from stac_fastapi .extensions .core .fields import FieldsConformanceClasses
3536from stac_fastapi .extensions .core .filter import FilterConformanceClasses
3637from stac_fastapi .extensions .third_party import BulkTransactionExtension
3738from stac_fastapi .opensearch .config import OpensearchSettings
7778aggregation_extension .POST = EsAggregationExtensionPostRequest
7879aggregation_extension .GET = EsAggregationExtensionGetRequest
7980
81+ fields_extension = FieldsExtension ()
82+ fields_extension .conformance_classes .append (FieldsConformanceClasses .ITEMS )
83+
8084search_extensions = [
81- FieldsExtension () ,
85+ fields_extension ,
8286 QueryExtension (),
8387 SortExtension (),
8488 TokenPaginationExtension (),
You can’t perform that action at this time.
0 commit comments