import 'dart:async'; import 'dart:developer'; import 'package:flutter/material.dart'; import 'package:initial_folder/models/qna_model.dart'; import 'package:initial_folder/services/qna_service.dart'; import 'package:rxdart/rxdart.dart'; enum ResultState { loading, noData, hasData, error } enum ResultStateLike { loading, error } class QnaProvider with ChangeNotifier { final _service = QnaService(); StreamController streamController = BehaviorSubject(); String _message = ''; String get message => _message; ResultState? _state; ResultState? get state => _state; QnaModel? _qnaModel; QnaModel? get result => _qnaModel; set qnaModel(QnaModel? qnaModel) { _qnaModel = qnaModel; notifyListeners(); } Stream get qnaStream { return streamController.stream; } //Get QNA Future getQna(String idCourse) async { try { QnaModel qnaModel = await _service.getMyQna(idCourse); if (qnaModel.error == true && qnaModel.status == 404) { // Jika respons adalah 404 (tidak ditemukan), tangani objek dummy di sini // Misalnya, menampilkan pesan kepada pengguna bahwa tidak ada data yang ditemukan // Atau menampilkan UI yang sesuai print('masuk rerror dsiinii'); streamController.add(qnaModel); } else { // Jika respons adalah 200 (berhasil), tambahkan data ke dalam stream streamController.add(qnaModel); } } catch (error) { // Tangani jenis error lain jika diperlukan rethrow; } } }