2222from .. import exceptions
2323from ..constants import PLANET_BASE_URL
2424from ..http import Session
25- from ..models import Paged , Request , Response , StreamingBody
25+ from ..models import Paged , StreamingBody
2626
2727BASE_URL = f'{ PLANET_BASE_URL } /data/v1/'
2828SEARCHES_PATH = '/searches'
@@ -93,17 +93,6 @@ def _searches_url(self):
9393 def _item_url (self , item_type , item_id ):
9494 return f'{ self ._base_url } /item-types/{ item_type } /items/{ item_id } '
9595
96- def _request (self , url , method , data = None , params = None , json = None ):
97- return Request (url , method = method , data = data , params = params , json = json )
98-
99- async def _do_request (self , request : Request ) -> Response :
100- """Submit a request and get response.
101-
102- Parameters:
103- request: request to submit
104- """
105- return await self ._session .request (request )
106-
10796 async def search (self ,
10897 item_types : List [str ],
10998 search_filter : dict ,
@@ -185,11 +174,11 @@ async def search(self,
185174 f'{ sort } must be one of { SEARCH_SORT } ' )
186175 params ['_sort' ] = sort
187176
188- request = self ._request ( url ,
189- method = 'POST' ,
190- json = request_json ,
191- params = params )
192- return Items (request , self ._do_request , limit = limit )
177+ response = await self ._session . request ( method = 'POST' ,
178+ url = url ,
179+ json = request_json ,
180+ params = params )
181+ return Items (response , self ._session . request , limit = limit )
193182
194183 async def create_search (self ,
195184 name : str ,
@@ -229,15 +218,16 @@ async def create_search(self,
229218 url = self ._searches_url ()
230219
231220 # TODO: validate item_types
232- request_json = {
221+ request = {
233222 'name' : name ,
234223 'filter' : search_filter ,
235224 'item_types' : item_types ,
236225 '__daily_email_enabled' : enable_email
237226 }
238227
239- request = self ._request (url , method = 'POST' , json = request_json )
240- response = await self ._do_request (request )
228+ response = await self ._session .request (method = 'POST' ,
229+ url = url ,
230+ json = request )
241231 return response .json ()
242232
243233 async def update_search (self ,
@@ -260,15 +250,16 @@ async def update_search(self,
260250 """
261251 url = f'{ self ._searches_url ()} /{ search_id } '
262252
263- request_json = {
253+ request = {
264254 'name' : name ,
265255 'filter' : search_filter ,
266256 'item_types' : item_types ,
267257 '__daily_email_enabled' : enable_email
268258 }
269259
270- request = self ._request (url , method = 'PUT' , json = request_json )
271- response = await self ._do_request (request )
260+ response = await self ._session .request (method = 'PUT' ,
261+ url = url ,
262+ json = request )
272263 return response .json ()
273264
274265 async def list_searches (self ,
@@ -307,8 +298,9 @@ async def list_searches(self,
307298 f'{ search_type } must be one of { LIST_SEARCH_TYPE } ' )
308299
309300 url = f'{ self ._searches_url ()} '
310- request = self ._request (url , method = 'GET' )
311- return Searches (request , self ._do_request , limit = limit )
301+
302+ response = await self ._session .request (method = 'GET' , url = url )
303+ return Searches (response , self ._session .request , limit = limit )
312304
313305 async def delete_search (self , search_id : str ):
314306 """Delete an existing saved search.
@@ -321,8 +313,7 @@ async def delete_search(self, search_id: str):
321313 """
322314 url = f'{ self ._searches_url ()} /{ search_id } '
323315
324- request = self ._request (url , method = 'DELETE' )
325- await self ._do_request (request )
316+ await self ._session .request (method = 'DELETE' , url = url )
326317
327318 async def get_search (self , search_id : str ) -> dict :
328319 """Get a saved search by id.
@@ -337,9 +328,9 @@ async def get_search(self, search_id: str) -> dict:
337328 planet.exceptions.APIError: On API error.
338329 """
339330 url = f'{ self ._searches_url ()} /{ search_id } '
340- req = self . _request ( url , method = 'GET' )
341- resp = await self ._do_request ( req )
342- return resp .json ()
331+
332+ response = await self ._session . request ( method = 'GET' , url = url )
333+ return response .json ()
343334
344335 async def run_search (self ,
345336 search_id : str ,
@@ -359,8 +350,8 @@ async def run_search(self,
359350 """
360351 url = f'{ self ._searches_url ()} /{ search_id } /results'
361352
362- request = self ._request ( url , method = 'GET' )
363- return Items (request , self ._do_request , limit = limit )
353+ response = await self ._session . request ( method = 'GET' , url = url )
354+ return Items (response , self ._session . request , limit = limit )
364355
365356 async def get_stats (self ,
366357 item_types : List [str ],
@@ -388,14 +379,15 @@ async def get_stats(self,
388379
389380 url = f'{ self ._base_url } { STATS_PATH } '
390381
391- request_json = {
382+ request = {
392383 'interval' : interval ,
393384 'filter' : search_filter ,
394385 'item_types' : item_types
395386 }
396387
397- request = self ._request (url , method = 'POST' , json = request_json )
398- response = await self ._do_request (request )
388+ response = await self ._session .request (method = 'POST' ,
389+ url = url ,
390+ json = request )
399391 return response .json ()
400392
401393 async def list_asset_types (self ) -> List [dict ]:
@@ -500,8 +492,8 @@ async def list_item_assets(self, item_type_id: str, item_id: str) -> dict:
500492 planet.exceptions.APIError: On API error.
501493 """
502494 url = f'{ self ._item_url (item_type_id , item_id )} /assets'
503- request = self . _request ( url , method = 'GET' )
504- response = await self ._do_request ( request )
495+
496+ response = await self ._session . request ( method = 'GET' , url = url )
505497 return response .json ()
506498
507499 async def get_asset (self ,
@@ -558,9 +550,8 @@ async def activate_asset(self, asset: dict):
558550
559551 # lets not try to activate an asset already activating or active
560552 if status == 'inactive' :
561- request = self ._request (url , method = 'GET' )
562553 # no response is returned
563- await self ._do_request ( request )
554+ await self ._session . request ( method = 'GET' , url = url )
564555
565556 return
566557
@@ -623,8 +614,7 @@ async def wait_asset(
623614 raise exceptions .ClientError (
624615 'asset missing ["_links"]["_self"] entry.' )
625616
626- request = self ._request (asset_url , method = 'GET' )
627- response = await self ._do_request (request )
617+ response = await self ._session .request (method = 'GET' , url = asset_url )
628618 asset = response .json ()
629619
630620 if max_attempts and num_attempts >= max_attempts :
@@ -669,9 +659,7 @@ async def download_asset(self,
669659 raise exceptions .ClientError (
670660 'asset missing ["location"] entry. Is asset active?' )
671661
672- req = self ._request (location , method = 'GET' )
673-
674- async with self ._session .stream (req ) as resp :
662+ async with self ._session .stream (method = 'GET' , url = location ) as resp :
675663 body = StreamingBody (resp )
676664 dl_path = Path (directory , filename or body .name )
677665 dl_path .parent .mkdir (exist_ok = True , parents = True )
0 commit comments