AIdeaText commited on
Commit
d30133e
verified
1 Parent(s): 80a324f

Update modules/database/sql_db.py

Browse files
Files changed (1) hide show
  1. modules/database/sql_db.py +68 -0
modules/database/sql_db.py CHANGED
@@ -201,3 +201,71 @@ def get_user_total_time(username):
201
  except Exception as e:
202
  logger.error(f"Error obteniendo tiempo total: {str(e)}")
203
  return 0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
201
  except Exception as e:
202
  logger.error(f"Error obteniendo tiempo total: {str(e)}")
203
  return 0
204
+
205
+
206
+ # Agregar estas funciones en sql_db.py
207
+
208
+ def update_student_user(username, new_info):
209
+ """Actualiza la informaci贸n de un estudiante"""
210
+ container = get_container("users")
211
+ try:
212
+ # Primero obtener el usuario existente
213
+ user = get_student_user(username)
214
+ if user:
215
+ # Actualizar la informaci贸n
216
+ if 'additional_info' in user:
217
+ user['additional_info'].update(new_info)
218
+ else:
219
+ user['additional_info'] = new_info
220
+
221
+ # Actualizar el documento usando el partition key correcto
222
+ container.upsert_item(
223
+ body=user,
224
+ partition_key=username
225
+ )
226
+ logger.info(f"Informaci贸n del estudiante actualizada: {username}")
227
+ return True
228
+ else:
229
+ logger.warning(f"Intento de actualizar estudiante no existente: {username}")
230
+ return False
231
+ except Exception as e:
232
+ logger.error(f"Error al actualizar informaci贸n del estudiante {username}: {str(e)}")
233
+ return False
234
+
235
+ def delete_student_user(username):
236
+ """Elimina un estudiante"""
237
+ container = get_container("users")
238
+ try:
239
+ # Verificar que el usuario existe y es un estudiante
240
+ user = get_student_user(username)
241
+ if user:
242
+ # Eliminar usando el partition key correcto
243
+ container.delete_item(
244
+ item=user['id'],
245
+ partition_key=username
246
+ )
247
+ logger.info(f"Estudiante eliminado: {username}")
248
+ return True
249
+ else:
250
+ logger.warning(f"Intento de eliminar estudiante no existente: {username}")
251
+ return False
252
+ except Exception as e:
253
+ logger.error(f"Error al eliminar estudiante {username}: {str(e)}")
254
+ return False
255
+
256
+ __all__ = [
257
+ 'get_user',
258
+ 'get_admin_user',
259
+ 'get_student_user',
260
+ 'get_teacher_user',
261
+ 'create_user',
262
+ 'create_student_user',
263
+ 'create_teacher_user',
264
+ 'create_admin_user',
265
+ 'update_student_user', # Agregada
266
+ 'delete_student_user', # Agregada
267
+ 'record_login',
268
+ 'record_logout',
269
+ 'get_recent_sessions',
270
+ 'get_user_total_time'
271
+ ]