Skip to content

Commit ea1b9c6

Browse files
committed
Added bulkdownload to allow for more tests to pass
1 parent 2cbb4cf commit ea1b9c6

File tree

4 files changed

+41
-6
lines changed

4 files changed

+41
-6
lines changed

src/middleware/schemas/BulkDownloadOrg.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
22
"$schema": "http://json-schema.org/draft-07/schema#",
3-
"$id": "https://cve.org/schemas/org/bulkdownload",
3+
"$id": "BaseOrg",
44
"type": "object",
55
"title": "CVE Bulk Download Organization",
66
"description": "Schema for a CVE Bulk Download Organization",
77
"allOf": [
8-
{ "$ref": "/schemas/org/base" },
8+
{ "$ref": "BaseOrg" },
99
{
1010
"properties": {
1111
"authority": {

src/model/adporg.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,6 @@ ADPSchema.statics.validateOrg = function (record) {
2424
}
2525
return validateObject
2626
}
27-
const CNAOrg = BaseOrg.discriminator('ADPOrg', ADPSchema, options)
27+
const ADPOrg = BaseOrg.discriminator('ADPOrg', ADPSchema, options)
2828

29-
module.exports = CNAOrg
29+
module.exports = ADPOrg

src/model/bulkdownloadorg.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
const mongoose = require('mongoose')
2+
const BaseOrg = require('./baseorg')
3+
const fs = require('fs')
4+
const Ajv = require('ajv')
5+
const addFormats = require('ajv-formats')
6+
const BaseOrgSchema = JSON.parse(fs.readFileSync('src/middleware/schemas/BaseOrg.json'))
7+
const BulkDownloadOrgSchema = JSON.parse(fs.readFileSync('src/middleware/schemas/BulkDownloadOrg.json'))
8+
const ajv = new Ajv({ allErrors: false })
9+
addFormats(ajv)
10+
ajv.addSchema(BaseOrgSchema)
11+
12+
const validate = ajv.compile(BulkDownloadOrgSchema)
13+
14+
const schema = {}
15+
16+
const options = { discriminatorKey: 'kind' }
17+
const BulkDownloadSchema = new mongoose.Schema(schema, options)
18+
BulkDownloadSchema.statics.validateOrg = function (record) {
19+
const validateObject = {}
20+
validateObject.isValid = validate(record)
21+
22+
if (!validateObject.isValid) {
23+
validateObject.errors = validate.errors
24+
}
25+
return validateObject
26+
}
27+
const BulkDownloadOrg = BaseOrg.discriminator('BulkDownloadOrg', BulkDownloadSchema, options)
28+
29+
module.exports = BulkDownloadOrg

src/repositories/baseOrgRepository.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ const BaseRepository = require('./baseRepository')
22
const BaseOrgModel = require('../model/baseorg')
33
const CNAOrgModel = require('../model/cnaorg')
44
const ADPOrgModel = require('../model/adporg')
5+
const BulkDownloadModel = require('../model/bulkdownloadorg')
56
const SecretariatOrgModel = require('../model/secretariatorg')
67
const CveIdRepository = require('./cveIdRepository')
78
const uuid = require('uuid')
@@ -222,6 +223,10 @@ class BaseOrgRepository extends BaseRepository {
222223
registryObjectRaw.hard_quota = 0
223224
const adpObjectToSave = new ADPOrgModel(registryObjectRaw)
224225
registryObject = await adpObjectToSave.save(options)
226+
} else if (registryObjectRaw.authority.includes('BULK_DOWNLOAD')) {
227+
registryObjectRaw.hard_quota = 0
228+
const bulkDownloadObjectToSave = new BulkDownloadModel(registryObjectRaw)
229+
registryObject = await bulkDownloadObjectToSave.save(options)
225230
} else {
226231
// eslint-disable-next-line no-throw-literal
227232
throw 'dave you screwed up'
@@ -237,8 +242,9 @@ class BaseOrgRepository extends BaseRepository {
237242
_.set(legacyObjectRaw, 'policies.id_quota', CONSTANTS.DEFAULT_ID_QUOTA)
238243
}
239244
if (
240-
legacyObjectRaw.authority.active_roles.length === 1 &&
241-
legacyObjectRaw.authority.active_roles[0] === 'ADP'
245+
legacyObjectRaw.authority.active_roles.length === 1 && (
246+
legacyObjectRaw.authority.active_roles[0] === 'ADP' ||
247+
legacyObjectRaw.authority.active_roles[0] === 'BULK_DOWNLOAD')
242248
) {
243249
// ADPs have quota of 0
244250
_.set(legacyObjectRaw, 'policies.id_quota', 0)

0 commit comments

Comments
 (0)