getUserId method

Future<int?> getUserId(
  1. BuildContext context
)

Método para obtener el ID del usuario actual a partir del nombre de usuario guardado en el estado global.

Devuelve el ID del usuario si se encuentra correctamente. Si ocurre un error o no hay usuario activo, devuelve null y registra el error en consola.

Retorna un Future<int?> con el ID o null.

Implementation

Future<int?> getUserId(BuildContext context) async {
  final currentUser = context.read<CurrentUser>().user;

  if (currentUser == null || currentUser.username.isEmpty) {
    DatabaseHelper.logger.e("Usuario no encontrado.");
    return null;
  }

  try {
    final response = await supabase
        .from('user')
        .select()
        .eq('username', currentUser.username);

    if (response.isEmpty) {
      DatabaseHelper.logger.e("No se encontró usuario con ese username.");
      return -1;
    }

    return response.first['iduser'] as int;
  } catch (e) {
    DatabaseHelper.logger
        .e("Error al obtener el ID del usuario desde Supabase: $e");
    return null;
  }
}