kstoyanov

1.Request Validator

Oct 27th, 2020
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function requestValidator(requestObj) {
  2.     const validMethods = ['GET', 'POST', 'DELETE', 'CONNECT'];
  3.     const validVersion = ['HTTP/0.9', 'HTTP/1.0', 'HTTP/1.1', 'HTTP/2.0'];
  4.     const regexURI = /^[a-zA-Z0-9.*]+$/;
  5.     const regexMessage = /^[^<>\\&'"\r\n]*$/;
  6.  
  7.     if (requestObj.hasOwnProperty('method')) {
  8.       if (!validMethods.includes(requestObj.method)) {
  9.         throw new Error('Invalid request header: Invalid Method');
  10.       }
  11.     } else {
  12.       throw new Error('Invalid request header: Invalid Method');
  13.     }
  14.  
  15.     if (requestObj.hasOwnProperty('uri')) {
  16.       if (!requestObj.uri.match(regexURI)) {
  17.         throw new Error('Invalid request header: Invalid URI');
  18.       }
  19.     } else {
  20.       throw new Error('Invalid request header: Invalid URI');
  21.     }
  22.  
  23.     if (requestObj.hasOwnProperty('version')) {
  24.       if (!validVersion.includes(requestObj.version)) {
  25.         throw new Error('Invalid request header: Invalid Version');
  26.       }
  27.     } else {
  28.       throw new Error('Invalid request header: Invalid Version');
  29.     }
  30.  
  31.     if (requestObj.hasOwnProperty('message')) {
  32.       if (!requestObj.message.match(regexMessage) && requestObj.message !== '') {
  33.         throw new Error('Invalid request header: Invalid Message');
  34.       }
  35.     } else {
  36.       throw new Error('Invalid request header: Invalid Message');
  37.     }
  38.  
  39.     return requestObj;
  40.   }
  41.  
Add Comment
Please, Sign In to add comment