plentraLogin method

void plentraLogin(
  1. String emailId,
  2. String password,
  3. PlentraLogin plentraLogin
)

Implementation

void plentraLogin(
    String emailId, String password, PlentraLogin plentraLogin) async {
  plentraLogin.onLoading();

  if (emailId.isEmpty) {
    plentraLogin.onEmailIdNotProvided();
    plentraLogin.onLoadfinished();
    return;
  }

  if (password.isEmpty) {
    plentraLogin.onPasswordNotProvided();
    plentraLogin.onLoadfinished();
    return;
  }

  final loginUrl =
      "https://api.plentrasphere.com/v2/client/accounts/index.php";
  final loginBody = {
    "email": emailId,
    "password": password,
    "action": "getLoginToken",
  };

  try {
    final loginResponse = await http.post(
      Uri.parse(loginUrl),
      headers: {"Content-Type": "application/x-www-form-urlencoded"},
      body: loginBody,
    );

    final loginData = json.decode(loginResponse.body);
    int loginCode = loginData['response']['code'];
    String loginStatus = loginData['response']['status'];

    if (loginCode == 400) {
      if (loginStatus == "invalid-email") {
        plentraLogin.onInvalidEmailId();
        plentraLogin.onLoadfinished();
        return;
      }

      if (loginStatus == "invalid-credentials") {
        plentraLogin.onInvalidCredentials();
        plentraLogin.onLoadfinished();
        return;
      }

      plentraLogin.onError(loginStatus);
      plentraLogin.onLoadfinished();
      return;
    }

    final loginToken = loginData['token'];

    final adminUrl =
        "https://api.plentrasphere.com/v2/client/admin/index.php";
    final adminBody = {
      "action": "loggin",
      "token": loginToken,
      "type": "auth",
    };

    final adminResponse = await http.post(
      Uri.parse(adminUrl),
      headers: {"Content-Type": "application/x-www-form-urlencoded"},
      body: adminBody,
    );

    final adminData = json.decode(adminResponse.body);
    int adminCode = adminData['response']['code'];
    String adminStatus = adminData['response']['status'];

    if (adminCode == 400) {
      plentraLogin.onError(adminStatus);
      plentraLogin.onLoadfinished();
      return;
    }

    final adminToken = adminData['token'];

    plentraLogin.onSuccess(adminToken);
    plentraLogin.onLoadfinished();
  } catch (e) {
    print(e);
    plentraLogin.onError(e.toString());
    plentraLogin.onLoadfinished();
  }
}