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