AIdeaText commited on
Commit
b42f7dc
·
verified ·
1 Parent(s): a1f5ad4

Update modules/database/sql_db.py

Browse files
Files changed (1) hide show
  1. modules/database/sql_db.py +8 -3
modules/database/sql_db.py CHANGED
@@ -13,11 +13,13 @@ logger = logging.getLogger(__name__)
13
  def get_user(username, role=None):
14
  container = get_container("users")
15
  try:
 
16
  query = f"SELECT * FROM c WHERE c.id = '{username}'"
17
  if role:
18
  query += f" AND c.role = '{role}'"
19
  items = list(container.query_items(
20
- query=query # Removido enable_cross_partition_query
 
21
  ))
22
  return items[0] if items else None
23
  except Exception as e:
@@ -36,6 +38,8 @@ def get_student_user(username):
36
  def get_teacher_user(username):
37
  return get_user(username, role='Profesor')
38
 
 
 
39
  def create_user(username, password, role, additional_info=None):
40
  """Crea un nuevo usuario"""
41
  container = get_container("users")
@@ -45,7 +49,7 @@ def create_user(username, password, role, additional_info=None):
45
 
46
  try:
47
  user_data = {
48
- 'id': username,
49
  'password': password,
50
  'role': role,
51
  'timestamp': datetime.now(timezone.utc).isoformat(),
@@ -54,7 +58,7 @@ def create_user(username, password, role, additional_info=None):
54
 
55
  container.create_item(
56
  body=user_data,
57
- partition_key=username
58
  )
59
  logger.info(f"Usuario {role} creado: {username}")
60
  return True
@@ -63,6 +67,7 @@ def create_user(username, password, role, additional_info=None):
63
  logger.error(f"Error al crear usuario {role}: {str(e)}")
64
  return False
65
 
 
66
  def create_student_user(username, password, additional_info=None):
67
  return create_user(username, password, 'Estudiante', additional_info)
68
 
 
13
  def get_user(username, role=None):
14
  container = get_container("users")
15
  try:
16
+ # Para una búsqueda por id (que es el partition key), no necesitamos cross partition query
17
  query = f"SELECT * FROM c WHERE c.id = '{username}'"
18
  if role:
19
  query += f" AND c.role = '{role}'"
20
  items = list(container.query_items(
21
+ query=query,
22
+ partition_key=username # Especificamos el partition key
23
  ))
24
  return items[0] if items else None
25
  except Exception as e:
 
38
  def get_teacher_user(username):
39
  return get_user(username, role='Profesor')
40
 
41
+
42
+ ###########################################
43
  def create_user(username, password, role, additional_info=None):
44
  """Crea un nuevo usuario"""
45
  container = get_container("users")
 
49
 
50
  try:
51
  user_data = {
52
+ 'id': username, # Este será usado como partition key
53
  'password': password,
54
  'role': role,
55
  'timestamp': datetime.now(timezone.utc).isoformat(),
 
58
 
59
  container.create_item(
60
  body=user_data,
61
+ partition_key=username # Usamos el username (que es el id) como partition key
62
  )
63
  logger.info(f"Usuario {role} creado: {username}")
64
  return True
 
67
  logger.error(f"Error al crear usuario {role}: {str(e)}")
68
  return False
69
 
70
+ ###########################################
71
  def create_student_user(username, password, additional_info=None):
72
  return create_user(username, password, 'Estudiante', additional_info)
73