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