df/frontend/app/lib/model/view_model/account_vm.dart
2023-11-03 15:35:44 +01:00

57 lines
1.5 KiB
Dart

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<void> 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<void> 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();
}
}