import json
from urllib.request import Request, urlopen


class SentinelClient:
    def __init__(self, base_url, timeout=3):
        self.base_url = base_url.rstrip('/')
        self.timeout = timeout

    def health(self):
        with urlopen(f'{self.base_url}/health', timeout=self.timeout) as response:
            return json.loads(response.read())

    def decide(self, event):
        request = Request(
            f'{self.base_url}/v1/decision',
            data=json.dumps(event).encode('utf-8'),
            headers={'Content-Type': 'application/json'},
            method='POST',
        )
        with urlopen(request, timeout=self.timeout) as response:
            return json.loads(response.read())
