flamerest 1.0.16 → 1.0.19

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 +70 -0
  2. package/REST.js +43 -11
  3. package/package.json +2 -1
package/REST.d.ts ADDED
@@ -0,0 +1,70 @@
1
+ /**
2
+ *
3
+ * @param {string} url Адрес
4
+ * @param {object|string} params Параметры, которые надо передать, могут быть в виде объекта или строки
5
+ * @param {string} type Тип
6
+ * @param {string} responseType Тип ответа: json или blob
7
+ */
8
+ export function request(url: string, params: object|string, type:string = 'GET', responseType:string = 'json'): object
9
+
10
+ /**
11
+ * Получить выборку из таблицы через REST
12
+ * @param table
13
+ * @param fields
14
+ * @param where Позволяет делать выборку из связанных таблиц, надо только их указать через название таблицы sites.id=5, и указать колонку в expand
15
+ * @param expand
16
+ * @param sortfields
17
+ * @param page
18
+ * @param perPage
19
+ * @param RemoveDuplicates
20
+ * @param format
21
+ * @param titles Это чтобы мы могли контроллить какие названия полей мы будет загружать при экспорте, чтобы они были как в таблице
22
+ * @return Promise<>
23
+ */
24
+ export function get(table: string, where, expand, fields, sortfields, page, perPage, RemoveDuplicates, format, titles): object
25
+
26
+ /**
27
+ * Создать новую запись
28
+ * @param table
29
+ * @param values
30
+ */
31
+ export function create(table: string, values: object)
32
+
33
+ /**
34
+ * Удалить запись
35
+ * @param table
36
+ * @param id
37
+ */
38
+ export function remove(table, id)
39
+
40
+ /**
41
+ * Редактировать значения
42
+ * @param table
43
+ * @param ID
44
+ * @param values
45
+ */
46
+ export function edit(table, ID, values)
47
+
48
+ /**
49
+ * Получить схемы всех таблиц
50
+ */
51
+ export function getCRUDInfo(): object
52
+
53
+ /**
54
+ * Авторизоваться
55
+ * @param username
56
+ * @param password
57
+ */
58
+ export function auth(username: string, password: string);
59
+
60
+ /**
61
+ * Зарегистрироваться с этим логином и паролем
62
+ * @param username
63
+ * @param password
64
+ */
65
+ export function signup(username, password);
66
+
67
+ /**
68
+ * Выйти из системы
69
+ */
70
+ export function logout(): object;
package/REST.js CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- export default class FLAMEREST {
2
+ class FLAMEREST {
3
3
 
4
4
  constructor(server_address, localhost_endpoint, unauthorized_callback){
5
5
 
@@ -76,12 +76,24 @@ export default class FLAMEREST {
76
76
 
77
77
  // Ответ с ошибкой
78
78
  if (!response.ok) {
79
+
80
+ // Тело ошибки
81
+ let error_body = null;
82
+ try {
83
+ error_body = response.json();
84
+ }
85
+ catch (exjson){
86
+ error_body = response.text();
87
+ }
88
+
79
89
  console.log('Ошибка загрузки [' + response.status + '] ' + url + ": " + response.statusText);
80
- reject({
90
+
91
+ throw {
81
92
  status: response.status,
82
- message: response.statusText
83
- });
84
- return;
93
+ message: response.statusText,
94
+ body: error_body
95
+ }
96
+
85
97
  }
86
98
 
87
99
  // Загрузка успешна
@@ -144,16 +156,25 @@ export default class FLAMEREST {
144
156
  ResolveBody.data = response;
145
157
  resolve(ResolveBody);
146
158
 
147
- }).catch(err=>{
159
+ }).catch(async err=>{
148
160
 
149
- // Ошибка загрузки, не связанная с ХТТП, например обрыв соединения
161
+ // Ошибка загрузки любого типа
150
162
  // TODO: на этом этапе стоит сделать, чтобы он пробовал повторить запрос, если это GET
151
163
 
164
+ if(typeof err !== 'object' || err.message === undefined) {
165
+ err = {
166
+ status: 0,
167
+ message: '',
168
+ };
169
+ }
170
+
171
+ if(typeof err.body === 'object') {
172
+ err.body = await err.body;
173
+ }
174
+
152
175
  console.log('Ошибка загрузки [' + 0 + '] ' + url + ": " + err.message);
153
- reject({
154
- status: 0,
155
- message: err.message
156
- });
176
+
177
+ reject(err);
157
178
 
158
179
  })
159
180
 
@@ -354,8 +375,19 @@ export default class FLAMEREST {
354
375
  return this.request(this.SERVER + '/auth/auth', JSON.stringify({login: username, password: password}), 'POST');
355
376
  }
356
377
 
378
+ signup(username, password) {
379
+ return this.request(this.SERVER + '/auth/signup', JSON.stringify({login: username, password: password}), 'POST');
380
+ }
381
+
357
382
  logout() {
358
383
  return this.request(this.SERVER + '/auth/logout', '{}', 'POST');
359
384
  }
360
385
 
361
386
  }
387
+
388
+
389
+ if(!window.REST) {
390
+ window.REST = new FLAMEREST();
391
+ }
392
+
393
+ export default window.REST;
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "flamerest",
3
- "version": "1.0.16",
3
+ "version": "1.0.19",
4
4
  "description": "",
5
5
  "main": "REST.js",
6
+ "typings": "./REST.d.ts",
6
7
  "scripts": {},
7
8
  "repository": {
8
9
  "type": "git",