UNPKG

linagora-rse

Version:
110 lines (104 loc) 3.73 kB
'use strict'; var q = require('q'); var mongoose = require('mongoose'); require('../../../backend/core/db/mongo/models/configuration'); var Configuration = mongoose.model('Configuration'); module.exports = function(domains, host) { var jmapHost = process.env.JMAP_SERVER_HOST || host || 'localhost'; var port = process.env.JMAP_SERVER_PORT || 1080; var path = process.env.JMAP_SERVER_PATH || 'jmap'; var isJmapSendingEnabled = process.env.JMAP_SENDING_ENABLED !== 'false'; var isSaveDraftBeforeSendingEnabled = process.env.SAVE_DRAFT_BEFORE_SENDING_ENABLED === 'true'; var isAttachmentsEnabled = process.env.ATTACHMENTS_ENABLED !== 'false'; var drafts = process.env.DRAFTS !== 'false'; var maxSizeUpload = parseInt(process.env.JMAP_MAX_SIZE_UPLOAD, 10) || 20971520; var numberItemsPerPageOnBulkReadOperations = 30; var numberItemsPerPageOnBulkDeleteOperations = 30; var numberItemsPerPageOnBulkUpdateOperations = 30; var jmapHostPort = 'http://' + jmapHost + ':' + port; var api = jmapHostPort + '/' + path; var uploadUrl = process.env.JMAP_UPLOAD_URL || jmapHostPort + '/upload'; var downloadUrl = process.env.JMAP_DOWNLOAD_URL || jmapHostPort + '/download/{blobId}/{name}'; var view = process.env.JMAP_VIEW || 'messages'; var swipeRightAction = process.env.JMAP_SWIPE_RIGHT_ACTION || 'markAsRead'; var isForwardingEnabled = process.env.FORWARDING !== 'false'; var isLocalCopyEnabled = process.env.LOCAL_COPY_ENABLED !== 'false'; function createInboxFeature() { var promises = domains.map(function(domain) { var configuration = new Configuration({ domain_id: domain._id || domain, modules: [{ name: 'linagora.esn.unifiedinbox', configurations: [ { name: 'api', value: api }, { name: 'uploadUrl', value: uploadUrl }, { name: 'downloadUrl', value: downloadUrl }, { name: 'isJmapSendingEnabled', value: isJmapSendingEnabled }, { name: 'isSaveDraftBeforeSendingEnabled', value: isSaveDraftBeforeSendingEnabled }, { name: 'composer.attachments', value: isAttachmentsEnabled }, { name: 'maxSizeUpload', value: maxSizeUpload }, { name: 'numberItemsPerPageOnBulkReadOperations', value: numberItemsPerPageOnBulkReadOperations }, { name: 'numberItemsPerPageOnBulkDeleteOperations', value: numberItemsPerPageOnBulkDeleteOperations }, { name: 'numberItemsPerPageOnBulkUpdateOperations', value: numberItemsPerPageOnBulkUpdateOperations }, { name: 'drafts', value: drafts }, { name: 'view', value: view }, { name: 'swipeRightAction', value: swipeRightAction }, { name: 'forwarding', value: isForwardingEnabled }, { name: 'isLocalCopyEnabled', value: isLocalCopyEnabled } ] }] }); var deferred = q.defer(); console.log('Creating feature flipping for inbox module', configuration); configuration.save(deferred.makeNodeResolver()); return deferred.promise; }); return q.all(promises); } return createInboxFeature(); };