Skip to content

Commit 34e0db5

Browse files
committed
yr & mo changes not needed
1 parent b5f0876 commit 34e0db5

File tree

4 files changed

+68
-41
lines changed

4 files changed

+68
-41
lines changed

db/dataTypes.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ const dataTypes = {
44
Number: 'Number',
55
Array: 'Array',
66
Boolean: 'Boolean',
7-
Date: 'Date'
7+
Date: 'Date',
8+
Undefined: 'Undefined'
89
}
910

1011
export default dataTypes

routes/importData/importValidation.js

Lines changed: 45 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,66 @@
11
import { transactionFields as tFields } from 'db/constants'
22
import R from 'ramda'
3-
import { getOverlappingDaysInRanges, isDate } from 'date-fns'
3+
import { /*getOverlappingDaysInRanges, */ isDate } from 'date-fns'
44
import dataTypes from 'db/dataTypes'
55

66
// eslint-disable-next-line
77
import { yellow, blue, green, redf } from 'logger'
88

9-
const isDateType = (value) => isDate(new Date(value))
10-
? 'Date'
11-
: R.type(value)
9+
const isDateType = (value) => (isDate(new Date(value)) ? 'Date' : R.type(value))
1210

1311
/**
14-
*
15-
* @param {string} fieldName
16-
* @param {any} fieldValue
12+
*
13+
* @param {string} fieldName
14+
* @param {any} fieldValue
1715
* @returns {object} { good: boolean, error: null || string }
1816
* @description Returns true if fieldValue is the correct type for fieldName
1917
* 'type' & 'checkNumber' fields are optional
2018
*/
2119
export const checkField = (fieldName, fieldValue) => {
22-
23-
const expectedType = tFields[fieldName].type
24-
if (expectedType === dataTypes.Any) {
25-
return { good: true, error: null }
26-
}
27-
const receivedType = fieldName === tFields.date.name
28-
? isDateType(fieldValue)
29-
: R.type(fieldValue)
30-
if (fieldName === tFields.type.name || fieldName === tFields.checkNumber.name) {
31-
if (fieldValue === undefined) {
32-
return { good: true, error: null }
33-
}
20+
const expectedType = tFields[fieldName].type
21+
if (expectedType === dataTypes.Any) {
22+
return { good: true, error: null }
23+
}
24+
const receivedType =
25+
fieldName === tFields.date.name
26+
? isDateType(fieldValue)
27+
: R.type(fieldValue)
28+
if (
29+
fieldName === tFields.type.name ||
30+
fieldName === tFields.checkNumber.name
31+
) {
32+
if (fieldValue === undefined) {
33+
return { good: true, error: null }
3434
}
35+
}
3536

36-
if (fieldName === tFields.credit.name && fieldValue < 0) {
37-
// blue('fieldName', fieldName)
38-
// blue('fieldValue', fieldValue)
39-
// blue(' credit typeof ', typeof fieldValue)
40-
return { good: false, error: `A credit must be a positive (+) or zero. Received ${fieldValue}`}
37+
if (fieldName === tFields.credit.name && fieldValue < 0) {
38+
// blue('fieldName', fieldName)
39+
// blue('fieldValue', fieldValue)
40+
// blue(' credit typeof ', typeof fieldValue)
41+
return {
42+
good: false,
43+
error: `A credit must be a positive (+) or zero. Received ${fieldValue}`
4144
}
45+
}
4246

43-
if (fieldName === tFields.debit.name && fieldValue > 0) {
44-
blue('fieldName', fieldName)
45-
blue('fieldValue', fieldValue)
46-
blue(' debit typeof ', typeof fieldValue)
47-
return { good: false, error: `A debit must be a negative (-) or zero. Received ${fieldValue}`}
47+
if (fieldName === tFields.debit.name && fieldValue > 0) {
48+
blue('fieldName', fieldName)
49+
blue('fieldValue', fieldValue)
50+
blue(' debit typeof ', typeof fieldValue)
51+
return {
52+
good: false,
53+
error: `A debit must be a negative (-) or zero. Received ${fieldValue}`
4854
}
55+
}
4956

50-
51-
const good = receivedType === expectedType
52-
? { good: true, error: null }
53-
: { good: false, error: `checkField: field=${fieldName}: Expected ${expectedType} but received type ${receivedType} with value ${fieldValue}` }
54-
55-
return good
57+
const good =
58+
receivedType === expectedType
59+
? { good: true, error: null }
60+
: {
61+
good: false,
62+
error: `checkField: field=${fieldName}: Expected ${expectedType} but received type ${receivedType} with value ${fieldValue}`
63+
}
5664

57-
}
65+
return good
66+
}

routes/views/allTransactionsByDescription.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
TRANSACTIONS_COLLECTION_NAME,
55
convertFieldValuesToUi
66
} from 'db/constants'
7+
import isNilOrEmpty from 'lib/isNilOrEmpty'
78

89
/* eslint-disable */
910
import { yellow, red, redf } from 'logger'
@@ -46,12 +47,17 @@ import * as R from 'ramda'
4647

4748
const allDataByDescription = wrap(async (req, res) => {
4849
const { params } = req
49-
const { showOmitted } = params
50+
const { showOmitted, year, month } = params
5051

51-
const filter =
52+
// yellow('params', params)
53+
yellow('year', year)
54+
yellow('month', R.type(month))
55+
const f1 =
5256
showOmitted === 'true' ? { omit: { $eq: true } } : { omit: { $eq: false } }
5357

54-
const data = await find(TRANSACTIONS_COLLECTION_NAME, filter)
58+
// const f2 = !isNilOrEmpty(year) ? R.merge(f1, { })
59+
60+
const data = await find(TRANSACTIONS_COLLECTION_NAME, f1)
5561
// TODO: tmp code here
5662
// const limit = R.take(5, data)
5763
// yellow('limit100', limit100)

routes/views/index.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,18 @@ const router = express.Router()
99
router.get('/amount-by-category', amountByCategory)
1010
router.get('/data-changes', transactionsChanges)
1111
router.get('/original-values', originalValues)
12-
router.get('/all-data-by-description/:showOmitted', allTransactionsByDescription)
12+
router.get(
13+
'/all-data-by-description/:showOmitted',
14+
allTransactionsByDescription
15+
)
16+
router.get(
17+
'/all-data-by-description/:showOmitted/:year',
18+
allTransactionsByDescription
19+
)
20+
router.get(
21+
'/all-data-by-description/:showOmitted/:year/:month',
22+
allTransactionsByDescription
23+
)
1324
router.get('/raw-data', allTransactionsByDescription)
1425

1526
export default router

0 commit comments

Comments
 (0)