diff --git a/.gitignore b/.gitignore index a230a78..014b793 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .venv/ __pycache__/ +main.py diff --git a/requirements.txt b/requirements.txt index e69de29..aa983e7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -0,0 +1,2 @@ +aiohttp +aiodns diff --git a/vieter/repos.py b/vieter/repos.py new file mode 100644 index 0000000..3e253b8 --- /dev/null +++ b/vieter/repos.py @@ -0,0 +1,11 @@ +class VieterRepos: + def __init__(self, vieter): + self._vieter = vieter + + async def list(self, offset: int = 0, limit: int = 25): + params = { + 'offset': offset, + 'limit': limit + } + + return await self._vieter._get('/api/repos', params=params) diff --git a/vieter/vieter.py b/vieter/vieter.py index b301db7..40b8e7c 100644 --- a/vieter/vieter.py +++ b/vieter/vieter.py @@ -1,7 +1,23 @@ +import aiohttp + +from .repos import VieterRepos + class Vieter: def __init__(self, address: str, api_key: str) -> None: self._address = address self._api_key = api_key + self._client = aiohttp.ClientSession( + base_url=address, headers={'X-Api-Key': api_key} + ) - def _do_req(self, path: str, method: str, params: dict): - pass + self.repos = VieterRepos(self) + + async def close(self): + await self._client.close() + + async def _do_req(self, method: str, path: str, params: dict = None): + async with self._client.request(method, path, params=params) as res: + return await res.json() + + async def _get(self, *args, **kwargs): + return await self._do_req('GET', *args, **kwargs)