浏览代码

PROD-1221: Code clean-up

 * More descriptive variable names
 * Extract validateVenId function
Blake Schneider 5 年之前
父节点
当前提交
4bf0a24394
共有 2 个文件被更改,包括 57 次插入84 次删除
  1. 27 33
      processes/event.js
  2. 30 51
      processes/registration.js

+ 27 - 33
processes/event.js

@@ -123,18 +123,18 @@ function convertToOadrEvents(nantumEvent) {
 }
 
 async function retrieveEvents(
-  obj,
+  oadrRequestEvent,
   clientCertificateCn,
   clientCertificateFingerprint,
 ) {
   logger.info(
     'retrieveEvents',
-    obj,
+    oadrRequestEvent,
     clientCertificateCn,
     clientCertificateFingerprint,
   );
 
-  const requestVenId = obj.venId;
+  const requestVenId = oadrRequestEvent.venId;
 
   if (!requestVenId) {
     const error = new Error('No VenID in request');
@@ -160,8 +160,8 @@ async function retrieveEvents(
   return {
     responseCode: '200',
     responseDescription: 'OK',
-    responseRequestId: obj.requestId || '',
-    requestId: obj.requestId || '',
+    responseRequestId: oadrRequestEvent.requestId || '',
+    requestId: oadrRequestEvent.requestId || '',
     vtnId: vtnId,
     events: convertToOadrEvents(event),
   };
@@ -180,12 +180,7 @@ async function updateOptType(
   );
 
   const requestVenId = oadrCreatedEvent.venId;
-
-  if (!requestVenId) {
-    const error = new Error('No VenID in request');
-    error.responseCode = 452;
-    throw error;
-  }
+  validateVenId(requestVenId, clientCertificateFingerprint, true);
 
   if (requestVenId !== clientCertificateFingerprint) {
     // as per certification item #512, venId MUST be case-sensitive
@@ -236,37 +231,19 @@ async function filterOutAcknowledgedEvents(venId, events) {
 }
 
 async function pollForEvents(
-  obj,
+  oadrPoll,
   clientCertificateCn,
   clientCertificateFingerprint,
 ) {
   logger.info(
     'pollForEvents',
-    obj,
+    oadrPoll,
     clientCertificateCn,
     clientCertificateFingerprint,
   );
 
-  const requestVenId = obj.venId;
-
-  if (!requestVenId) {
-    const error = new Error('No VenID in request');
-    error.responseCode = 452;
-    throw error;
-  }
-
-  if (requestVenId !== clientCertificateFingerprint) {
-    // as per certification item #512, venId MUST be case-sensitive
-    const error = new Error('VenID does not match certificate');
-    error.responseCode = 452;
-    throw error;
-  }
-
-  if (!clientCertificateCn) {
-    const error = new Error('Could not determine CN from client certificate');
-    error.responseCode = 452;
-    throw error;
-  }
+  const requestVenId = oadrPoll.venId;
+  validateVenId(requestVenId, clientCertificateFingerprint, true);
 
   const event = await nantum.fetchEvent(requestVenId);
   const filteredEvents = await filterOutAcknowledgedEvents(
@@ -287,6 +264,23 @@ async function pollForEvents(
   return undefined;
 }
 
+function validateVenId(requestVenId, clientCertificateFingerprint, required)  {
+  if (requestVenId === clientCertificateFingerprint) {
+    return;
+  }
+  if (!required && requestVenId == null) {
+    return;
+  }
+  if (required && requestVenId == null) {
+    const error = new Error('VenID is missing');
+    error.responseCode = 452;
+    throw error;
+  }
+  const error = new Error('VenID is invalid');
+  error.responseCode = 452;
+  throw error;
+}
+
 module.exports = {
   pollForEvents,
   retrieveEvents,

+ 30 - 51
processes/registration.js

@@ -6,37 +6,19 @@ const logger = require('../logger');
 const nantum = require('../modules/nantum');
 
 async function registerParty(
-  obj,
+  oadrCreatePartyRegistration,
   clientCertificateCn,
   clientCertificateFingerprint,
 ) {
   logger.info(
     'registerParty',
-    obj,
+    oadrCreatePartyRegistration,
     clientCertificateCn,
     clientCertificateFingerprint,
   );
 
-  const requestVenId = obj.venId;
-
-  if (!requestVenId) {
-    const error = new Error('No VenID in request');
-    error.responseCode = 452;
-    throw error;
-  }
-
-  if (requestVenId !== clientCertificateFingerprint) {
-    // as per certification item #512, venId MUST be case-sensitive
-    const error = new Error('VenID does not match certificate');
-    error.responseCode = 452;
-    throw error;
-  }
-
-  if (!clientCertificateCn) {
-    const error = new Error('Could not determine CN from client certificate');
-    error.responseCode = 452;
-    throw error;
-  }
+  const requestVenId = oadrCreatePartyRegistration.venId;
+  validateVenId(requestVenId, clientCertificateFingerprint, true);
 
   let nantumRegistration = await nantum.fetchRegistration(requestVenId);
 
@@ -62,13 +44,13 @@ async function registerParty(
   }
 
   return nantumRegistrationToOadrRegistrationCreated(
-    obj.requestId,
+    oadrCreatePartyRegistration.requestId,
     nantumRegistration,
   );
 }
 
-async function query(obj, clientCertificateCn, clientCertificateFingerprint) {
-  logger.info('query', obj, clientCertificateCn, clientCertificateFingerprint);
+async function query(oadrQueryRegistration, clientCertificateCn, clientCertificateFingerprint) {
+  logger.info('query', oadrQueryRegistration, clientCertificateCn, clientCertificateFingerprint);
 
   const requestVenId = clientCertificateFingerprint;
 
@@ -86,47 +68,27 @@ async function query(obj, clientCertificateCn, clientCertificateFingerprint) {
   }
 
   return nantumRegistrationToOadrRegistrationCreated(
-    obj.requestId,
+    oadrQueryRegistration.requestId,
     nantumRegistration,
   );
 }
 
 async function cancelParty(
-  obj,
+  oadrCancelPartyRegistration,
   clientCertificateCn,
   clientCertificateFingerprint,
 ) {
   logger.info(
     'cancelParty',
-    obj,
+    oadrCancelPartyRegistration,
     clientCertificateCn,
     clientCertificateFingerprint,
   );
 
-  const registrationId = obj.registrationId;
-  if (!registrationId) {
-    const error = new Error('No registrationID in request');
-    error.responseCode = 452;
-    throw error;
-  }
-
-  const requestVenId = obj.venId;
-
-  if (requestVenId && requestVenId !== clientCertificateFingerprint) {
-    // as per certification item #512, venId MUST be case-sensitive
-    const error = new Error('VenID does not match certificate');
-    error.responseCode = 452;
-    throw error;
-  }
-
+  const requestVenId = oadrCancelPartyRegistration.venId;
+  validateVenId(requestVenId, clientCertificateFingerprint, false);
   const venId = clientCertificateFingerprint;
 
-  if (!clientCertificateCn) {
-    const error = new Error('Could not determine CN from client certificate');
-    error.responseCode = 452;
-    throw error;
-  }
-
   let nantumRegistration = await nantum.fetchRegistration(requestVenId);
   let cancelledRegistrationId;
 
@@ -154,7 +116,7 @@ async function cancelParty(
   }
 
   return {
-    responseRequestId: obj.requestId || '',
+    responseRequestId: oadrCancelPartyRegistration.requestId || '',
     responseCode: '200',
     responseDescription: 'OK',
     venId: venId,
@@ -177,6 +139,23 @@ function nantumRegistrationToOadrRegistrationCreated(
   };
 }
 
+function validateVenId(requestVenId, clientCertificateFingerprint, required)  {
+  if (requestVenId === clientCertificateFingerprint) {
+    return;
+  }
+  if (!required && requestVenId == null) {
+    return;
+  }
+  if (required && requestVenId == null) {
+    const error = new Error('VenID is missing');
+    error.responseCode = 452;
+    throw error;
+  }
+  const error = new Error('VenID is invalid');
+  error.responseCode = 452;
+  throw error;
+}
+
 module.exports = {
   cancelParty,
   query,