From a84eecc687597e61f0bb3d8c2aff09f4acafcb3d Mon Sep 17 00:00:00 2001 From: Chewing_Bever Date: Sun, 31 Jul 2022 13:36:23 +0200 Subject: [PATCH] feat: wrap remaining target endpoints --- aiovieter/targets.py | 20 ++++++++++++++++++-- aiovieter/vieter.py | 9 +++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/aiovieter/targets.py b/aiovieter/targets.py index 8e53258..7e4ba86 100644 --- a/aiovieter/targets.py +++ b/aiovieter/targets.py @@ -7,8 +7,8 @@ class VieterTargets: return await self._vieter._get("/targets", params=params) - async def info(self, repo_id: int) -> dict: - return await self._vieter._get(f"/targets/{repo_id}") + async def info(self, target_id: int) -> dict: + return await self._vieter._get(f"/targets/{target_id}") async def create(self, url: str, branch: str, repo: str, schedule: str = None, arch: [str] = None): params = { @@ -22,3 +22,19 @@ class VieterTargets: params['arch'] = arch.join(',') await self._vieter._post('/targets', params=params) + + async def create(self, target_id: int, url: str = None, branch: str = None, repo: str = None, schedule: str = None, arch: [str] = None): + params = { + 'url': url, + 'branch': branch, + 'repo': repo, + 'schedule': schedule, + } + + if arch is not None: + params['arch'] = arch.join(',') + + await self._vieter._patch(f'/targets/{target_id}', params=params) + + async def delete(self, target_id: int): + await self._vieter._delete(f'/targets/{target_id}') diff --git a/aiovieter/vieter.py b/aiovieter/vieter.py index cf9fd71..aa89750 100644 --- a/aiovieter/vieter.py +++ b/aiovieter/vieter.py @@ -36,6 +36,9 @@ class Vieter: params = {k: v for k, v in params.items() if v is not None} async with self._client.request(method, f"{API_PREFIX}{path}", params=params) as res: + if res.status == 404: + return VieterApiException("Error 404") + data = await res.json() if res.status != 200: @@ -48,3 +51,9 @@ class Vieter: async def _post(self, *args, **kwargs): return await self._do_req("POST", *args, **kwargs) + + async def _patch(self, *args, **kwargs): + return await self._do_req("PATCH", *args, **kwargs) + + async def _delete(self, *args, **kwargs): + return await self._do_req("DELETE", *args, **kwargs)