trackUserLogin method

Future<PamResponse> trackUserLogin(
  1. String custID, {
  2. Map<String, dynamic>? payload,
})

Implementation

Future<PamResponse> trackUserLogin(String custID,
    {Map<String, dynamic>? payload}) async {
  var notiKey =
      Platform.isAndroid ? "android_notification" : "ios_notification";
  Map<String, dynamic> defaultPayload = {
    "_delete_media": {notiKey: ""}
  };

  if (config?.loginKey == "") {
    payload?["customer"] = custID;
  } else {
    payload?[config?.loginKey ?? "customer"] = custID;
  }

  payload?.forEach((key, val) {
    defaultPayload[key] = val;
  });

  if(!await isUserLogin()){
    //Delete Push Noti from anonymous
    await queue.add(() => postTracker("delete_media", defaultPayload));

    // Track Login To Public
    //var response =
    await queue.add(() => postTracker("login", payload));
  }

  await pref.saveString(custID, SaveKey.customerID);

  // Track Login To Login
  this.custID = custID;
  var response = await queue.add(() => postTracker("login", payload));
  if (isNotEmpty(response.contactID)) {
    this.custID = custID;
    loginContact = response.contactID;
    if (loginContact != null && loginContact!.isNotEmpty) {
      pref.saveString(response.contactID!, SaveKey.loginContactID);
    }
  }

  var push = await getPushToken();
  if (push != null) {
    setDeviceToken(push);
  }

  return response;
}