energyManagementV3ApiProvider top-level property
final
Provider for EnergyManagementV3Api
Uses the 'CLEAN_ENERGY_RDC2_BASE_URL' environment variable for the base url
Implementation
final energyManagementV3ApiProvider = FutureProvider(
(ref) async {
final api = EnergyManagementV3Api.create(
baseUrl: Uri.parse(
await ref.watch(_cleanEnergyRdc2UrlProvider.future),
),
interceptors: [
await ref.watch(authHeaderInterceptorProvider.future),
],
authenticator: ref.watch(errorForwardingAuthenticatorProvider),
);
// Wire up authentication manager to delete the user's notification token
// when the user logs out, by adding an onLogout callback.
final deleteTokenCallback =
ref.watch(deleteNotificationTokenUseCaseProvider);
Future<void> onLogout(AuthUser<OAuthToken> user) {
return deleteTokenCallback(api);
}
final authManager = await ref.watch(authManagerProvider.future);
authManager.addLogoutCallback(onLogout);
ref.onDispose(() => authManager.removeLogoutCallback(onLogout));
return api;
},
);