flamerest 1.0.24 → 1.0.27

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.
Files changed (3) hide show
  1. package/REST.d.ts +7 -0
  2. package/REST.js +44 -37
  3. package/package.json +1 -1
package/REST.d.ts CHANGED
@@ -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
@@ -1,7 +1,7 @@
1
1
 
2
2
  class FLAMEREST {
3
3
 
4
- constructor(server_address, localhost_endpoint, unauthorized_callback) {
4
+ constructor(server_address, localhost_endpoint, unauthorized_callback, version) {
5
5
 
6
6
  /**
7
7
  * Адрес серва
@@ -25,6 +25,11 @@ class FLAMEREST {
25
25
  */
26
26
  this.unauthorized_callback = unauthorized_callback;
27
27
 
28
+ /**
29
+ * Версия api
30
+ */
31
+ this.version = version ? version : 'v1';
32
+
28
33
  }
29
34
 
30
35
  install(Vue, options) {
@@ -300,7 +305,7 @@ class FLAMEREST {
300
305
  let responseType = "json";
301
306
 
302
307
  // Генерим запрос
303
- let query = this.SERVER + '/api/' + table;
308
+ let query = this.SERVER + '/api/' + this.version + '/' + table;
304
309
 
305
310
  let json = {};
306
311
 
@@ -373,24 +378,10 @@ class FLAMEREST {
373
378
  // Нормализуем имена таблиц
374
379
  table = table.replace(/_/g, "");
375
380
 
376
- // Если в один из параметров передан FileList или input[type=file], т.е. нужно загрузить файлы
377
- for (let val in values) {
378
- // Преобразуем
379
- if(values[val] instanceof HTMLInputElement && values[val].type === 'file') values[val] = values[val].files;
380
- if (values[val] instanceof FileList) {
381
- let newValues = [];
382
- values[val] = Array.from(values[val]);
383
- for (let file in values[val]) {
384
- newValues.push({
385
- 'name': values[val][file].name,
386
- 'data': await this.readFileAsync(values[val][file])
387
- });
388
- }
389
- values[val] = newValues;
390
- }
391
- }
381
+ // Подготовить значения
382
+ await this.prepare(values);
392
383
 
393
- return this.request(this.SERVER + '/api/' + table + '/create', JSON.stringify(values), 'POST');
384
+ return this.request(this.SERVER + '/api/' + this.version + '/' + table + '/create', JSON.stringify(values), 'POST');
394
385
 
395
386
  }
396
387
 
@@ -404,7 +395,7 @@ class FLAMEREST {
404
395
  // Нормализуем имена таблиц
405
396
  table = table.replace(/_/g, "");
406
397
 
407
- return this.request(this.SERVER + '/api/' + table + '/delete?id=' + id, '{}', 'DELETE');
398
+ return this.request(this.SERVER + '/api/' + this.version + '/' + table + '/delete?id=' + id, '{}', 'DELETE');
408
399
 
409
400
  }
410
401
 
@@ -419,24 +410,10 @@ class FLAMEREST {
419
410
  // Нормализуем имена таблиц
420
411
  table = table.replace(/_/g, "");
421
412
 
422
- // Если в один из параметров передан FileList или input[type=file], т.е. нужно загрузить файлы
423
- for (let val in values) {
424
- // Преобразуем
425
- if(values[val] instanceof HTMLInputElement && values[val].type === 'file') values[val] = values[val].files;
426
- if (values[val] instanceof FileList) {
427
- let newValues = [];
428
- values[val] = Array.from(values[val]);
429
- for (let file in values[val]) {
430
- newValues.push({
431
- 'name': values[val][file].name,
432
- 'data': await this.readFileAsync(values[val][file])
433
- });
434
- }
435
- values[val] = newValues;
436
- }
437
- }
413
+ // Подготовить значения
414
+ await this.prepare(values);
438
415
 
439
- return this.request(this.SERVER + '/api/' + table + '/update?id=' + ID, JSON.stringify(values), 'PATCH');
416
+ return this.request(this.SERVER + '/api/' + this.version + '/' + table + '/update?id=' + ID, JSON.stringify(values), 'PATCH');
440
417
  }
441
418
 
442
419
  /**
@@ -467,6 +444,36 @@ class FLAMEREST {
467
444
  return this.request(this.SERVER + '/auth/logout', '{}', 'POST');
468
445
  }
469
446
 
447
+
448
+ /**
449
+ * Подготовить объект под загрузку: загрузить данные из элементов [type=file]
450
+ * @param {object} values
451
+ */
452
+ async prepare(values) {
453
+
454
+ // Если в один из параметров передан FileList или input[type=file], т.е. нужно загрузить файлы
455
+ for (let val in values) {
456
+ // Преобразуем
457
+ if (values[val] instanceof HTMLInputElement && values[val].type === 'file') values[val] = values[val].files;
458
+ if (values[val] instanceof ClipboardEvent) values[val] = values[val].clipboardData.files;
459
+ if (values[val] instanceof DataTransfer) values[val] = values[val].files;
460
+ if (values[val] instanceof FileList) {
461
+ let newValues = [];
462
+ values[val] = Array.from(values[val]);
463
+ for (let file in values[val]) {
464
+ newValues.push({
465
+ 'name': values[val][file].name,
466
+ 'data': await this.readFileAsync(values[val][file])
467
+ });
468
+ }
469
+ values[val] = newValues;
470
+ }
471
+ }
472
+
473
+ return values;
474
+
475
+ }
476
+
470
477
  /**
471
478
  * Прочесть файл асинхронно
472
479
  * @param {File} file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flamerest",
3
- "version": "1.0.24",
3
+ "version": "1.0.27",
4
4
  "description": "",
5
5
  "main": "REST.js",
6
6
  "typings": "./REST.d.ts",