import requests
import os
class ShortIo:
    def __init__(self):
        self.base_url = "https://api.short.io"
        self.headers = {
            "accept": "application/json",
            "content-type": "application/json",
            "Authorization": os.environ.get("SHORT_IO_API_KEY")
        }
        self.domain = os.environ.get("SHORT_IO_DOMAIN")

    
    def issue_domain(self, hostname):
        payload = {
            "hostname": hostname
        }
        respond = requests.post(f"{self.base_url}/domains", headers=self.headers, json=payload)
        return respond
    
    def create_short_link(self, originalURL, utmSource:str = '', utmMedium:str = '', utmCampaign:str = '', utmTerm:str = '', utmContent:str = ''):
        payload = {
            "skipQS": False,
            "archived": False,
            "allowDuplicates": False,
            "originalURL": originalURL,
            "domain": self.domain,
            "utmSource": utmSource,
            "utmMedium": utmMedium,
            "utmCampaign": utmCampaign,
            "utmTerm": utmTerm,
            "utmContent": utmContent
        }

        respond = requests.post(f"{self.base_url}/links", headers=self.headers, json=payload)
        return respond