Created
September 23, 2020 06:05
-
-
Save damiancipolat/ca1eda9da525d0deddd8d8102b8e922f to your computer and use it in GitHub Desktop.
An example of a full client schema validation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const Joi = require('joi'); | |
//Schemas. | |
const googleSchema = Joi.object({ | |
avatar:Joi.string().uri(), | |
email:Joi.string().email(), | |
name:Joi.string() | |
}); | |
const blockedSchema = Joi.object({ | |
motive:Joi.string(), | |
date:Joi.date() | |
}); | |
const tycSchema = Joi.object({ | |
date:Joi.date(), | |
version:Joi.string() | |
}); | |
const phoneSchema= Joi.object({ | |
country:Joi.string(), | |
number:Joi.string(), | |
validatedAt:Joi.date() | |
}); | |
const legalSchema = Joi.object({ | |
fatca:Joi.boolean(), | |
ddjj:Joi.boolean(), | |
pep:Joi.boolean() | |
}); | |
const accountSchema = Joi.object({ | |
opRerenceId:Joi.string() | |
}); | |
const dniSchema = Joi.object({ | |
firstName:Joi.string(), | |
lastName:Joi.string(), | |
number:Joi.string(), | |
address:Joi.string(), | |
gender:Joi.string(), | |
birthdate:Joi.date(), | |
country:Joi.string(), | |
nationality:Joi.string(), | |
expiration:Joi.date(), | |
fiscalNumber:Joi.string() | |
}); | |
const clientschema = Joi.object({ | |
client_id:Joi.string(), | |
email:Joi.string().email(), | |
createdFrom:Joi.string().valid('social','email'), | |
status:Joi.string().valid('active','inactive','pending','suspended'), | |
google:googleSchema, | |
blocked:blockedSchema, | |
sygnedTyc:tycSchema, | |
phone:phoneSchema, | |
legal:legalSchema, | |
document:dniSchema, | |
acccount:accountSchema | |
}); | |
//Examples. | |
const tmpDni ={ | |
firstName:'Damian', | |
lastName:'Cipolat', | |
number:'332955215', | |
address:'Opa opa', | |
gender:'M', | |
birthdate:'1987-10-06', | |
country:'ARGENTINA', | |
nationality:'ARGENTINA', | |
expiration:'2987-10-06', | |
fiscalNumber:'2033295515' | |
}; | |
const tmpAccount={ | |
opRerenceId:"123124343243243232324" | |
}; | |
const tmpLegal = { | |
fatca:false, | |
ddjj:false, | |
pep:false | |
}; | |
const tmpPhone={ | |
country:"+54", | |
number:"1166587382", | |
validatedAt:"2019-01-'01" | |
}; | |
const tmpTyc={ | |
date:"01/01/01", | |
version:"1.0" | |
}; | |
const tmpBloq ={ | |
motive:"dddddddddd", | |
date:"2010-01-01" | |
}; | |
const tmpGoogle= { | |
avatar:"www.damian.com", | |
email:"damian.cipolat@gmail.com", | |
name:"sssssssssssss" | |
}; | |
let resu = dni.validate(tmpDni); | |
console.log(resu); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment