Example #1
0
import emojiSets from '@config/emoji-sets';
import oneOf from '@server/utils/validators/one-of';
import steamId from '@server/utils/validators/steam-id';

export default mongoose.model('UserSettings', new mongoose.Schema({
  id: {
    type: String,
    validate: steamId({}),
    required: [true, 'The userId is required'],
    unique: true,
    ref: 'User',
  },

  announcer: {
    type: String,
    validate: oneOf(Object.keys(announcers), {}),
  },

  volume: {
    type: Number,
    min: 0,
    max: 100,
  },

  emojiSet: {
    type: String,
    validate: oneOf(Object.keys(emojiSets), {}),
  },
}));

Example #2
0
import maps from '@config/maps';
import steamId from '@server/utils/validators/steam-id';
import classes from '@config/classes';

export default mongoose.model('Player', new mongoose.Schema({
  id: { type: mongoose.Types.ObjectId },

  userId: {
    type: String,
    validate: steamId({}),
    required: true,
  },

  map: {
    type: String,
    validate: oneOf(Object.keys(maps), { nullIsAllowed: true }),
  },

  isReady: {
    type: Boolean,
    required: true,
  },

  isSubbed: {
    type: Boolean,
    required: false,
  },

  pickupId: {
    type: Number,
  },
Example #3
0
import mongoose from 'mongoose';
import regions from '@config/regions';
import gamemodes from '@config/gamemodes';
import oneOf from '@server/utils/validators/one-of';
import pickupStates from '@config/queue-states';
import maps from '@config/maps';

export default mongoose.model('Queue', new mongoose.Schema({
  id: {
    type: String,
    required: true,
  },

  state: {
    type: String,
    validate: oneOf(Object.keys(pickupStates), {}),
    required: true,
  },

  region: {
    type: String,
    validate: oneOf(Object.keys(regions), {}),
    required: true,
  },

  gamemode: {
    type: String,
    validate: oneOf(Object.keys(gamemodes), {}),
    required: true,
  },
Example #4
0
  id: {
    type: String,
    validate: steamId({}),
    required: [true, 'SteamId on the userId object is required!'],
    unique: true,
    index: true,
  },

  name: {
    type: String,
    trim: true,
  },

  region: {
    type: String,
    validate: oneOf(Object.keys(regions), { nullIsAllowed: true }),
  },

  roles: {
    type: [String],
    validate(value: Array<keyof typeof roles>) {
      return value.every(role => roleNames.includes(role));
    },
  },

  online: Boolean,
  lastOnline: Date,
  hasAcceptedTheRules: Boolean,
  createdOn: Date,
  lastPickup: Number,
  hasCompletedSignUp: Boolean,