flamerest 1.0.22 → 1.0.25
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/README.md +4 -0
- package/REST.d.ts +8 -1
- package/REST.js +54 -14
- package/package.json +1 -1
package/README.md
CHANGED
package/REST.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @param {string} type Тип
|
|
6
6
|
* @param {string} responseType Тип ответа: json или blob
|
|
7
7
|
*/
|
|
8
|
-
export function request(url: string, params: object | string, type: string
|
|
8
|
+
export function request(url: string, params: object | string, type: string, responseType: string): object
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Получить выборку из таблицы через REST
|
|
@@ -85,3 +85,10 @@ export function signup(username: string, password: string);
|
|
|
85
85
|
* Выйти из системы
|
|
86
86
|
*/
|
|
87
87
|
export function logout(): object;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Подготовить объект под загрузку: загрузить данные из элементов [type=file]
|
|
91
|
+
* @param values
|
|
92
|
+
*/
|
|
93
|
+
export function prepare(values: object): object;
|
|
94
|
+
|
package/REST.js
CHANGED
|
@@ -368,23 +368,13 @@ class FLAMEREST {
|
|
|
368
368
|
* @param table
|
|
369
369
|
* @param values
|
|
370
370
|
*/
|
|
371
|
-
create(table, values) {
|
|
371
|
+
async create(table, values) {
|
|
372
372
|
|
|
373
373
|
// Нормализуем имена таблиц
|
|
374
374
|
table = table.replace(/_/g, "");
|
|
375
375
|
|
|
376
|
-
//
|
|
377
|
-
|
|
378
|
-
if (val instanceof FileList) {
|
|
379
|
-
let newValues = [];
|
|
380
|
-
for (let file in val) {
|
|
381
|
-
newValues.push({
|
|
382
|
-
'mime': 'jpg',
|
|
383
|
-
'size': 23,
|
|
384
|
-
'data': btoa(val)
|
|
385
|
-
});
|
|
386
|
-
}
|
|
387
|
-
}
|
|
376
|
+
// Подготовить значения
|
|
377
|
+
await this.prepare(values);
|
|
388
378
|
|
|
389
379
|
return this.request(this.SERVER + '/api/' + table + '/create', JSON.stringify(values), 'POST');
|
|
390
380
|
|
|
@@ -410,11 +400,14 @@ class FLAMEREST {
|
|
|
410
400
|
* @param ID
|
|
411
401
|
* @param values
|
|
412
402
|
*/
|
|
413
|
-
edit(table, ID, values) {
|
|
403
|
+
async edit(table, ID, values) {
|
|
414
404
|
|
|
415
405
|
// Нормализуем имена таблиц
|
|
416
406
|
table = table.replace(/_/g, "");
|
|
417
407
|
|
|
408
|
+
// Подготовить значения
|
|
409
|
+
await this.prepare(values);
|
|
410
|
+
|
|
418
411
|
return this.request(this.SERVER + '/api/' + table + '/update?id=' + ID, JSON.stringify(values), 'PATCH');
|
|
419
412
|
}
|
|
420
413
|
|
|
@@ -446,6 +439,53 @@ class FLAMEREST {
|
|
|
446
439
|
return this.request(this.SERVER + '/auth/logout', '{}', 'POST');
|
|
447
440
|
}
|
|
448
441
|
|
|
442
|
+
|
|
443
|
+
/**
|
|
444
|
+
* Подготовить объект под загрузку: загрузить данные из элементов [type=file]
|
|
445
|
+
* @param {object} values
|
|
446
|
+
*/
|
|
447
|
+
async prepare(values) {
|
|
448
|
+
|
|
449
|
+
// Если в один из параметров передан FileList или input[type=file], т.е. нужно загрузить файлы
|
|
450
|
+
for (let val in values) {
|
|
451
|
+
// Преобразуем
|
|
452
|
+
if (values[val] instanceof HTMLInputElement && values[val].type === 'file') values[val] = values[val].files;
|
|
453
|
+
if (values[val] instanceof FileList) {
|
|
454
|
+
let newValues = [];
|
|
455
|
+
values[val] = Array.from(values[val]);
|
|
456
|
+
for (let file in values[val]) {
|
|
457
|
+
newValues.push({
|
|
458
|
+
'name': values[val][file].name,
|
|
459
|
+
'data': await this.readFileAsync(values[val][file])
|
|
460
|
+
});
|
|
461
|
+
}
|
|
462
|
+
values[val] = newValues;
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
return values;
|
|
467
|
+
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
/**
|
|
471
|
+
* Прочесть файл асинхронно
|
|
472
|
+
* @param {File} file
|
|
473
|
+
* @returns {Promise<string>}
|
|
474
|
+
*/
|
|
475
|
+
readFileAsync(file) {
|
|
476
|
+
return new Promise((resolve, reject) => {
|
|
477
|
+
let reader = new FileReader();
|
|
478
|
+
|
|
479
|
+
reader.onloadend = () => {
|
|
480
|
+
resolve(reader.result);
|
|
481
|
+
};
|
|
482
|
+
|
|
483
|
+
reader.onerror = reject;
|
|
484
|
+
|
|
485
|
+
reader.readAsDataURL(file);
|
|
486
|
+
})
|
|
487
|
+
}
|
|
488
|
+
|
|
449
489
|
}
|
|
450
490
|
|
|
451
491
|
|