1
1
import { transactionFields as tFields } from 'db/constants'
2
2
import R from 'ramda'
3
- import { getOverlappingDaysInRanges , isDate } from 'date-fns'
3
+ import { /* getOverlappingDaysInRanges, */ isDate } from 'date-fns'
4
4
import dataTypes from 'db/dataTypes'
5
5
6
6
// eslint-disable-next-line
7
7
import { yellow , blue , green , redf } from 'logger'
8
8
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 ) )
12
10
13
11
/**
14
- *
15
- * @param {string } fieldName
16
- * @param {any } fieldValue
12
+ *
13
+ * @param {string } fieldName
14
+ * @param {any } fieldValue
17
15
* @returns {object } { good: boolean, error: null || string }
18
16
* @description Returns true if fieldValue is the correct type for fieldName
19
17
* 'type' & 'checkNumber' fields are optional
20
18
*/
21
19
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 }
34
34
}
35
+ }
35
36
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 } `
41
44
}
45
+ }
42
46
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 } `
48
54
}
55
+ }
49
56
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
+ }
56
64
57
- }
65
+ return good
66
+ }
0 commit comments