GlobalNotificationSlackSetting.js 957 B

12345678910111213141516171819202122232425
  1. const mongoose = require('mongoose');
  2. const GlobalNotificationSetting = require('./index');
  3. /**
  4. * create child schemas inherited from parentSchema
  5. * all child schemas are stored in globalnotificationsettings collection
  6. * @link{http://url.com module_name}
  7. * @param {object} parentSchema
  8. * @param {string} modelName
  9. * @param {string} discriminatorKey
  10. */
  11. const createChildSchemas = (parentSchema, modelName, discriminatorKey) => {
  12. const Notification = mongoose.model(modelName, parentSchema);
  13. const slackNotification = Notification.discriminator('slack', new mongoose.Schema({
  14. slackChannels: String,
  15. }, {discriminatorKey: discriminatorKey}));
  16. return slackNotification;
  17. };
  18. module.exports = function(crowi) {
  19. GlobalNotificationSetting.class.crowi = crowi;
  20. GlobalNotificationSetting.schema.loadClass(GlobalNotificationSetting.class);
  21. return createChildSchemas(GlobalNotificationSetting.schema, 'GlobalNotificationSetting', 'type');
  22. };