prepareLoginChallenge method
Implementation
Future<String> prepareLoginChallenge(List<String> append) async {
String redirectUrl;
String? subscriptionUrl;
String? subscriptionDomain = "";
subscriptionUrl = Constants.contentDetails2?.subscriptionUrl;
subscriptionDomain = Constants.contentDetails2?.subscriptionDomain;
await CoreDb.instance().setSubsUrl(subscriptionUrl!);
String? loginChallengeId = await CoreDb.instance().getLoginId();
if (loginChallengeId == null && loginChallengeId == "") {
var response = await http
.post(Uri.parse('${APIMode.BASE_URL}api/v1/login-challenge'), body: {
"loginChallengeId":
'${DateTime.now().millisecondsSinceEpoch.toString()}${Uuid().v4()}',
"redirectTo": ""
});
if (response.statusCode == 201) {
var responseString = response.body;
loginChallengeId =
loginChallengepostFromJson(responseString).loginChallengeId;
await CoreDb.instance().setLoginId(loginChallengeId);
} else {
onPluginError(response.body);
}
}
var anonId = await CoreDb.instance().getAnonId();
if (Constants.paywallConfig.data?.sId == "default") {
Constants.paywallConfig.data?.sId = "";
}
if (append.first == "content") {
redirectUrl =
'${APIMode.SERVICE_BASE_URL}/overlay?clientId=${ConscentInitializer.mClientId}&clientContentId=${ConscentInitializer.mContentId}&loginChallenge=$loginChallengeId&anonId=$anonId&paywallId=${Constants.paywallConfig.data?.sId}';
return redirectUrl;
} else if (append.first == "pass") {
redirectUrl =
'${APIMode.SERVICE_BASE_URL}/overlay?clientId=${ConscentInitializer.mClientId}&clientContentId=${ConscentInitializer.mContentId}&loginChallenge=$loginChallengeId&purchaseMode=PASS&anonId=$anonId&paywallId=${Constants.paywallConfig.data?.sId}';
return redirectUrl;
} else if (append.first == "subscription") {
redirectUrl =
'https://$subscriptionDomain/${append.last}?clientId=${ConscentInitializer.mClientId}&clientContentId=${ConscentInitializer.mContentId}&loginChallenge=$loginChallengeId&anonId=$anonId&paywallId=${Constants.paywallConfig.data?.sId}';
return redirectUrl;
} else {
redirectUrl =
'${APIMode.SERVICE_BASE_URL}/overlay?clientId=${ConscentInitializer.mClientId}&clientContentId=${ConscentInitializer.mContentId}&loginChallenge=$loginChallengeId&anonId=$anonId&paywallId=${Constants.paywallConfig.data?.sId}';
return redirectUrl;
}
return redirectUrl;
}