Merge branch '113-add-button-to-export-to-settings-page' into 'master'

Resolve "Add button to export to settings page"

Closes #113

See merge request bloodyhealth/drip!46
This commit is contained in:
Julia Friesel
2018-08-06 12:49:44 +00:00
14 changed files with 556 additions and 287 deletions
+21 -3
View File
@@ -110,6 +110,7 @@ const db = new Realm(realmConfig)
const bleedingDaysSortedByDate = db.objects('CycleDay').filtered('bleeding != null').sorted('date', true)
const temperatureDaysSortedByDate = db.objects('CycleDay').filtered('temperature != null').sorted('date', true)
const cycleDaysSortedByDate = db.objects('CycleDay').sorted('date', true)
function saveSymptom(symptom, cycleDay, val) {
db.write(() => {
@@ -117,8 +118,6 @@ function saveSymptom(symptom, cycleDay, val) {
})
}
const cycleDaysSortedByDate = db.objects('CycleDay').sorted('date', true)
function getOrCreateCycleDay(localDate) {
let result = db.objectForPrimaryKey('CycleDay', localDate)
if (!result) {
@@ -176,6 +175,24 @@ function getPreviousTemperature(cycleDay) {
return winner.temperature.value
}
function getColumnNamesForCsv() {
return getPrefixedKeys('CycleDay')
function getPrefixedKeys(schemaName, prefix) {
const schema = db.schema.find(x => x.name === schemaName).properties
return Object.keys(schema).reduce((acc, key) => {
const prefixedKey = prefix ? [prefix, key].join('.') : key
const childSchemaName = schema[key].objectType
if (!childSchemaName) {
acc.push(prefixedKey)
return acc
}
acc.push(...getPrefixedKeys(childSchemaName, prefixedKey))
return acc
}, [])
}
}
export {
saveSymptom,
getOrCreateCycleDay,
@@ -185,5 +202,6 @@ export {
fillWithDummyData,
deleteAll,
getPreviousTemperature,
getCycleDay
getCycleDay,
getColumnNamesForCsv
}