618 Refactor import section to use translation lib

This commit is contained in:
Lisa
2022-11-06 14:47:05 +00:00
committed by Sofiya Tepikin
parent b56e0818f3
commit 446638d6de
8 changed files with 143 additions and 120 deletions
+13 -5
View File
@@ -8,7 +8,7 @@ import {
import getColumnNamesForCsv from './get-csv-column-names'
import replaceWithNullIfAllPropertiesAreNull from './replace-with-null'
import { LocalDate } from '@js-joda/core'
import labels from '../../i18n/en/settings'
import i18next from 'i18next'
export default async function importCsv(csv, deleteFirst) {
const parseFuncs = {
@@ -46,7 +46,10 @@ export default async function importCsv(csv, deleteFirst) {
const cycleDays = await csvParser(config)
.fromString(csv)
.on('header', validateHeaders)
.on('header', (headers) => validateHeaders(headers))
.on('error', (error) => {
throw error
})
//remove symptoms where all fields are null
putNullForEmptySymptoms(cycleDays)
@@ -67,8 +70,11 @@ function validateHeaders(headers) {
return expectedHeaders.indexOf(header) > -1
})
) {
const msg = `Expected CSV column titles to be ${expectedHeaders.join()}`
throw new Error(msg)
throw new Error(
i18next.t('hamburgerMenu.settings.data.import.error.incorrectColumns', {
incorrectColumns: expectedHeaders.join(),
})
)
}
}
@@ -92,7 +98,9 @@ function throwIfFutureData(cycleDays) {
day.date > today &&
Object.keys(day).some((symptom) => symptom != 'date' && symptom != 'note')
) {
throw new Error(labels.import.errors.futureEdit)
throw new Error(
i18next.t('hamburgerMenu.settings.data.import.error.futureEdit')
)
}
}
}