-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathagent.ts
280 lines (241 loc) · 11.5 KB
/
agent.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
import React from 'react';
import { Course, CourseToSave } from "./model/course";
import { topDangerMessage } from './utils/message';
/**
* 1. Запрос на всего юзера при заходе в приложение по id user - get
* 2. Запрос на добавление юзера (опекаемого) через регу -> {2 request: 1. user (рега) -> id user, 2.id current user, id user}
* 3. Запрос на авторизацию -> email, password -> получаем: user | null/bad request - get
* 4. Запрос на статистику по id курса - get
* 5. Запрос на добавление юзера (регистрация) -> user (рега) -> id user, есть в бд или нет - post
* 6. Запрос на восстановление пароля - email get -> code -> переход на экран изменения пароля
* 7. Запрос на изменение пароля -> email, password (bad request, 200) -> запрос на авторизацию
* 8. Добавление курса -> id user, course -> получаем id course
* 9. Добавление дозатора (инструкция) -> serial number spc, id user -> bad request, если нет в бд такого серийника,
* тогда выводим повторную инструкцию -> пользователь повторяет пока не получится -> 200 -> добавляем серийный номер в юзера
* 10. Мои дозаторы -> список - серийник + юзер -> из
* 11. Хочу стать самостоятельной (isDepend) -> id user ->
* 12. Запрос на добавление юзера (опекаемого) email -> id user / bad request -> email + ссылка -> запрос при переходе по ссылке (13)
* 13. Запрос на связывание пользователей -> id1 -опекающий, id2 -опекаемый
*
*/
//If response is in json then in success
// .then((responseJson) => {
// alert(JSON.stringify(responseJson));
// console.log(responseJson);
// })
// //If response is not in json then in error
// .catch((error) => {
// alert(JSON.stringify(error));
// console.error(error);
// });
const url = 'http://5d8190488012.ngrok.io';
// User
// 1. Запрос на регистрацию юзера
// POST /users/registration
// >> JSON: RegisterUserRequest {String username, String email, String password, Boolean isDependent}
// << JSON: RegisterUserResponse {Long userId} | UserRegistrationError {String error}, HttpStatus
export const registration = (user: { username: string, email: string, password: string, isDependent: boolean }): Promise<any> => (
//POST request
fetch(url + '/users/registration', {
method: 'POST', //Request Type
body: JSON.stringify(user), //post body
headers: {
//Header Defination
'Content-Type': 'application/json;charset=UTF-8',
},
}).then((response) => response.json()).catch((error) => topDangerMessage(error.message))
);
// 2. Запрос на авторизацию юзера
// POST /users/auth
// >> JSON: AuthUserRequest {String email, String password}
// << JSON: UserApiDto {//Поля пользователя} | UserNotFoundException {String error} | InvalidUserPasswordException {String error}, HttpStatus
export const auth = (user: { email: string, password: string }): Promise<any> => (
//POST request
fetch(url + '/users/auth', {
method: 'POST', //Request Type
body: JSON.stringify(user), //post body
headers: {
//Header Defination
'Content-Type': 'application/json;charset=UTF-8',
},
}).then((response) => response.json()).catch((error) => topDangerMessage(error.message))
);
// 3. Запрос на отправку кода для подтверждения восстановления пароля юзера
// POST /users/passwordRecovery
// >> JSON: String email
// << JSON: HandlePasswordRecoveryResponseDto {String code} | IncorrectUserEmailException {String error}, HttpStatus
export const getCode = (user: { email: string }): Promise<any> => (
//POST request
fetch(url + '/users/passwordRecovery', {
method: 'POST', //Request Type
body: JSON.stringify(user), //post body
headers: {
//Header Defination
'Content-Type': 'application/json;charset=UTF-8',
},
}).then((response) => response.json()).catch((error) => topDangerMessage(error.message))
);
// 4. Запрос на изменение пароля юзера
// PUT /users/passwordChange
// >> JSON: ChangePasswordRequest {String email, String password}
// << JSON: IncorrectUserEmailException {String error}, HttpStatus
export const changePassword = (user: { email: string, password: string }): Promise<any> => (
//POST request
fetch(url + '/users/passwordChange', {
method: 'PUT', //Request Type
body: JSON.stringify(user), //post body
headers: {
//Header Defination
'Content-Type': 'application/json;charset=UTF-8',
},
}).then((response) => response.json()).catch((error) => console.log(error.message))
);
// 5. Запрос на изменение имени юзера
// PUT /users/{userId}/nameUpdate
// >> PathVariable: Long userId, JSON: String username
// << HttpStatus
export const changeUsername = (id: number, user: { name: string }): Promise<any> => (
//POST request
fetch(url + '/users/' + id + '/nameUpdate', {
method: 'PUT', //Request Type
body: JSON.stringify(user), //post body
headers: {
//Header Defination
'Content-Type': 'application/json;charset=UTF-8',
},
}).then((response) => response.json()).catch((error) => console.log(error.message))
);
// 6. Запрос на изменение зависимости юзера
// PUT /users/{userId}/dependencyUpdate
// >> PathVariable: Long userId, JSON: Boolean isDependent
// << HttpStatus
export const changeDependency = (id: number, user: { isDependent: boolean }): Promise<any> => (
//POST request
fetch(url + '/users/' + id + '/dependencyUpdate', {
method: 'PUT', //Request Type
body: JSON.stringify(user), //post body
headers: {
//Header Defination
'Content-Type': 'application/json;charset=UTF-8',
},
}).then((response) => response.json()).catch((error) => console.log(error.message))
);
// 7. Запрос на получение юзера
// GET /user/{userId}
// >> PathVariable: Long userId
// << JSON: UserApiDto {//Поля пользователя}, HttpStatus
export const getUserFromApi = (id: number): Promise<any> => (
//GET request
fetch(url + '/users/' + id, {
method: 'GET',
//Request Type
}).then((response) => response.json()).catch((error) => topDangerMessage(error.message))
);
// Monitoring
// 8. Запрос на связывание юзеров
// POST /monitoring
// >> JSON: SaveMonitoringRequest {Long caretakerId, Long spcOwnerId}
// << HttpStatus
export const associateUsers = (users: { caretakerId: number, spcOwnerId: number }): Promise<any> => (
//POST request
fetch(url + '/monitoring', {
method: 'POST',
body: JSON.stringify(users), //post body
headers: {
//Header Defination
'Content-Type': 'application/json;charset=UTF-8',
},
}).then((response) => response.json()).catch((error) => console.log(error.message))
);
// 9. Запрос на отправку кода для подтверждения опеки над зарегистрированным юзером
// POST /monitoring/notification
// >> JSON: String email
// << JSON: HandleMonitoringNotificationResponseDto {String code, String addresseeEmail, String addresseeName, Long spcOwnerId}, HttpStatus
export const getRegisterCode = (user: { email: string }): Promise<any> => (
//POST request
fetch(url + '/monitoring/notification', {
method: 'POST',
body: JSON.stringify(user), //post body
headers: {
//Header Defination
'Content-Type': 'application/json;charset=UTF-8',
},
}).then((response) => response.json()).catch((error) => console.log(error.message))
);
// Course
// 10. Запрос на добавление курса
// POST /courses
// >> JSON: SaveCourseRequest {CourseDto course, Long userId}
// << JSON: Long courseId, HttpStatus
export const addCourse = (courseInfo: { course: CourseToSave, userId: number }): Promise<any> => (
//POST request
fetch(url + '/courses', {
method: 'POST',
body: JSON.stringify(courseInfo), //post body
headers: {
//Header Defination
'Content-Type': 'application/json;charset=UTF-8',
},
}).then((response) => response.json()).catch((error) => topDangerMessage(error.message))
);
// 11. Запрос на удаление курса
// DELETE /courses/{courseId}
// >> PathVariable: Long courseId
// << HttpStatus
export const delCourse = (courseId: number): Promise<any> => (
//POST request
fetch(url + '/courses/' + courseId, {
method: 'DELETE',
}).then((response) => response.json()).catch((error) => console.log(error.message))
);
// 12. Запрос на получение статистики по курсу
// GET /courses/{courseId}/statistics
// >> PathVariable: Long courseId
// << JSON: List<TakeDto> takes, HttpStatus
export const getCourseTakes = (courseId: number): Promise<any> => (
fetch(url + '/courses/' + courseId + '/statistics', {
method: 'GET',
}).then((response) => response.json()).catch((error) => console.log(error.message))
);
// Spc
// 13. Запрос на связывание дозатора и юзера
// PUT /spc/{serialNumber}/spcOwnerUpdate
// >> PathVariable: String serialNumber, JSON: Long userId
// << SpcNotFoundException {String error}, HttpStatus
export const changeSpcOwner = (spc: string, user: { userId: number }): Promise<any> => (
fetch(url + '/spc/spcOwnerUpdate?serialNumber=' + spc, {
method: 'PUT',
body: JSON.stringify(user), //post body
headers: {
//Header Defination
'Content-Type': 'application/json;charset=UTF-8',
},
}).then((response) => response.json()).catch((error) => console.log(error.message))
);
// 14. Запрос на получение данных о существовании связи дозатора и юзера
// GET /spc/{serialNumber}/ownership
// >> PathVariable: String serialNumber
// << JSON: Boolean isSpcOwned | SpcNotFoundException {String error}, HttpStatus
export const isSpcOwned = (spc: string): Promise<any> => (
fetch(url + '/spc/ownership?serialNumber=' + spc, {
method: 'GET',
}).then((response) => response.json())
);
// 15. Разрыв связи дозатора и юзер
// PUT /spc/{serialNumber}/spcOwnerClean
// >> PathVariable: String serialNumber
// << SpcNotFoundException {String error}, HttpStatus
export const delSpcOwner = (spc: string): Promise<any> => (
fetch(url + '/spc/spcOwnerClean?serialNumber=' + spc, {
method: 'PUT',
}).then((response) => response.json()).catch((error) => console.log(error.message))
);
// 16. Вызов оповещающего сигнала дозатора
// POST /spc/{serialNumber}/connectionTest
// >> PathVariable: String serialNumber
// << SpcNotFoundException {String error}, HttpStatus
export const connectionTest = (spc: string): Promise<any> => (
fetch(url + '/spc/connectionTest?serialNumber=' + spc, {
method: 'POST',
}).then((response) => response.json()).catch((error) => console.log(error.message))
);