Advertisement
tochka

01. Request Validator

Jul 6th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. unction requestValidator(obj) {
  2.   let validObject = {method: obj.method,
  3.       uri: obj.uri,
  4.       version: obj.version,
  5.       message: obj.message
  6.   };
  7.  
  8.   if(!obj.hasOwnProperty('method')){
  9.       throw new Error("Invalid request header: Invalid Method")
  10.   } else if(!obj.hasOwnProperty('uri')){
  11.       throw new Error("Invalid request header: Invalid URI")
  12.   } else if(!obj.hasOwnProperty('version')){
  13.       throw new Error("Invalid request header: Invalid Version")
  14.   } else if(!obj.hasOwnProperty('message')){
  15.       throw new Error("Invalid request header: Invalid Message")
  16.   }
  17.  
  18.   let validMethods = ['GET', 'POST', 'DELETE', 'CONNECT'];
  19.   if(!validMethods.includes(validObject.method)) {
  20.       throw new Error("Invalid request header: Invalid Method")
  21.   }
  22.  
  23.   let uriRegex = /^[\w.]+$/;
  24.   if(!validObject.uri.match(uriRegex)){
  25.       throw new Error("Invalid request header: Invalid URI")
  26.   }
  27.  
  28.   let validVersions = ['HTTP/0.9', 'HTTP/1.0', 'HTTP/1.1', 'HTTP/2.0'];
  29.   if(!validVersions.includes(validObject.version) || validObject.uri === ''){
  30.       throw new Error("Invalid request header: Invalid Version")
  31.   }
  32.  
  33.   let messageRegex = /^[^<>\\&'"]+$/;
  34.   if(!validObject.message.match(messageRegex) && validObject.message !== ''){
  35.       throw new Error("Invalid request header: Invalid Message")
  36.   }
  37.  
  38.  return validObject;
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement