user.js 963 B

123456789101112131415161718192021222324
  1. import {HttpError} from "../HttpError.js";
  2. export default (data)=>{
  3. if(data.name) validateName(data.name);
  4. if(data.emai) validateEmail(data.email);
  5. if(data.pass) validatePass(data.pass, data.confirmPass);
  6. }
  7. const validateName = (name)=>{
  8. if(typeof(name) !== "string") throw new HttpError(400, "Invalid name");
  9. if(name.length < 3) throw new HttpError(400, "Name must contain at least 3 characters");
  10. }
  11. const validateEmail = (email)=>{
  12. email = email.toLowerCase();
  13. if(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(data.email) !== true){
  14. throw new HttpError(400, "Invalid email");
  15. }
  16. }
  17. const validatePass = (pass, confirmPass)=>{
  18. if(pass.length < 10) throw new HttpError(400, "Password must contain at least 10 characters");
  19. if(pass !== confirmPass) throw new HttpError(400, "Passwords do not match");
  20. }