@@ -351,6 +351,7 @@ async function submitCve (req, res, next) {
351351
352352 // check that cve id exists
353353 let result = await cveIdRepo . findOneByCveId ( id )
354+ const oldCveID = result
354355 if ( ! result || result . state === CONSTANTS . CVE_STATES . AVAILABLE ) {
355356 return res . status ( 403 ) . json ( error . cveDne ( ) )
356357 }
@@ -363,7 +364,7 @@ async function submitCve (req, res, next) {
363364
364365 await cveRepo . updateByCveId ( cveId , newCve , { upsert : true } )
365366
366- if ( result . cve . cveMetadata . state !== state && ( state === CONSTANTS . CVE_STATES . PUBLISHED || state === CONSTANTS . CVE_STATES . REJECTED ) ) {
367+ if ( oldCveID . state !== state && ( state === CONSTANTS . CVE_STATES . PUBLISHED || state === CONSTANTS . CVE_STATES . REJECTED ) ) {
367368 await cveIdRepo . updateByCveId ( cveId , { state : state } )
368369 }
369370
@@ -416,6 +417,7 @@ async function updateCve (req, res, next) {
416417 logger . info ( cveId + ' does not exist.' )
417418 return res . status ( 403 ) . json ( error . cveDne ( ) )
418419 }
420+ const oldCveID = result
419421
420422 result = await cveRepo . findOneByCveId ( cveId )
421423 if ( ! result ) {
@@ -424,7 +426,7 @@ async function updateCve (req, res, next) {
424426 }
425427
426428 await cveRepo . updateByCveId ( cveId , newCve )
427- if ( result . cve . cveMetadata . state !== newCveState && ( newCveState === CONSTANTS . CVE_STATES . PUBLISHED || newCveState === CONSTANTS . CVE_STATES . REJECTED ) ) {
429+ if ( oldCveID . state !== newCveState && ( newCveState === CONSTANTS . CVE_STATES . PUBLISHED || newCveState === CONSTANTS . CVE_STATES . REJECTED ) ) {
428430 await cveIdRepo . updateByCveId ( cveId , { state : newCveState } )
429431 }
430432
@@ -677,10 +679,7 @@ async function rejectCVE (req, res, next) {
677679 }
678680
679681 // Update state of CVE ID
680- if ( result . cve . cveMetadata . state !== CONSTANTS . CVE_STATES . REJECTED ) {
681- result = await cveIdRepo . updateByCveId ( id , { state : CONSTANTS . CVE_STATES . REJECTED } )
682- }
683-
682+ result = await cveIdRepo . updateByCveId ( id , { state : CONSTANTS . CVE_STATES . REJECTED } )
684683 if ( ! result ) {
685684 return res . status ( 500 ) . json ( error . serverError ( ) )
686685 }
@@ -736,6 +735,8 @@ async function rejectExistingCve (req, res, next) {
736735 result . cve . dataVersion = CONSTANTS . SCHEMA_VERSION
737736 }
738737
738+ // old cve record
739+ const oldCveRecord = result
739740 // update CVE record to rejected
740741 const updatedRecord = Cve . updateCveToRejected ( id , providerMetadata , result . cve , req . ctx . body )
741742 const updatedCve = new Cve ( { cve : updatedRecord } )
@@ -751,12 +752,11 @@ async function rejectExistingCve (req, res, next) {
751752 }
752753
753754 // update cveID to rejected only if the previous state was not already rejected
754- if ( result . cve . cveMetadata . state !== CONSTANTS . CVE_STATES . REJECTED ) {
755+ if ( oldCveRecord . cve . cveMetadata . state !== CONSTANTS . CVE_STATES . REJECTED ) {
755756 result = await cveIdRepo . updateByCveId ( id , { state : CONSTANTS . CVE_STATES . REJECTED } )
756- }
757-
758- if ( ! result ) {
759- return res . status ( 500 ) . json ( error . serverError ( ) )
757+ if ( ! result ) {
758+ return res . status ( 500 ) . json ( error . serverError ( ) )
759+ }
760760 }
761761
762762 const responseMessage = {
0 commit comments