import requests

class AIOPrrintSystemAPI:
    def __init__(self, api_url="http://127.0.0.1:5001/api/v1", api_key=""):
        self.api_url = api_url
        self.api_key = api_key
        self.headers = {"X-Api-Key": self.api_key}

    def _post_action(self, method, **kwargs):
        url = f"{self.api_url}/octoprint_client"
        payload = {"method": method, "kwargs": kwargs}
        try:
            r = requests.post(url, json=payload, headers=self.headers, timeout=5)
            return r.json()
        except:
            return None

    def print(self, *args, **kwargs):
        pass

    def get_status(self):
        url = f"{self.api_url}/status"
        try:
            r = requests.get(url, headers=self.headers, timeout=5)
            r.raise_for_status()
            return r.json()
        except:
            return {"status": {}, "job": {}}

    def pause_print(self):
        return self._post_action("pause_print", action="pause")

    def stop_print(self):
        return self._post_action("cancel_print")

    