getSessionByUserCubeName method

Future<SessionClass?> getSessionByUserCubeName(
  1. int idUser,
  2. String sessionName,
  3. int? idCubeType
)

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, o null 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;
  }
}