executeTokenRequest function

Future<TokenResult> executeTokenRequest(
  1. Uri uri
)

Implementation

Future<TokenResult> executeTokenRequest(Uri uri) async {
  final response = await http.post(uri);
  if (response.statusCode != 200) {
    throw "Unexpected response ${response.statusCode}";
  }

  dynamic responseBody = jsonDecode(response.body);

  final expiresIn = int.tryParse("${responseBody['expires_in']}".trim());

  final TokenResult result = {};
  result['access_token'] = responseBody['access_token'];
  result['refresh_token'] = responseBody['refresh_token'] is String
      ? responseBody['refresh_token']
      : null;
  result['expires_on'] = (expiresIn != null)
      ? DateTime.now().add(Duration(seconds: expiresIn))
      : null;

  return result;
}