isViewFrequencyCrossed method
Implementation
bool isViewFrequencyCrossed(Map<String, dynamic> viewJson) {
try {
Map<String, dynamic>? frequency = viewJson['frequency'];
if (frequency == null) {
return false;
}
int viewThreshold = frequency['views'] ?? 0;
int timeThreshold = frequency['days'] ?? 0 * 24;
if (viewThreshold == 0 || timeThreshold == 0) {
return false;
}
String id = viewJson['id'];
int updatedAt = viewJson['updated_at'];
String key = id + updatedAt.toString();
Map<String, dynamic>? decodedMap = logMap[key];
if (decodedMap == null) {
return false;
}
int firstViewedEpoch = decodedMap['firstViewedAt'] ?? 0;
int viewedTillNow = decodedMap['views'] ?? 0;
DateTime firstViewed = DateTime.fromMillisecondsSinceEpoch(
firstViewedEpoch);
DateTime now = DateTime.now();
int inHours = now
.difference(firstViewed)
.inHours;
if (inHours > timeThreshold) {
_resetViews(key);
return false;
}
if (viewedTillNow < viewThreshold) {
return false;
} else {
return true;
}
} catch(e) {
return true;
}
}