Files
overleaf-cep/services/web/app/src/models/Survey.js
Jimmy Domagala-Tang 83f934f387 Merge pull request #13620 from overleaf/jdt-survey-rollout-slider
Jdt survey rollout slider

GitOrigin-RevId: 958000c86fc79447484405b2382871bd118fb9fa
2023-07-17 10:53:22 +00:00

55 lines
1.0 KiB
JavaScript

const mongoose = require('../infrastructure/Mongoose')
const { Schema } = mongoose
const MIN_NAME_LENGTH = 3
const MAX_NAME_LENGTH = 200
const NAME_REGEX = /^[a-z0-9-]+$/
const SurveySchema = new Schema(
{
name: {
type: String,
minLength: MIN_NAME_LENGTH,
maxlength: MAX_NAME_LENGTH,
required: true,
validate: {
validator: function (input) {
return input !== null && NAME_REGEX.test(input)
},
message: `invalid, must match: ${NAME_REGEX}`,
},
},
preText: {
type: String,
required: true,
},
linkText: {
type: String,
required: true,
},
url: {
type: String,
required: true,
},
options: {
hasRecurlyGroupSubscription: {
type: Boolean,
default: false,
},
rolloutPercentage: {
type: Number,
default: 100,
},
},
},
{
collection: 'surveys',
minimize: false,
}
)
module.exports = {
Survey: mongoose.model('Survey', SurveySchema),
SurveySchema,
}