Skip to content
Snippets Groups Projects
Commit 80ba5da9 authored by Davor's avatar Davor
Browse files

added more information about user batch creation

parent 310b7ed8
No related branches found
No related tags found
1 merge request!55Resolve "Merge dashboard and dashboard-backend repos"
......@@ -5,6 +5,8 @@ from helpers import KratosApi
from flask import current_app
from helpers.error_handler import KratosError
class UserService:
no_access_role_id = 3
......@@ -101,21 +103,44 @@ class UserService:
# for every item in array call Kratos - check if there can be batch create on Kratos
# - if yes, what happens with the batch if there is at least one existing email
created_users = []
not_created_users = []
existing_users = []
creation_failed_users = []
for user_data in data['users']:
user_mail = user_data["email"]
if not user_mail:
user_email = user_data["email"]
if not user_email:
return
try:
user = UserService.post_user(user_data)
current_app.logger.info(f"Batch create user: {user_mail}")
created_users.append(user)
UserService.post_user(user_data)
current_app.logger.info(f"Batch create user: {user_email}")
created_users.append(user_email)
except KratosError as err:
status_code = err.args[1]
if status_code == 409:
existing_users.append(user_email)
elif status_code == 400:
creation_failed_users.append(user_email)
current_app.logger.error(
f"Exception calling Kratos: {err} on creating user: {user_email} {status_code}")
except Exception as error:
current_app.logger.error(f"Exception calling Kratos: {error} on creating user: {user_mail}")
not_created_users.append(user_mail)
return {"created_users": created_users, "not_created_users": not_created_users}
current_app.logger.error(
f"Exception: {error} on creating user: {user_email}")
creation_failed_users.append(user_email)
success_response = {}
existing_response = {}
failed_response = {}
if created_users:
success_response = {"users": created_users,
"message": f"{len(created_users)} users created"}
if existing_users:
existing_response = {
"users": existing_users, "message": f"{len(existing_users)} users already exist: {', '.join(existing_users)}"}
if creation_failed_users:
failed_response = {"users": creation_failed_users,
"message": f"{len(creation_failed_users)} users failed to create: {', '.join(creation_failed_users)}"}
return {"success": success_response, "existing": existing_response, "failed": failed_response}
@staticmethod
def __insertAppRoleToUser(userId, userRes):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment