saveSymptomsLogs method
dynamic
saveSymptomsLogs({
- required List<
SymptomsData> ? userSymptomsData, - required Function? onSuccess,
- required Function? onError,
- DateTime? symptomsLogDate,
- String meditationTime = "0",
- TimeOfDay? sleepWakeUpTime,
- TimeOfDay? sleepBedTime,
- int cycleDay = 0,
- String waterValue = "0",
- WaterUnits waterUnit = WaterUnits.liters,
- String customNotes = "",
- String weight = "0",
- WeightUnits weightUnit = WeightUnits.kg,
- String bodyTemperature = "0",
- BodyTemperatureUnits bodyTemperatureUnit = BodyTemperatureUnits.celsius,
- bool isCustomLogs = true,
----------------------- Custom Functions -----------------------/// insert user's period data on userId and log date
Implementation
/// insert user's period data on userId and log date
saveSymptomsLogs({
required List<SymptomsData>? userSymptomsData,
required Function? onSuccess,
required Function? onError,
DateTime? symptomsLogDate,
String meditationTime = "0",
TimeOfDay? sleepWakeUpTime,
TimeOfDay? sleepBedTime,
int cycleDay = 0,
String waterValue = "0",
WaterUnits waterUnit = WaterUnits.liters,
String customNotes = "",
String weight = "0",
WeightUnits weightUnit = WeightUnits.kg,
String bodyTemperature = "0",
BodyTemperatureUnits bodyTemperatureUnit = BodyTemperatureUnits.celsius,
bool isCustomLogs = true,
}) async {
String currentDate = "";
String logDate = "";
String sleepTime = "0";
customNotes = "N/A";
if (symptomsLogDate == null) {
var now = DateTime.now();
logDate = defaultDateFormat.format(now);
} else {
try {
logDate = defaultDateFormat.format(symptomsLogDate);
} catch (e) {
throw WidgetBaseLanguage.errorInvalidSymptomsLogDate;
}
}
if (sleepBedTime != null && sleepWakeUpTime != null) {
sleepTime =
"${sleepBedTime.hour}:${sleepBedTime.minute}T${sleepWakeUpTime.hour}:${sleepWakeUpTime.minute}";
}
final dbHelper = MenstrualCycleDbHelper.instance;
currentDate = currentDateFormat.format(DateTime.now());
final encryption = Encryption.instance;
String encryptedData = encryption.encrypt(json.encode(userSymptomsData));
Map<String, dynamic> userData = {
MenstrualCycleDbHelper.columnCustomerId: getCustomerId(),
MenstrualCycleDbHelper.columnUserEncryptData: encryptedData,
MenstrualCycleDbHelper.columnMeditationTime:
encryption.encrypt(meditationTime),
MenstrualCycleDbHelper.columnSleepTime: encryption.encrypt(sleepTime),
MenstrualCycleDbHelper.columnWater: encryption.encrypt(waterValue),
MenstrualCycleDbHelper.columnWaterUnit:
encryption.encrypt(waterUnit.toString()),
MenstrualCycleDbHelper.columnBodyTemperatureUnit:
encryption.encrypt(bodyTemperatureUnit.toString()),
MenstrualCycleDbHelper.columnWeightUnit:
encryption.encrypt(weightUnit.toString()),
MenstrualCycleDbHelper.columnNotes: encryption.encrypt(customNotes),
MenstrualCycleDbHelper.columnWeight: encryption.encrypt(weight),
MenstrualCycleDbHelper.columnBodyTemperature:
encryption.encrypt(bodyTemperature),
MenstrualCycleDbHelper.columnLogDate: logDate,
MenstrualCycleDbHelper.columnCycleDay: cycleDay,
MenstrualCycleDbHelper.columnCreatedDateTime: currentDate,
MenstrualCycleDbHelper.columnIsCustomLog: (isCustomLogs) ? "1" : "0"
};
int id = await dbHelper.insertDailyLog(userData, logDate, getCustomerId());
//printLogs(("Save Id: $id");
if (id > 0) {
//printLogs(("Save Data");
if (onSuccess != null) {
onSuccess.call(id);
}
} else {
//printLogs(("False to save Data");
if (onError != null) {
onError.call();
}
}
}