import json
import requests
import logging

logger = logging.getLogger("KlipperScreen.KlippyRest")

class KlippyRest:
    def __init__(self, ip, port=7125):
        self.ip = ip
        self.port = port

    def get_server_info(self):
        return self.send_request("server/info")

    def get_printer_info(self):
        return self.send_request("printer/info")

    def send_request(self, method):
        url = "http://%s:%s/%s" % (self.ip, self.port, method)
        logger.debug("Sending request to %s" % url)
        r = requests.get(url)
        if r.status_code != 200:
            return False

        #TODO: Try/except
        try:
            data = json.loads(r.content)
        except:
            logger.exception("Unable to parse response from moonraker:\n %s" % r.content)
            return False

        return data