refreshToken static method
Future<bool>
refreshToken({
- BuildContext? context,
- required String clientID,
- required String clientSecret,
- required bool isSandbox,
Method that refreshes the Dexcom access token.
Implementation
static Future<bool> refreshToken(
{BuildContext? context,
required String clientID,
required String clientSecret,
required bool isSandbox}) async {
// Instantiate Dio and its Response
Dio dio = Dio();
Response response;
// Generate the Dexcom url
final dexcomAuthorizeUrl = DexcomAuthAPIURL.refreshToken(
clientID: clientID,
clientSecret: clientSecret,
isSandbox: isSandbox);
response = await dio.post(
dexcomAuthorizeUrl.url,
data: dexcomAuthorizeUrl.data,
options: Options(
contentType: Headers.formUrlEncodedContentType,
),
);
// Debugging
final logger = Logger();
logger.i('$response');
// Overwrite the tokens into the shared preferences
final accessToken = response.data['access_token'] as String;
final refreshToken = response.data['refresh_token'] as String;
final expires = response.data['expires_in'] as int;
GetIt.instance<SharedPreferences>()
.setString('dexcomAccessToken', accessToken);
GetIt.instance<SharedPreferences>()
.setString('dexcomRefreshToken', refreshToken);
GetIt.instance<SharedPreferences>()
.setString('dexcomTokenExpires', Formats.fullDateFormat.format(DateTime.now().add(Duration(seconds: expires))));
return true;
}