From 17b9e6acc8c81a509acc469c17977bf3761bc835 Mon Sep 17 00:00:00 2001 From: SantaSpeen Date: Wed, 16 Mar 2022 02:08:16 +0300 Subject: [PATCH] 1.0 --- gitflic/__version__.py | 2 +- gitflic/api.py | 44 ++++++++++++++++++++++++++++++++++++++---- 2 files changed, 41 insertions(+), 5 deletions(-) diff --git a/gitflic/__version__.py b/gitflic/__version__.py index 9e7bd70..97b0ea4 100644 --- a/gitflic/__version__.py +++ b/gitflic/__version__.py @@ -1,5 +1,5 @@ __title__ = "gitflic" -__version__ = "0.0.1" +__version__ = "1.0" __description__ = "GitflicApi wrapper" __author__ = "SantaSpeen" __author_email__ = "dir@sssr.dev" diff --git a/gitflic/api.py b/gitflic/api.py index 443ea7e..7a66fad 100644 --- a/gitflic/api.py +++ b/gitflic/api.py @@ -1,9 +1,45 @@ -import requests +from .auth import GitflicAuth +from .exceptions import NotFound, NoRights, GitflicExceptions -API_URL = 'https://api.gitflic.ru/' +API_URL = 'https://api.gitflic.ru' class Gitflic: - def __init__(self): - pass + def __init__(self, gf_session: GitflicAuth): + """ + + :param gf_session: + """ + self.session = gf_session.session + + @staticmethod + def _response_handler(response): + code = response.status_code + if code == 200: + return response.json() + url = response.url + if code == 403: + raise NoRights(f"No rights for '{url}'") + elif code == 404: + raise NotFound(f"Response '{url}' not found") + + raise GitflicExceptions(f"Gitflic send error: {code}. {response.text}") + + def call(self, method, *args, **kwargs): + """ + + :param method: + :param args: + :param kwargs: + :return: + """ + response = self.session.get(API_URL + method, *args, **kwargs) + return self._response_handler(response) + + def reg_call(self, method: str): + + l = lambda *_args, **_kwargs: self.call(method, *_args, **_kwargs) + l.__name__ = method.replace("/", "_") + + return l