getSessionByUserCubeName method
Método para obtener una sesión específica utilizando el ID de usuario, el nombre de la sesión y el tipo de cubo.
Este método devuelve una sesión asociada a un usuario y un tipo de cubo específico, buscando
por el idUser
, sessionName
y idCubeType
.
Parámetros:
idUser
: ID del usuario.sessionName
: Nombre de la sesión.idCubeType
: ID del tipo de cubo.
Retorna:
Session?
: Objeto Session encontrado, onull
si no se encuentra la sesión.
Implementation
Future<SessionClass?> getSessionByUserCubeName(
int idUser, String sessionName, int? idCubeType) async {
final db = await DatabaseHelper.database;
try {
// CONSULTA PARA OBTENER LA SESION BASADA EN EL ID DEL USUARIO, EL NOMBRE DE LA SESION
// Y TIPO DE CUBO
final result = await db.query(
'sessionTime',
where: 'idUser = ? AND sessionName = ? AND idCubeType = ?',
whereArgs: [idUser, sessionName, idCubeType],
);
if (result.isNotEmpty) {
// SI SE ENCUENTRA LA SESION, SE MAPEA LOS DATOS Y SE DEVOLVE LA SESION
final session = result.first;
return SessionClass(
idSession: session['idSession'] as int?,
idUser: session['idUser'] as int,
sessionName: session['sessionName'] as String,
idCubeType: session['idCubeType'] as int,
creationDate: session['creationDate'] as String,
);
} else {
// SI NO SE ENCONTRO NINGUNA SESION, RETORNAMOS NULL
DatabaseHelper.logger.w(
"No se encontro la sesion para el usuario con id $idUser, nombre de sesion $sessionName y id de tipo de cubo $idCubeType");
return null;
} // VERIFICAMOS SI EL RESULTADO ES NULO O NO
} catch (e) {
// SI DA ERROR, DEVOLVEMOS NULL
DatabaseHelper.logger.e(
"Error para encontrar la sesion para el usuario con id $idUser, nombre de sesion $sessionName y id de tipo de cubo $idCubeType");
return null;
}
}