getAuthData method

  1. @override
Future<Response<AuthenticationResponse>> getAuthData()
override

Implementation

@override
Future<Response<AuthenticationResponse>> getAuthData() async {
  if (!await _secureStorage.containsKey(key: _tokenExpireDateKey))
    return Response.error("Token expire date not found!");

  var expireData = await _secureStorage.read(key: _tokenExpireDateKey);
  var tokenExpireDate = DateTime.fromMillisecondsSinceEpoch(
    int.parse(expireData!),
  );

  if (DateTime.now().isAfter(tokenExpireDate))
    return Response.error("Token Expired");

  if (!(await _secureStorage.containsKey(key: _tokenKey)))
    return Response.error("Unauthorized User!");

  var token = await _secureStorage.read(key: _tokenKey);

  if (!(await _secureStorage.containsKey(key: _refreshTokenKey)))
    return Response.error("Refresh token not found! ");

  var refreshToken = await _secureStorage.read(key: _refreshTokenKey);

  if (!await _secureStorage.containsKey(key: _userInfoKey))
    return Response.error("User data not found!");

  var userInfoJson = await _secureStorage.read(key: _userInfoKey);
  var userInfo = DfApiUserInfo.fromJson(
    jsonDecode(userInfoJson!),
  );

  return Response.success(
    AuthenticationResponse(
      token!,
      userInfo,
      refreshToken!,
      tokenExpireDate,
    ),
  );
}