57 lines
1.5 KiB
Dart
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();
|
|
}
|
|
}
|