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.
- package/REST.d.ts +70 -0
- package/REST.js +43 -11
- 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
|
-
|
|
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
|
-
|
|
90
|
+
|
|
91
|
+
throw {
|
|
81
92
|
status: response.status,
|
|
82
|
-
message: response.statusText
|
|
83
|
-
|
|
84
|
-
|
|
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
|
-
|
|
154
|
-
|
|
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;
|