Added custom schema validation formats
							parent
							
								
									62dacd3867
								
							
						
					
					
						commit
						fd0bbb83c9
					
				|  | @ -10,10 +10,22 @@ const addSchemas = () => { | |||
|         const fileData = JSON.parse(fs.readFileSync(file, 'utf-8')); | ||||
|         ajv.addSchema(fileData, path.basename(file, '.json')); | ||||
|     }); | ||||
| 
 | ||||
|     // Email format
 | ||||
|     const emailRegex = /^([\w-.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/; | ||||
|     ajv.addFormat('emailAddress', emailRegex); | ||||
| 
 | ||||
|     // Amount format
 | ||||
|     const amountRegex = /^[1-9]\d*(\.\d+)?$/; | ||||
|     ajv.addFormat('amount', amountRegex); | ||||
| }; | ||||
| 
 | ||||
| const validateJson = (schema, json) => { | ||||
|     return ajv.validate(schema, json); | ||||
|     const result = ajv.validate(schema, json); | ||||
|     return{ | ||||
|         result, | ||||
|         errors: ajv.errors | ||||
|     }; | ||||
| }; | ||||
| 
 | ||||
| module.exports = { | ||||
|  |  | |||
|  | @ -1,10 +1,10 @@ | |||
| { | ||||
|     "$id": "newCustomer", | ||||
|     "$id": "customer", | ||||
|     "type": "object", | ||||
|     "properties": { | ||||
|         "email": { | ||||
|             "type": "string", | ||||
|             "format": "email" | ||||
|             "format": "emailAddress" | ||||
|         }, | ||||
|         "firstName": { | ||||
|             "type": "string" | ||||
|  | @ -12,7 +12,8 @@ | |||
|             "type": "string" | ||||
|         }, | ||||
|         "productPrice": { | ||||
|             "type": "number" | ||||
|             "type": "number", | ||||
|             "format": "amount" | ||||
|         }, | ||||
|         "productDescription": { | ||||
|             "type": "string" | ||||
|  |  | |||
|  | @ -9,7 +9,8 @@ | |||
|             "type": "string" | ||||
|         }, | ||||
|         "productPrice": { | ||||
|             "type": "number" | ||||
|             "type": "number", | ||||
|             "format": "amount" | ||||
|         }, | ||||
|         "productDescription": { | ||||
|             "type": "string" | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue