linkWidgetUrl method
Implementation
Future<Uri> linkWidgetUrl(
{required String redirectUrl,
List<ProviderSlug>? filterOnProviders}) async {
String? userId = await core.currentUserId();
if (userId == null) {
throw Exception("SDK is not signed in.");
}
List<String>? rawfilterOnProviders =
filterOnProviders?.map((slug) => slug.toString()).toList();
Response<CreateLinkResponse> response = await linkService.createLink(
userId, null, redirectUrl,
filterOnProviders: rawfilterOnProviders);
if (response.isSuccessful) {
String host, env;
switch (_environment) {
case Environment.dev:
host = "link.dev.tryvital.io";
env = "sandbox";
break;
case Environment.sandbox:
host = "link.tryvital.io";
env = "sandbox";
break;
case Environment.production:
host = "link.tryvital.io";
env = "production";
break;
}
CreateLinkResponse resp = response.body!;
Uri widgetUrl =
Uri(scheme: "https", host: host, path: "/", queryParameters: {
"token": resp.linkToken,
"env": env,
"region": _region.name,
});
return widgetUrl;
} else {
throw Exception("Link token creation failed: ${response.error}");
}
}