Merge branch 'chore/remove-is-object' into 'main'
Chore/remove is object See merge request bloodyhealth/drip!435
This commit is contained in:
@@ -1,5 +1,4 @@
|
|||||||
import csvParser from 'csvtojson'
|
import csvParser from 'csvtojson'
|
||||||
import isObject from 'isobject'
|
|
||||||
import {
|
import {
|
||||||
getSchema,
|
getSchema,
|
||||||
tryToImportWithDelete,
|
tryToImportWithDelete,
|
||||||
@@ -7,6 +6,7 @@ import {
|
|||||||
updateCycleStartsForAllCycleDays,
|
updateCycleStartsForAllCycleDays,
|
||||||
} from '../../db'
|
} from '../../db'
|
||||||
import getColumnNamesForCsv from './get-csv-column-names'
|
import getColumnNamesForCsv from './get-csv-column-names'
|
||||||
|
import replaceWithNullIfAllPropertiesAreNull from './replace-with-null'
|
||||||
import { LocalDate } from '@js-joda/core'
|
import { LocalDate } from '@js-joda/core'
|
||||||
import labels from '../../i18n/en/settings'
|
import labels from '../../i18n/en/settings'
|
||||||
|
|
||||||
@@ -74,17 +74,6 @@ function validateHeaders(headers) {
|
|||||||
|
|
||||||
function putNullForEmptySymptoms(data) {
|
function putNullForEmptySymptoms(data) {
|
||||||
data.forEach(replaceWithNullIfAllPropertiesAreNull)
|
data.forEach(replaceWithNullIfAllPropertiesAreNull)
|
||||||
|
|
||||||
function replaceWithNullIfAllPropertiesAreNull(obj) {
|
|
||||||
Object.keys(obj).forEach((key) => {
|
|
||||||
if (!isObject(obj[key])) return
|
|
||||||
if (Object.values(obj[key]).every((val) => val === null)) {
|
|
||||||
obj[key] = null
|
|
||||||
return
|
|
||||||
}
|
|
||||||
replaceWithNullIfAllPropertiesAreNull(obj[key])
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getDbType(modelProperties, path) {
|
function getDbType(modelProperties, path) {
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
const isObject = (obj) => obj === Object(obj)
|
||||||
|
|
||||||
|
export default function replaceWithNullIfAllPropertiesAreNull(obj) {
|
||||||
|
Object.keys(obj).forEach((key) => {
|
||||||
|
if (!isObject(obj[key])) return
|
||||||
|
if (Object.values(obj[key]).every((val) => val === null)) {
|
||||||
|
obj[key] = null
|
||||||
|
return
|
||||||
|
}
|
||||||
|
replaceWithNullIfAllPropertiesAreNull(obj[key])
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -35,7 +35,6 @@
|
|||||||
"@react-native-community/push-notification-ios": "^1.8.0",
|
"@react-native-community/push-notification-ios": "^1.8.0",
|
||||||
"csvtojson": "^2.0.8",
|
"csvtojson": "^2.0.8",
|
||||||
"i18next": "^21.8.14",
|
"i18next": "^21.8.14",
|
||||||
"isobject": "^4.0.0",
|
|
||||||
"moment": "^2.29.4",
|
"moment": "^2.29.4",
|
||||||
"nodejs-mobile-react-native": "^0.6.2",
|
"nodejs-mobile-react-native": "^0.6.2",
|
||||||
"object-path": "^0.11.4",
|
"object-path": "^0.11.4",
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
import replaceWithNullIfAllPropertiesAreNull from '../lib/import-export/replace-with-null'
|
||||||
|
import chai from 'chai'
|
||||||
|
|
||||||
|
const expect = chai.expect
|
||||||
|
|
||||||
|
describe('replaceWithNullIfAllPropertiesAreNull', () => {
|
||||||
|
it('when data object has no null values, data object remains unchanged', () => {
|
||||||
|
const initialData = {
|
||||||
|
bleeding: { exclude: false, value: 2 },
|
||||||
|
date: '2021-10-08',
|
||||||
|
}
|
||||||
|
const obj = { ...initialData }
|
||||||
|
replaceWithNullIfAllPropertiesAreNull(obj)
|
||||||
|
|
||||||
|
expect(obj).to.deep.equal(initialData)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('when data object has nested object with all values null, nested object is replaced with null', () => {
|
||||||
|
const initialData = {
|
||||||
|
bleeding: { exclude: null, value: null },
|
||||||
|
date: '2021-10-08',
|
||||||
|
}
|
||||||
|
const obj = { ...initialData }
|
||||||
|
const expectedData = { bleeding: null, date: '2021-10-08' }
|
||||||
|
replaceWithNullIfAllPropertiesAreNull(obj)
|
||||||
|
|
||||||
|
expect(obj).to.deep.equal(expectedData)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('when data object is empty, data object remains unchanged', () => {
|
||||||
|
const obj = {}
|
||||||
|
replaceWithNullIfAllPropertiesAreNull(obj)
|
||||||
|
|
||||||
|
expect(obj).to.deep.equal({})
|
||||||
|
})
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user