Completed
Pull Request — master (#804)
by Gabriel
64:46
created

app/js/lib/validation_dispatchers/address.js   A

Complexity

Total Complexity 1
Complexity/F 1

Size

Lines of Code 42
Function Count 1

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 1
dl 0
loc 42
rs 10
c 1
b 0
f 0
cc 0
nc 1
mnd 0
bc 1
fnc 1
bpm 1
cpm 1
noi 0

1 Function

Rating   Name   Duplication   Size   Complexity  
A address.js ➔ createAddressValidationDispatcher 0 22 1
1
'use strict';
2
3
/**
4
 *
5
 * @module redux_validation
6
 */
7
8
var objectAssign = require( 'object-assign' ),
9
	ValidationDispatcher = require( './base' ),
10
	Actions = require( '../actions' ),
11
	_ = require( 'underscore' ),
12
13
	/**
14
	 *
15
	 * @param {AddressValidator} validator
16
	 * @param {Object} initialValues Initial form state. Only the keys and values from fieldNames will be used
17
	 * @return {ValidationDispatcher}
18
	 */
19
	createAddressValidationDispatcher = function ( validator,  initialValues ) {
20
		var fieldNames = [
21
			'addressType',
22
			'salutation',
23
			'title',
24
			'firstName',
25
			'lastName',
26
			'companyName',
27
			'street',
28
			'postcode',
29
			'city',
30
			'country',
31
			'email'
32
		];
33
34
		return objectAssign( Object.create( ValidationDispatcher ), {
35
			validationFunction: validator.validate.bind( validator ),
36
			actionCreationFunction: Actions.newFinishAddressValidationAction,
37
			fields: fieldNames,
38
			previousFieldValues: _.pick( initialValues || {}, fieldNames )
39
		} );
40
	};
41
42
module.exports = createAddressValidationDispatcher;
43
44