Code Duplication    Length = 29-35 lines in 2 locations

kytos/core/auth.py 2 locations

@@ 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):