Показать сообщение отдельно
  #5 (permalink)  
Старый 07.12.2020, 16:04
Аспирант
Отправить личное сообщение для SolomonRei Посмотреть профиль Найти все сообщения от SolomonRei
 
Регистрация: 05.04.2018
Сообщений: 77

Класс API
class API {
        constructor(token = '') {
            this.hasToken = token === '' ? false : true;
            this.token = token;
        }

        async makeQuery(url, nextAction, method = 'GET', data = {}) {
            try {
                if(this.hasToken) data.token = this.token;

                let options = {
                    method: method,
                    headers: {
                        'Content-Type': 'application/x-www-form-urlencoded',
                    }
                }

                /*
                * Если POST запрос, тогда мы переводим данные в x-www-form-urlencoded и добавляем св-во body
                * */
                if (method === 'POST') {
                    let formBody = [];
                    for (let property in data) {
                        let encodedKey = encodeURIComponent(property);
                        let encodedValue = encodeURIComponent(data[property]);
                        formBody.push(encodedKey + "=" + encodedValue);
                    }
                    formBody = formBody.join("&");
                    options.body = formBody;
                }

                const recieveddata = await fetch(url, options);
                const result = await recieveddata.json();

                return nextAction(result);
            }catch (error) {
                return this.ShowError({
                    message: error
                });
            }
        }

        ShowError(data = {}) {
            Object.keys(data).map(function(message, index) {
                var value = data[message];
                alert(value);
            });
        }
    }
Ответить с цитированием