HM-83. Добавлены классы для работы с авторизацией (#36)
This commit is contained in:
92
src/api/HttpAPI.js
Normal file
92
src/api/HttpAPI.js
Normal 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;
|
||||
Reference in New Issue
Block a user