getSessionByUserAndName method

Future<SessionClass?> getSessionByUserAndName(
  1. int idUser,
  2. String sessionName
)

Método para obtener una sesión específica por el ID de usuario y el nombre de la sesión.

Este método obtiene una sesión asociada a un usuario específico utilizando el idUser y el sessionName.

Parámetros:

  • idUser: ID del usuario.
  • sessionName: Nombre de la sesión.

Retorna:

  • Session?: Objeto Session encontrado, o null si no se encuentra la sesión.

Implementation

Future<SessionClass?> getSessionByUserAndName(
    int idUser, String sessionName) async {
  try {
    // CONSULTA PARA OBTENER LA SESION BASADA EN EL ID DEL USUARIO Y EL NOMBRE DE LA SESION
    final result = await supabase
        .from('sessiontime')
        .select()
        .eq('iduser', idUser)
        .eq('sessionname', sessionName);

    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 y nombre de sesion $sessionName");
      return null;
    } // VERIFICAMOS SI EL RESULTADO ES NULO O NO
  } catch (e) {
    // SI DA ERROR, DEVOLVEMOS NULL
    DatabaseHelper.logger
        .e("Error al obtener la sesion del usuario con id $idUser: $e");
    return null;
  }
}