From 32a54f91f99b9264cfb3067978ecc7197b9f60ab Mon Sep 17 00:00:00 2001 From: Bastien Seree Date: Tue, 15 Oct 2024 16:10:43 +0200 Subject: [PATCH] Cyberleague: [#159] Add fields to statist schema --- .../server/plugins/cyberleague/functions.js | 5 +- .../cyberleague/schemas/StatisticSchema.js | 48 ++++++++++++++++++- 2 files changed, 51 insertions(+), 2 deletions(-) diff --git a/backend/web/server/plugins/cyberleague/functions.js b/backend/web/server/plugins/cyberleague/functions.js index b72aa4bb06..fdf3130587 100644 --- a/backend/web/server/plugins/cyberleague/functions.js +++ b/backend/web/server/plugins/cyberleague/functions.js @@ -13,7 +13,7 @@ const { loadFromDb, setPrePutData, } = require('../../utils/database') -const { ROLES, SECTOR, EXPERTISE_CATEGORIES, CONTENT_TYPE, JOBS, COMPANY_SIZE, ROLE_PARTNER, ROLE_ADMIN, ROLE_MEMBER, ESTIMATED_DURATION_UNITS, LOOKING_FOR_MISSION, CONTENT_VISIBILITY, EVENT_VISIBILITY, ANSWERS, QUESTION_CATEGORIES, SCORE_LEVELS, COIN_SOURCES, STATUTS, GROUP_VISIBILITY, USER_LEVELS, CONTRACT_TYPES, WORK_DURATIONS, PAY, STATUT_SPONSOR, STATUT_FOUNDER, STATUSES, STATUT_PARTNER, COMPLETED, OFFER_VISIBILITY, MISSION_VISIBILITY, COIN_SOURCE_LIKE_COMMENT, COMPLETED_YES, COIN_SOURCE_PARTICIPATE, REQUIRED_COMPLETION_FIELDS, OPTIONAL_COMPLETION_FIELDS } = require('./consts') +const { ROLES, SECTOR, EXPERTISE_CATEGORIES, CONTENT_TYPE, JOBS, COMPANY_SIZE, ROLE_PARTNER, ROLE_ADMIN, ROLE_MEMBER, ESTIMATED_DURATION_UNITS, LOOKING_FOR_MISSION, CONTENT_VISIBILITY, EVENT_VISIBILITY, ANSWERS, QUESTION_CATEGORIES, SCORE_LEVELS, COIN_SOURCES, STATUTS, GROUP_VISIBILITY, USER_LEVELS, CONTRACT_TYPES, WORK_DURATIONS, PAY, STATUT_SPONSOR, STATUT_FOUNDER, STATUSES, STATUT_PARTNER, COMPLETED, OFFER_VISIBILITY, MISSION_VISIBILITY, COIN_SOURCE_LIKE_COMMENT, COMPLETED_YES, COIN_SOURCE_PARTICIPATE, REQUIRED_COMPLETION_FIELDS, OPTIONAL_COMPLETION_FIELDS, ENOUGH_SCORES } = require('./consts') const { PURCHASE_STATUS, REGIONS } = require('../../../utils/consts') const Company = require('../../models/Company') const { BadRequestError, ForbiddenError } = require('../../utils/errors') @@ -382,6 +382,9 @@ declareEnumField({model: 'offer', field: 'price_member_duration_unit', enumValue //Mission declarations declareVirtualField({model: 'mission', field: 'visibility', requires: 'is_public', instance: 'String', enumValues: MISSION_VISIBILITY}) +//Statistic declarations +declareEnumField({model: 'statistic', field: 'enoughScores', enumValues: ENOUGH_SCORES}) + diff --git a/backend/web/server/plugins/cyberleague/schemas/StatisticSchema.js b/backend/web/server/plugins/cyberleague/schemas/StatisticSchema.js index 096a9720c0..802388f8f4 100644 --- a/backend/web/server/plugins/cyberleague/schemas/StatisticSchema.js +++ b/backend/web/server/plugins/cyberleague/schemas/StatisticSchema.js @@ -1,11 +1,57 @@ const mongoose = require('mongoose') const {schemaOptions} = require('../../../utils/schemas') +const { ENOUGH_SCORES } = require('../consts') const Schema = mongoose.Schema const StatisticSchema = new Schema({ - + enoughScores: { + type: String, + enum: Object.keys(ENOUGH_SCORES) + }, + securityIncidentManagement: { + type: Number + }, + partner: { + type: Number + }, + inventory: { + type: Number + }, + insurance: { + type: Number + }, + cyberRef: { + type: Number + }, + intrusion: { + type: Number + }, + externalized: { + type: Number + }, + webApp: { + type: Number + }, + antivirus: { + type: Number + }, + charter: { + type: Number + }, + financial: { + type: Number + }, + sensibilization: { + type: Number + }, + mfa: { + type: Number + }, + admin: { + type: Number + }, }, schemaOptions ) module.exports = StatisticSchema \ No newline at end of file