Show error message when future data edit
This commit is contained in:
@@ -7,6 +7,8 @@ import {
|
||||
updateCycleStartsForAllCycleDays
|
||||
} from '../../db'
|
||||
import getColumnNamesForCsv from './get-csv-column-names'
|
||||
import { LocalDate } from 'js-joda'
|
||||
import labels from '../../i18n/en/settings'
|
||||
|
||||
export default async function importCsv(csv, deleteFirst) {
|
||||
const parseFuncs = {
|
||||
@@ -48,6 +50,7 @@ export default async function importCsv(csv, deleteFirst) {
|
||||
|
||||
//remove symptoms where all fields are null
|
||||
putNullForEmptySymptoms(cycleDays)
|
||||
throwIfFutureData(cycleDays)
|
||||
|
||||
if (deleteFirst) {
|
||||
tryToImportWithDelete(cycleDays)
|
||||
@@ -87,4 +90,15 @@ function getDbType(modelProperties, path) {
|
||||
if (path.length === 1) return modelProperties[path[0]].type
|
||||
const modelName = modelProperties[path[0]].objectType
|
||||
return getDbType(schema[modelName], path.slice(1))
|
||||
}
|
||||
|
||||
function throwIfFutureData(cycleDays) {
|
||||
const today = LocalDate.now().toString()
|
||||
for (const i in cycleDays) {
|
||||
const day = cycleDays[i]
|
||||
// notes are allowed for future dates but everything else isn't
|
||||
if (day.date > today && Object.keys(day).some(symptom => symptom != 'date' && symptom != 'note')) {
|
||||
throw new Error(labels.import.errors.futureEdit)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user