python-dependency-injector/examples/miniapps/fastapi/giphynavigator/giphy.py

27 lines
794 B
Python
Raw Normal View History

2020-11-12 22:48:07 +00:00
"""Giphy client module."""
from aiohttp import ClientSession, ClientTimeout
class GiphyClient:
2021-09-30 20:55:50 +00:00
API_URL = "https://api.giphy.com/v1"
2020-11-12 22:48:07 +00:00
def __init__(self, api_key, timeout):
self._api_key = api_key
self._timeout = ClientTimeout(timeout)
async def search(self, query, limit):
"""Make search API call and return result."""
2021-09-30 20:55:50 +00:00
url = f"{self.API_URL}/gifs/search"
2020-11-12 22:48:07 +00:00
params = {
2021-09-30 20:55:50 +00:00
"q": query,
"api_key": self._api_key,
"limit": limit,
2020-11-12 22:48:07 +00:00
}
async with ClientSession(timeout=self._timeout) as session:
async with session.get(url, params=params) as response:
if response.status != 200:
response.raise_for_status()
return await response.json()