|
|
@@ -43,14 +43,19 @@ function fetch (verb, path, data, options) {
|
|
|
let url = api_url + path;
|
|
|
let token = Tokens.getTopToken();
|
|
|
|
|
|
+ if ((typeof options.contentType === 'undefined' || options.contentType.match(/json/im)) && typeof data === 'object') {
|
|
|
+ data = JSON.stringify(data);
|
|
|
+ }
|
|
|
+
|
|
|
$.ajax({
|
|
|
url: url,
|
|
|
data: typeof data === 'object' ? JSON.stringify(data) : data,
|
|
|
type: verb,
|
|
|
dataType: 'json',
|
|
|
- contentType: 'application/json; charset=UTF-8',
|
|
|
+ contentType: options.contentType || 'application/json; charset=UTF-8',
|
|
|
+ processData: options.processData || true,
|
|
|
crossDomain: true,
|
|
|
- timeout: (options.timeout ? options.timeout : 15000),
|
|
|
+ timeout: options.timeout ? options.timeout : 15000,
|
|
|
xhrFields: {
|
|
|
withCredentials: true
|
|
|
},
|
|
|
@@ -123,6 +128,41 @@ function getAllObjects (path, expand, query) {
|
|
|
return fetch('get', path + (params.length ? '?' + params.join('&') : ''));
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * @param {String} path
|
|
|
+ * @param {FormData} form_data
|
|
|
+ * @returns {Promise}
|
|
|
+ */
|
|
|
+function upload (path, form_data) {
|
|
|
+ console.log('UPLOAD:', path, form_data);
|
|
|
+ return fetch('post', path, form_data, {
|
|
|
+ contentType: 'multipart/form-data',
|
|
|
+ processData: false
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+function FileUpload (path, fd) {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ let xhr = new XMLHttpRequest();
|
|
|
+ let token = Tokens.getTopToken();
|
|
|
+
|
|
|
+ xhr.open('POST', '/api/' + path);
|
|
|
+ xhr.overrideMimeType('text/plain');
|
|
|
+ xhr.setRequestHeader('Authorization', 'Bearer ' + (token ? token.t : null));
|
|
|
+ xhr.send(fd);
|
|
|
+
|
|
|
+ xhr.onreadystatechange = function () {
|
|
|
+ if (this.readyState === XMLHttpRequest.DONE) {
|
|
|
+ if (xhr.status !== 200 && xhr.status !== 201) {
|
|
|
+ reject(new Error('Upload failed: ' + xhr.status));
|
|
|
+ } else {
|
|
|
+ resolve(xhr.responseText);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
module.exports = {
|
|
|
status: function () {
|
|
|
return fetch('get', '');
|
|
|
@@ -283,6 +323,15 @@ module.exports = {
|
|
|
*/
|
|
|
delete: function (id) {
|
|
|
return fetch('delete', 'nginx/proxy-hosts/' + id);
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param {Integer} id
|
|
|
+ * @param {FormData} form_data
|
|
|
+ * @params {Promise}
|
|
|
+ */
|
|
|
+ setCerts: function (id, form_data) {
|
|
|
+ return FileUpload('nginx/proxy-hosts/' + id + '/certificates', form_data);
|
|
|
}
|
|
|
},
|
|
|
|
|
|
@@ -294,6 +343,41 @@ module.exports = {
|
|
|
*/
|
|
|
getAll: function (expand, query) {
|
|
|
return getAllObjects('nginx/redirection-hosts', expand, query);
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param {Object} data
|
|
|
+ */
|
|
|
+ create: function (data) {
|
|
|
+ return fetch('post', 'nginx/redirection-hosts', data);
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param {Object} data
|
|
|
+ * @param {Integer} data.id
|
|
|
+ * @returns {Promise}
|
|
|
+ */
|
|
|
+ update: function (data) {
|
|
|
+ let id = data.id;
|
|
|
+ delete data.id;
|
|
|
+ return fetch('put', 'nginx/redirection-hosts/' + id, data);
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param {Integer} id
|
|
|
+ * @returns {Promise}
|
|
|
+ */
|
|
|
+ delete: function (id) {
|
|
|
+ return fetch('delete', 'nginx/redirection-hosts/' + id);
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param {Integer} id
|
|
|
+ * @param {FormData} form_data
|
|
|
+ * @params {Promise}
|
|
|
+ */
|
|
|
+ setCerts: function (id, form_data) {
|
|
|
+ return upload('nginx/redirection-hosts/' + id + '/certificates', form_data);
|
|
|
}
|
|
|
},
|
|
|
|
|
|
@@ -305,6 +389,32 @@ module.exports = {
|
|
|
*/
|
|
|
getAll: function (expand, query) {
|
|
|
return getAllObjects('nginx/streams', expand, query);
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param {Object} data
|
|
|
+ */
|
|
|
+ create: function (data) {
|
|
|
+ return fetch('post', 'nginx/streams', data);
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param {Object} data
|
|
|
+ * @param {Integer} data.id
|
|
|
+ * @returns {Promise}
|
|
|
+ */
|
|
|
+ update: function (data) {
|
|
|
+ let id = data.id;
|
|
|
+ delete data.id;
|
|
|
+ return fetch('put', 'nginx/streams/' + id, data);
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param {Integer} id
|
|
|
+ * @returns {Promise}
|
|
|
+ */
|
|
|
+ delete: function (id) {
|
|
|
+ return fetch('delete', 'nginx/streams/' + id);
|
|
|
}
|
|
|
},
|
|
|
|
|
|
@@ -316,6 +426,41 @@ module.exports = {
|
|
|
*/
|
|
|
getAll: function (expand, query) {
|
|
|
return getAllObjects('nginx/dead-hosts', expand, query);
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param {Object} data
|
|
|
+ */
|
|
|
+ create: function (data) {
|
|
|
+ return fetch('post', 'nginx/dead-hosts', data);
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param {Object} data
|
|
|
+ * @param {Integer} data.id
|
|
|
+ * @returns {Promise}
|
|
|
+ */
|
|
|
+ update: function (data) {
|
|
|
+ let id = data.id;
|
|
|
+ delete data.id;
|
|
|
+ return fetch('put', 'nginx/dead-hosts/' + id, data);
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param {Integer} id
|
|
|
+ * @returns {Promise}
|
|
|
+ */
|
|
|
+ delete: function (id) {
|
|
|
+ return fetch('delete', 'nginx/dead-hosts/' + id);
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param {Integer} id
|
|
|
+ * @param {FormData} form_data
|
|
|
+ * @params {Promise}
|
|
|
+ */
|
|
|
+ setCerts: function (id, form_data) {
|
|
|
+ return upload('nginx/dead-hosts/' + id + '/certificates', form_data);
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
@@ -328,6 +473,32 @@ module.exports = {
|
|
|
*/
|
|
|
getAll: function (expand, query) {
|
|
|
return getAllObjects('access-lists', expand, query);
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param {Object} data
|
|
|
+ */
|
|
|
+ create: function (data) {
|
|
|
+ return fetch('post', 'access-lists', data);
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param {Object} data
|
|
|
+ * @param {Integer} data.id
|
|
|
+ * @returns {Promise}
|
|
|
+ */
|
|
|
+ update: function (data) {
|
|
|
+ let id = data.id;
|
|
|
+ delete data.id;
|
|
|
+ return fetch('put', 'access-lists/' + id, data);
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param {Integer} id
|
|
|
+ * @returns {Promise}
|
|
|
+ */
|
|
|
+ delete: function (id) {
|
|
|
+ return fetch('delete', 'access-lists/' + id);
|
|
|
}
|
|
|
},
|
|
|
|