Determine isCycleStart on importing data too

This commit is contained in:
Julia Friesel
2018-10-25 15:42:10 +02:00
parent 918d383163
commit 8445cc8ed8
2 changed files with 21 additions and 6 deletions
+14 -5
View File
@@ -40,7 +40,6 @@ export async function openDb ({ hash, persistConnection }) {
getMensesDaysRightAfter = cycle.getMensesDaysRightAfter
}
export function getBleedingDaysSortedByDate() {
return db.objects('CycleDay').filtered('bleeding != null').sorted('date', true)
}
@@ -97,8 +96,16 @@ export function saveSymptom(symptom, cycleDay, val) {
const mensesDaysAfter = getMensesDaysRightAfter(cycleDay)
mensesDaysAfter.forEach(day => day.isCycleStart = false)
}
}
export function updateCycleStartsForAllCycleDays() {
db.write(() => {
getBleedingDaysSortedByDate().forEach(day => {
if (isMensesStart(day)) {
day.isCycleStart = true
}
})
})
}
export function getOrCreateCycleDay(localDate) {
@@ -128,8 +135,10 @@ export function getPreviousTemperature(cycleDay) {
return winner.temperature.value
}
export function tryToCreateCycleDay(day, i) {
function tryToCreateCycleDayFromImport(day, i) {
try {
// we cannot know this yet, gets detected afterwards
day.isCycleStart = false
db.create('CycleDay', day)
} catch (err) {
const msg = `Line ${i + 1}(${day.date}): ${err.message}`
@@ -157,7 +166,7 @@ export function getSchema() {
export function tryToImportWithDelete(cycleDays) {
db.write(() => {
db.delete(db.objects('CycleDay'))
cycleDays.forEach(tryToCreateCycleDay)
cycleDays.forEach(tryToCreateCycleDayFromImport)
})
}
@@ -166,7 +175,7 @@ export function tryToImportWithoutDelete(cycleDays) {
cycleDays.forEach((day, i) => {
const existing = getCycleDay(day.date)
if (existing) db.delete(existing)
tryToCreateCycleDay(day, i)
tryToCreateCycleDayFromImport(day, i)
})
})
}