예제 #1
0
파일: api.py 프로젝트: hazedic/ctfi2
 def logout(self) -> bool:
     try:
         response = self.get("logout")
     except RequestErr as e:
         raise Exception(err_msg.format('Logout', e))
     return check_response(response, **{
         'status': True,
         'url': self.prefix_url
     })
예제 #2
0
파일: api.py 프로젝트: hazedic/ctfi2
 def _get_obj(self, obj: str, obj_id: int = None) -> list:
     got_obj: list = []
     page: str = dat[obj]['url']['single'].format(
         obj_id) if obj_id else dat[obj]['url']['all']
     try:
         response = self.get(page)
         if check_response(response, **{'status': True, 'json': True}):
             got_obj.append(response.json()['data'])
     except RequestErr as e:
         raise Exception(err_msg.format("Get Object", e))
     return got_obj
예제 #3
0
파일: api.py 프로젝트: hazedic/ctfi2
 def _get_csv(self, obj: str) -> list:
     ret_list: list = []
     page: str = 'admin/export/csv?table={}'.format(obj)
     try:
         response = self.get(page)
     except RequestErr as e:
         raise Exception(err_msg.format('Get CSV', e))
     if check_response(response, **{'status': True}):
         dictreader = DictReader(response.text.split('\r\n'))
         for row in dictreader:
             ret_list.append(row)
     return ret_list
예제 #4
0
파일: api.py 프로젝트: hazedic/ctfi2
    def _delete_obj(self, obj: str, **kwargs) -> bool:
        try:
            obj_id = kwargs['id']
            head = {
                "Content-Type": "application/json",
                "CSRF-Token": self._get_nonce()
            }
            response = self.delete(dat[obj]['url']['single'].format(obj_id),
                                   headers=head)
        except KeyError as e:
            raise Exception(err_msg.format("Delete", e))
        except RequestErr as e:
            raise Exception(err_msg.format("Delete", e))

        return check_response(response, **{"status": True})
예제 #5
0
파일: api.py 프로젝트: hazedic/ctfi2
    def _update_obj(self, obj: str, **kwargs) -> dict:
        update_obj: dict = {}
        head = {
            "Content-Type": "application/json",
            "CSRF-Token": self._get_nonce()
        }
        try:
            data: dict = kwargs
            response = self.patch(dat[obj]['url']['single'].format(
                kwargs['id']),
                                  data=dumps(data, separators=(",", ":")),
                                  headers=head)
            if check_response(response, **{'status': True, 'json': True}):
                update_obj = response.json()['data']
        except KeyError as e:
            raise Exception(err_msg.format('Update Object', e))
        except RequestErr as e:
            raise Exception(err_msg.format('Update Object', e))

        return update_obj
예제 #6
0
파일: api.py 프로젝트: hazedic/ctfi2
    def _add_obj(self, obj: str, **kwargs) -> dict:
        files = {}
        new_obj = {}

        if obj != 'files':
            try:
                head = {
                    "CSRF-Token": self._get_nonce(),
                    "Content-Type": "application/json"
                }
                data: dict = kwargs
                data.pop('id') if 'id' in data.keys() else None
                data: str = dumps(data, separators=(",", ":"))
            except Exception as e:
                raise e

        elif obj == 'files':
            head = {}
            data = kwargs['data']
            files = kwargs['files']
            kwargs.pop('files')

        try:
            response = self.post(dat[obj]['url']['all'],
                                 files=files,
                                 data=data,
                                 headers=head)
            if check_response(response, **{"status": True, "json": True}):
                new_obj = response.json()['data']
        except RequestErr as e:
            raise Exception(err_msg.format('Add Object', e))
        except Exception as e:
            raise Exception(
                err_msg.format('Add Objects', '{}\n\t{}'.format(data, e)))

        return new_obj