@@ 275-309 (lines=35) @@ | ||
272 | break |
|
273 | return response["answer"], response["code"] |
|
274 | ||
275 | @authenticated |
|
276 | def _delete_user(self, uid): |
|
277 | """Delete a user using Storehouse.""" |
|
278 | response = {} |
|
279 | ||
280 | def _delete_user_callback(_event, box, error): |
|
281 | nonlocal response |
|
282 | if not box: |
|
283 | response = { |
|
284 | "answer": f'User with uid {uid} not found', |
|
285 | "code": HTTPStatus.NOT_FOUND.value |
|
286 | } |
|
287 | elif error: |
|
288 | response = { |
|
289 | "answer": "User has not been deleted", |
|
290 | "code": HTTPStatus.INTERNAL_SERVER_ERROR.value, |
|
291 | } |
|
292 | else: |
|
293 | response = { |
|
294 | "answer": "User successfully deleted", |
|
295 | "code": HTTPStatus.OK.value, |
|
296 | } |
|
297 | ||
298 | content = { |
|
299 | "box_id": uid, |
|
300 | "namespace": self.namespace, |
|
301 | "callback": _delete_user_callback, |
|
302 | } |
|
303 | event = KytosEvent(name="kytos.storehouse.delete", content=content) |
|
304 | self.controller.buffers.app.put(event) |
|
305 | while True: |
|
306 | time.sleep(0.1) |
|
307 | if response: |
|
308 | break |
|
309 | return response["answer"], response["code"] |
|
310 | ||
311 | @authenticated |
|
312 | def _update_user(self, uid): |
|
@@ 201-229 (lines=29) @@ | ||
198 | del answer['data']['password'] |
|
199 | return answer, code |
|
200 | ||
201 | @authenticated |
|
202 | def _list_users(self): |
|
203 | """List all users using Storehouse.""" |
|
204 | response = {} |
|
205 | ||
206 | def _list_users_callback(_event, boxes, error): |
|
207 | nonlocal response |
|
208 | if error: |
|
209 | response = { |
|
210 | "answer": "Users cannot be listed", |
|
211 | "code": HTTPStatus.INTERNAL_SERVER_ERROR.value, |
|
212 | } |
|
213 | else: |
|
214 | response = { |
|
215 | "answer": {"users": boxes}, |
|
216 | "code": HTTPStatus.OK.value, |
|
217 | } |
|
218 | ||
219 | content = { |
|
220 | "namespace": self.namespace, |
|
221 | "callback": _list_users_callback, |
|
222 | } |
|
223 | event = KytosEvent(name="kytos.storehouse.list", content=content) |
|
224 | self.controller.buffers.app.put(event) |
|
225 | while True: |
|
226 | time.sleep(0.1) |
|
227 | if response: |
|
228 | break |
|
229 | return response["answer"], response["code"] |
|
230 | ||
231 | @authenticated |
|
232 | def _create_user(self): |