aman-kassa-flutter/lib/core/services/authentication_service.dart

50 lines
1.3 KiB
Dart

import 'package:aman_kassa_flutter/core/base/base_service.dart';
import 'package:aman_kassa_flutter/core/models/message.dart';
import 'package:aman_kassa_flutter/core/models/response.dart';
import 'package:aman_kassa_flutter/core/models/user.dart';
import 'package:aman_kassa_flutter/core/models/auth_response.dart';
import 'package:flutter/foundation.dart';
import 'ApiService.dart';
class AuthenticationService extends BaseService {
final ApiService _api;
AuthenticationService({required ApiService api}) : _api = api;
User? _currentUser;
User? get currentUser => _currentUser;
Future<AuthBody?> loginWithEmail({
required String email,
required String password,
}) async {
try {
AuthBody? result = await _api.authenticate(email, password);
if (result!=null && result.user != null) {
_currentUser = result.user;
}
return result;
} catch (e) {
return null;
}
}
Future<bool> isUserLoggedIn(String token) async {
Response<Message> session = await _api.isActive(token);
if ("OK" == session.body?.message) {
//_session = session;
return true;
}
return false;
}
Future<bool> logout(String token) async {
Response<dynamic> session = await _api.logout(token);
if ("logout" == session.body.message) {
return true;
}
return false;
}
}