| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- from .constants import Endpoint
- from .objects import Match, Status, Player, Lifetime
- import requests
- class Battlegrounds:
- def __init__(self, api_key, region):
- self.api_key = api_key
- self.region = region
- self.session = Session(api_key)
- self.playerIdCache = []
- def matches(self):
- json = self.session.get(Endpoint.matches.format(region=self.region))
- return Match(json)
- def player(self, player_name):
- for player in self.playerIdCache:
- if player.name == player_name:
- print("looked up player id from cache")
- return player
- json = self.session.get(Endpoint.player_lookup.format(name=player_name))
- self.playerIdCache.append(Player(json))
- return Player(json)
- def lifetime(self, player_id):
- json = self.session.get(Endpoint.lifetime.format(id=player_id))
- return Lifetime(json)
- @staticmethod
- def status():
- response = requests.get(f'{Endpoint.base}{Endpoint.status}')
- if response.status_code == 200:
- return Status(response.json())
- else:
- response.raise_for_status() # Update when we know of other responses
- class Session:
- def __init__(self, api_key):
- self.session = requests.Session()
- self.session.headers.update({
- 'Authorization': api_key,
- 'Accept': 'application/vnd.api+json'
- })
- def get(self, endpoint):
- response = self.session.get(f'{Endpoint.base}{endpoint}')
- if response.status_code == 200:
- return response.json()
- else:
- response.raise_for_status()
|