* apply rules on inputs * @param field * @returns {Promise. }
(field)
| 196 | * @returns {Promise.<boolean>} |
| 197 | */ |
| 198 | async validate(field) { |
| 199 | |
| 200 | let proceed = true; |
| 201 | |
| 202 | if (field.multiple) { |
| 203 | |
| 204 | |
| 205 | let fieldArr = field.path; |
| 206 | |
| 207 | let fieldName = field.field; |
| 208 | |
| 209 | |
| 210 | |
| 211 | for (let i in this.validator.inputs[fieldArr[0]]) { |
| 212 | |
| 213 | let item = this.validator.inputs[fieldArr[0]][i]; |
| 214 | |
| 215 | //console.log(item, fieldArr); |
| 216 | |
| 217 | let indexedField = fieldName.replace('*', i); |
| 218 | |
| 219 | //fieldWithIndex.push(indexedField); |
| 220 | |
| 221 | let value = ''; |
| 222 | |
| 223 | let fieldArrLen = fieldArr.length; |
| 224 | |
| 225 | if (fieldArrLen == 3) { |
| 226 | value = item[fieldArr[2]]; |
| 227 | } else if (fieldArrLen == 2) { |
| 228 | value = item; |
| 229 | } |
| 230 | |
| 231 | proceed = await this.validate({ |
| 232 | field: indexedField, |
| 233 | multiple: false, |
| 234 | rules: field.rules, |
| 235 | required: field.required |
| 236 | }); |
| 237 | |
| 238 | } |
| 239 | |
| 240 | return proceed; |
| 241 | } |
| 242 | |
| 243 | for (let r = 0; r < field.rules.length; r++) { |
| 244 | |
| 245 | field.value = this.validator.inputVal(field.field, field.multiple); |
| 246 | |
| 247 | if (field.value == false) { |
| 248 | field.value = String(field.value); |
| 249 | } |
| 250 | |
| 251 | //console.log('validated rule', field.rules[r], field); |
| 252 | //console.log('--------------------------------------'); |
| 253 | |
| 254 | let func = 'validate' + field.rules[r].rule.charAt(0).toUpperCase() + field.rules[r].rule.slice(1); |
| 255 |
no test coverage detected