flamerest 1.0.105 → 1.0.107
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/REST.js +32 -16
- package/package.json +1 -1
package/REST.js
CHANGED
|
@@ -57,7 +57,7 @@ class FLAMEREST {
|
|
|
57
57
|
/**
|
|
58
58
|
*
|
|
59
59
|
* @param {string} url Адрес
|
|
60
|
-
* @param {object|string} params Параметры, которые надо передать, могут быть в виде объекта или строки
|
|
60
|
+
* @param {object|string|FormData} params Параметры, которые надо передать, могут быть в виде объекта или строки
|
|
61
61
|
* @param {string} type Тип
|
|
62
62
|
* @param {string} responseType Тип ответа: json или blob
|
|
63
63
|
* @param {Object} customHeaders объект с доп заголовками, которые надо включить в запрос
|
|
@@ -66,11 +66,16 @@ class FLAMEREST {
|
|
|
66
66
|
|
|
67
67
|
// Нормализуем параметры, если они есть
|
|
68
68
|
if (typeof params === "object" && params !== null) {
|
|
69
|
-
|
|
69
|
+
|
|
70
|
+
if (!(params instanceof FormData))
|
|
71
|
+
params = JSON.stringify(params);
|
|
72
|
+
|
|
70
73
|
type = 'POST';
|
|
71
74
|
responseType = 'json';
|
|
75
|
+
|
|
72
76
|
}
|
|
73
77
|
|
|
78
|
+
|
|
74
79
|
// Подставляем сервер автоматом в запрос начинающийся с /
|
|
75
80
|
if (url[0] === '/' && url[1] !== '/') url = this.SERVER + url;
|
|
76
81
|
|
|
@@ -103,12 +108,14 @@ class FLAMEREST {
|
|
|
103
108
|
let requestBody = {
|
|
104
109
|
method: type,
|
|
105
110
|
mode: 'cors',
|
|
106
|
-
headers: Object.assign(
|
|
107
|
-
|
|
108
|
-
|
|
111
|
+
headers: Object.assign(
|
|
112
|
+
(params instanceof FormData ? {} : {
|
|
113
|
+
'Content-type': 'application/json; charset=utf-8'
|
|
114
|
+
}), customHeaders)
|
|
109
115
|
};
|
|
110
116
|
|
|
111
117
|
if (type !== 'GET')
|
|
118
|
+
// Принимает и formData тоже и чистую json строку
|
|
112
119
|
requestBody.body = params;
|
|
113
120
|
|
|
114
121
|
// Создаём подпись каждого запроса
|
|
@@ -117,8 +124,8 @@ class FLAMEREST {
|
|
|
117
124
|
SIGN = await this.hmac_sha256(requestBody.body, user_hash);
|
|
118
125
|
}
|
|
119
126
|
catch (ex) {
|
|
120
|
-
window.alert('Can`t create a request');
|
|
121
|
-
throw ex;
|
|
127
|
+
// window.alert('Can`t create a request');
|
|
128
|
+
// throw ex;
|
|
122
129
|
}
|
|
123
130
|
|
|
124
131
|
requestBody.headers['sign'] = SIGN;
|
|
@@ -458,7 +465,8 @@ class FLAMEREST {
|
|
|
458
465
|
table = table.replace(/_/g, "");
|
|
459
466
|
|
|
460
467
|
// Подготовить значения
|
|
461
|
-
|
|
468
|
+
if (!(values instanceof FormData))
|
|
469
|
+
await this.prepare(values);
|
|
462
470
|
|
|
463
471
|
if (appendTo === undefined) appendTo = null;
|
|
464
472
|
if (insertAfter === undefined) insertAfter = null;
|
|
@@ -468,7 +476,7 @@ class FLAMEREST {
|
|
|
468
476
|
+ (appendTo !== null ? '&appendTo=' + appendTo : '')
|
|
469
477
|
+ (insertAfter !== null ? '&insertAfter=' + insertAfter : '')
|
|
470
478
|
+ (insertFirst !== null ? '&insertFirst=' + insertFirst : '')
|
|
471
|
-
, JSON.stringify(values), 'POST');
|
|
479
|
+
, (values instanceof FormData ? values : JSON.stringify(values)), 'POST');
|
|
472
480
|
|
|
473
481
|
}
|
|
474
482
|
|
|
@@ -506,7 +514,8 @@ class FLAMEREST {
|
|
|
506
514
|
table = table.replace(/_/g, "");
|
|
507
515
|
|
|
508
516
|
// Подготовить значения
|
|
509
|
-
|
|
517
|
+
if (!(values instanceof FormData))
|
|
518
|
+
await this.prepare(values);
|
|
510
519
|
|
|
511
520
|
if (appendTo === undefined) appendTo = null;
|
|
512
521
|
if (insertAfter === undefined) insertAfter = null;
|
|
@@ -516,7 +525,7 @@ class FLAMEREST {
|
|
|
516
525
|
+ (appendTo !== null ? '&appendTo=' + appendTo : '')
|
|
517
526
|
+ (insertAfter !== null ? '&insertAfter=' + insertAfter : '')
|
|
518
527
|
+ (insertFirst !== null ? '&insertFirst=' + insertFirst : '')
|
|
519
|
-
, JSON.stringify(values), 'PATCH');
|
|
528
|
+
, (values instanceof FormData ? values : JSON.stringify(values)), 'PATCH');
|
|
520
529
|
}
|
|
521
530
|
|
|
522
531
|
/**
|
|
@@ -638,9 +647,12 @@ class FLAMEREST {
|
|
|
638
647
|
* Подготовить объект под загрузку: загрузить данные из элементов Input [type=file] / Clipboard / DataTransfer [Drag&Drop/Clipboard]
|
|
639
648
|
* @param {object} values
|
|
640
649
|
*/
|
|
641
|
-
async prepare(values) {
|
|
650
|
+
async prepare(values, asFormData = false) {
|
|
642
651
|
|
|
643
652
|
// Если в один из параметров передан FileList или input[type=file], т.е. нужно загрузить файлы
|
|
653
|
+
|
|
654
|
+
const formData = new FormData();
|
|
655
|
+
|
|
644
656
|
for (let val in values) {
|
|
645
657
|
|
|
646
658
|
// Пустые значения нам не нужны
|
|
@@ -676,10 +688,12 @@ class FLAMEREST {
|
|
|
676
688
|
if (value instanceof FileList) {
|
|
677
689
|
let newValues = [];
|
|
678
690
|
value = Array.from(value);
|
|
679
|
-
for (let
|
|
691
|
+
for (let index = 0; index < value.length; index++) {
|
|
692
|
+
formData.append(val + "[]", value[index])
|
|
680
693
|
newValues.push({
|
|
681
|
-
'name': value[
|
|
682
|
-
'data': await this.readFileAsync(value[
|
|
694
|
+
'name': value[index].name,
|
|
695
|
+
'data': asFormData ? null : await this.readFileAsync(value[index]),
|
|
696
|
+
'number': index, // Здесь индекс
|
|
683
697
|
'id': this.generateID(32)
|
|
684
698
|
});
|
|
685
699
|
}
|
|
@@ -703,7 +717,9 @@ class FLAMEREST {
|
|
|
703
717
|
}
|
|
704
718
|
}
|
|
705
719
|
|
|
706
|
-
|
|
720
|
+
formData.append("json", JSON.stringify(values));
|
|
721
|
+
|
|
722
|
+
return asFormData ? formData : values;
|
|
707
723
|
|
|
708
724
|
}
|
|
709
725
|
|