mirror of
https://gitlab.com/mysocialportal/relatica
synced 2024-10-18 12:23:31 +00:00
Add AuthService initial cut
This commit is contained in:
parent
4956208928
commit
bde1aab519
1 changed files with 31 additions and 0 deletions
31
lib/services/auth_service.dart
Normal file
31
lib/services/auth_service.dart
Normal file
|
@ -0,0 +1,31 @@
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:result_monad/result_monad.dart';
|
||||
|
||||
import '../models/exec_error.dart';
|
||||
import '../friendica_client.dart';
|
||||
|
||||
class AuthService extends ChangeNotifier {
|
||||
FriendicaClient? _friendicaClient;
|
||||
|
||||
Result<FriendicaClient, ExecError> get currentClient {
|
||||
if (_friendicaClient == null) {
|
||||
return Result.error(ExecError(
|
||||
type: ErrorType.authentication,
|
||||
message: 'Not logged in',
|
||||
));
|
||||
}
|
||||
|
||||
return Result.ok(_friendicaClient!);
|
||||
}
|
||||
|
||||
Result<FriendicaClient, ExecError> updateClient(FriendicaClient newClient) {
|
||||
_friendicaClient = newClient;
|
||||
notifyListeners();
|
||||
return Result.ok(newClient);
|
||||
}
|
||||
|
||||
void clearCredentials() {
|
||||
_friendicaClient = null;
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue