import 'package:app/model/apis/api_response.dart'; import 'package:app/model/services/backend_service.dart'; import 'package:app/pb/account.pb.dart'; import 'package:flutter/material.dart'; class AccountViewModel with ChangeNotifier { AccountViewModel() { _init(); } ApiResponse _apiResponse = ApiResponse.initial('Keine Daten'); final BackendService _service = BackendService(); Account? _account; ApiResponse get response { return _apiResponse; } Account? get account { return _account; } void _init() async { _apiResponse = ApiResponse.loading('Bereite alles vor'); try { _apiResponse = ApiResponse.completed(await _service.getAccount(), 'done'); } catch (e) { _apiResponse = ApiResponse.error(e.toString()); } notifyListeners(); } Future fetchAccount() async { _apiResponse = ApiResponse.loading('Hole Account'); notifyListeners(); try { _apiResponse = ApiResponse.completed(await _service.getAccount(), 'done'); } catch (e) { _apiResponse = ApiResponse.error(e.toString()); } notifyListeners(); } Future logout() async { _apiResponse = ApiResponse.loading('Logge aus'); notifyListeners(); try { await BackendService.logout(); _apiResponse = ApiResponse.completed(null, 'Erfolgreich ausgeloggt'); } catch (e) { _apiResponse = ApiResponse.error(e.toString()); } print(_apiResponse.message); notifyListeners(); } }