1
1
"""Item crud client."""
2
2
import json
3
3
import logging
4
- from datetime import datetime
4
+ from datetime import datetime as datetime_type
5
5
from typing import List , Optional , Type , Union
6
6
from urllib .parse import urljoin
7
7
@@ -147,15 +147,16 @@ def get_item(self, item_id: str, collection_id: str, **kwargs) -> Item:
147
147
)
148
148
return self .item_serializer .db_to_stac (item ["_source" ], base_url )
149
149
150
- def _return_date (self , datetime ):
151
- datetime = datetime .split ("/" )
152
- if len (datetime ) == 1 :
153
- datetime = datetime [0 ][0 :19 ] + "Z"
150
+ @staticmethod
151
+ def _return_date (interval_str ):
152
+ intervals = interval_str .split ("/" )
153
+ if len (intervals ) == 1 :
154
+ datetime = intervals [0 ][0 :19 ] + "Z"
154
155
return {"eq" : datetime }
155
156
else :
156
- start_date = datetime [0 ]
157
- end_date = datetime [1 ]
158
- if ".." not in datetime :
157
+ start_date = intervals [0 ]
158
+ end_date = intervals [1 ]
159
+ if ".." not in intervals :
159
160
start_date = start_date [0 :19 ] + "Z"
160
161
end_date = end_date [0 :19 ] + "Z"
161
162
elif start_date != ".." :
@@ -175,7 +176,7 @@ def get_search(
175
176
collections : Optional [List [str ]] = None ,
176
177
ids : Optional [List [str ]] = None ,
177
178
bbox : Optional [List [NumType ]] = None ,
178
- datetime : Optional [Union [str , datetime ]] = None ,
179
+ datetime : Optional [Union [str , datetime_type ]] = None ,
179
180
limit : Optional [int ] = 10 ,
180
181
query : Optional [str ] = None ,
181
182
token : Optional [str ] = None ,
@@ -238,7 +239,16 @@ def post_search(
238
239
) -> ItemCollection :
239
240
"""POST search catalog."""
240
241
base_url = str (kwargs ["request" ].base_url )
241
- search = Search (using = self .client , index = "stac_items" )
242
+ search = (
243
+ Search ()
244
+ .using (self .client )
245
+ .index ("stac_items" )
246
+ .sort (
247
+ {"properties.datetime" : {"order" : "desc" }},
248
+ {"id" : {"order" : "desc" }},
249
+ {"collection" : {"order" : "desc" }},
250
+ )
251
+ )
242
252
243
253
if search_request .query :
244
254
if type (search_request .query ) == str :
0 commit comments