HM-83. Добавлены классы для работы с авторизацией (#36)

This commit is contained in:
Nikolay
2020-07-30 08:32:56 +03:00
committed by GitHub
parent a9282a38e5
commit d957d2d208
6 changed files with 321 additions and 3 deletions

92
src/api/HttpAPI.js Normal file
View File

@ -0,0 +1,92 @@
import {makeUrlWithQuery} from '../utils/urlUtils';
import httpAuthApi from './HttpAuthAPI';
const GET = 'GET';
const POST = 'POST';
const PUT = 'PUT';
const DELETE = 'DELETE';
const HEAD = 'HEAD';
const OPTIONS = 'OPTIONS';
const PATH = 'PATH';
/**
* Методы запросов к серверу
* @interface MethodType
* @type {'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD' | 'OPTIONS' | 'PATH'}
*/
/**
* Api для выполнения запросов к серверу
* @class HttpApi
*/
class HttpApi {
/**
* Общий метод выполнения запроса
* @param {MethodType} method - метод запроса
* @param {string} url - адрес запроса
* @param {Object} body - тело запроса
*/
request = (method, url, body) => {
return httpAuthApi.request({method, url, body});
}
/**
* @param {string} url - адрес запроса
* @param {Object<string, string>} query - параметры для передачи через query
*/
get = (url, query) => {
return this.request(GET, makeUrlWithQuery(url, query));
}
/**
* @param {string} url - адрес запроса
* @param {Object} body - тело запроса
*/
post = (url, body) => {
return this.request(POST, url, body);
}
/**
* @param {string} url - адрес запроса
* @param {Object} body - тело запроса
*/
put = (url, body) => {
return this.request(PUT, url, body);
}
/**
* @param {string} url - адрес запроса
* @param {Object<string, string>} query - параметры для передачи через query
*/
delete = (url, query) => {
return this.request(DELETE, makeUrlWithQuery(url, query));
}
/**
* @param {string} url - адрес запроса
* @param {Object<string, string>} query - параметры для передачи через query
*/
head = (url, query) => {
return this.request(HEAD, makeUrlWithQuery(url, query));
}
/**
* @param {string} url - адрес запроса
* @param {Object<string, string>} query - параметры для передачи через query
*/
options = (url, query) => {
return this.request(OPTIONS, makeUrlWithQuery(url, query));
}
/**
* @param {string} url - адрес запроса
* @param {Object} body - тело запроса
*/
path = (url, body) => {
return this.request(PATH, url, body);
}
}
const http = new HttpApi();
export default http;