import requests
import os
import RegularExpressionParser.Parser as Parser
from dotenv import load_dotenv


def safe_url(query):
    """ convert query to URL-safe style """
    load_dotenv()
    host = os.getenv('SERVER_HOST')
    return host + Parser.url_safe(query)


def get(query):
    """
    function used to send get request to find one or several documentations
    :param query: user input query
    :return: json file of the given author or book
    """
    print("GET: " + query)
    url = safe_url(query)
    req = requests.get(url)
    print("\nresponse code: " + str(req.status_code) + "\n")
    return req.json()


def put(query, json_file):
    """ PUT request """
    print("PUT: " + query)
    url = safe_url(query)
    req = requests.put(url, json=json_file)
    print("\nresponse code: " + str(req.status_code) + "\n")
    return req.text


def post(query, json_file):
    """ POST request """
    print("POST: " + query)
    url = safe_url(query)
    req = requests.post(url, json=json_file)
    print("\nresponse code: " + str(req.status_code) + "\n")
    return req.text


def delete(query):
    """ DELETE request """
    print("DELETE: " + query)
    url = safe_url(query)
    req = requests.delete(url)
    print("\nresponse code: " + str(req.status_code) + "\n")
    return req.text