<script>
    class APIClient {
        static fetch(url, options=null, showErrors=false) {
            return fetchAPI(url, options, showErrors)
        }
    }
    function fetchAPI(url, options=null, showErrors=false) {
        if (options === null) {
            options = {}
        }
        if (!Object.hasOwn(options, 'headers')) {
            options['headers'] = {}
        }
        if (!Object.hasOwn(options['headers'], 'Authorization')) {
            options['headers']['Authorization'] = 'Bearer {{md5($API_KEY)}}{{($login->isIn()) ? $login->getSeparator() . $login->getToken() : ''}}'
        }
        return fetch(url, options).then(response => {
            if (response.ok) {
                return response
            }
            throw new Error(JSON.stringify({code: response.status, message: response.statusText, url}))
        }).catch(error => {
            if (showErrors) {
                console.error(error)
            }
        })
    }
</script>
