prepareLoginChallenge method

Future<String> prepareLoginChallenge(
  1. List<String> append
)

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;
}