in components/user_management/src/routes/user.py [0:0]
def update_inspace_user_field(skip: Optional[int] = 0,
limit: Optional[int] = 100):
"""
Update Inspace User Field Value
"""
try:
if not is_inspace_enabled():
raise ValidationError("you don't have permission to access this endpoint")
# ids for which inspace user was created
created_inspace_users = []
# ids for which inspace user creation failed
failed_user_ids = []
# fields where inspace mapping was set as True
inspace_users = []
# fields where inspace mapping was set as False
non_inspace_users = []
# users for which inspace user already exists
already_created_inspace_users = []
# users whose document was not modified
non_modified_users = []
response_message = ""
allowed_inspace_user_types = ["learner"]
allowed_inspace_user_types.extend(STAFF_USERS)
users = User.collection.order("-created_time").filter(
"is_deleted", "==", False).offset(skip).fetch(limit)
for user in users:
if user.inspace_user is None:
if user.user_type in allowed_inspace_user_types:
user.inspace_user = {"is_inspace_user": True, "inspace_user_id": ""}
user.update()
inspace_users.append(user.user_id)
else:
user.inspace_user = {"is_inspace_user": False, "inspace_user_id": ""}
user.update()
non_inspace_users.append(user.user_id)
users = User.collection.order("-created_time").filter(
"is_deleted", "==", False).offset(skip).fetch(limit)
for user in users:
if user.user_type in allowed_inspace_user_types:
try:
if user.inspace_user.get("is_inspace_user") is False:
non_modified_users.append(user.user_id)
elif (user.inspace_user.get("is_inspace_user") is True
and user.inspace_user.get("inspace_user_id") == ""):
# ---- Inspace User creation ----
response_message = create_inspace_user_helper(user)
if response_message:
Logger.info(f"Inspace User Created for {user.user_id}")
created_inspace_users.append(user.user_id)
else:
already_created_inspace_users.append(user.user_id)
except Exception as e:
Logger.error(e)
Logger.error(traceback.print_exc())
failed_user_ids.append(user.user_id)
else:
non_modified_users.append(user.user_id)
return {
"success": True,
"message": response_message,
"data": {
"created_inspace_users": created_inspace_users,
"failed_inspace_user_creation": failed_user_ids,
"inspace_users_true": inspace_users,
"inspace_users_false": non_inspace_users,
"non_modified_users": non_modified_users,
"already_created_inspace_users": already_created_inspace_users
}
}
except ValidationError as e:
Logger.error(e)
Logger.error(traceback.print_exc())
raise BadRequest(str(e)) from e
except Exception as e:
Logger.error(e)
Logger.error(traceback.print_exc())
raise InternalServerError(str(e)) from e