Esempio n. 1
0
    async def _call_api(self,
                        method: str,
                        url: str,
                        data: Union[dict, FormData] = None,
                        file=None,
                        **kwargs) -> Optional[Union[List[dict], dict]]:
        auth = None
        if self._login != ("", ""):
            auth = BasicAuth(*self._login)

        if file:
            file = file["upload[file]"]
            formdata = FormData()
            formdata.add_field("upload[file]",
                               file[1],
                               filename=file[0],
                               content_type=file[2])
            formdata.add_fields(data)
            data = formdata

        query_string = self._generate_query_keys(**kwargs)
        url += "?" + query_string
        r = await self._session.request(method,
                                        url,
                                        data=data,
                                        headers=self.headers,
                                        auth=auth)
        await self._verify_response(r)
        if not r.status == 204:
            return await r.json()

        return None
Esempio n. 2
0
    def async_call(self, session, token: str) -> ReturnType:
        url, form, files, inputfiles, use_multipart = self._prepare_for_call(
            token)

        if use_multipart:
            data = form.copy()
            data.update(files)

            print("Method:", self.__class__.__name__)
            print("Data:", data)

            from aiohttp import FormData
            data = FormData()
            data.add_fields(*((str(k), str(v)) for k, v in form.items()))
            for name, f in inputfiles.items():
                print(name, f.file, f.mime, name)
                data.add_field(name,
                               f.file,
                               content_type=f.mime,
                               filename=name)

            req = session.post(url, data=data)
        else:
            req = session.post(url, json=form)

        r = yield from req
        j = yield from r.json()
        return self.read_result(j)
Esempio n. 3
0
async def get_form_data(i):
    data = FormData()
    data.add_fields(('maven2.groupId', 'com.atishay.test'),
                    ('artifactId', 'someartifact'), ('version', f'{i}.0.0'),
                    ('generate-pom', 'false'), ('packaging', 'zip'),
                    ('asset1', open(file, 'rb')), ('asset1.extension', 'zip'))
    return data