Repository navigation
Expand file tree
/
Copy pathModuleConfig.cfc
More file actions
76 lines (71 loc) · 2.88 KB
/
Copy pathModuleConfig.cfc
File metadata and controls
76 lines (71 loc) · 2.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
component {
this.name = "megaphone";
this.author = "Ortus Solutions";
this.webUrl = "https://github.com/coldbox-modules/megaphone";
this.dependencies = [ "qb", "str" ];
this.cfmapping = "megaphone";
function configure() {
settings = {
"channels": {},
"storage": {
"events": {},
"deliveries": {},
"preferences": {},
"subscriptions": {},
"digests": {}
},
"digests": {},
"queue": {
"queueAdapter": "CBQNotificationQueue@megaphone",
"defaultConnection": "",
"defaultQueue": "",
"notifiableResolver": "",
"eligibilityPolicy": "",
"snapshotHasher": "",
"deliveryPolicy": "",
"leaseSeconds": 60,
"maxAttempts": 5,
"retrySeconds": 30,
"maxRecoveryAttempts": 5,
"maxRecoveryAllowance": 45
}
};
binder.getInjector().registerDSL( "megaphone", "#moduleMapping#.dsl.MegaphoneDSL" );
}
function onLoad() {
param settings.storage = {};
param settings.queue = {};
param settings.queue.queueAdapter = "CBQNotificationQueue@megaphone";
param settings.queue.defaultConnection = "";
param settings.queue.defaultQueue = "";
param settings.queue.leaseSeconds = 60;
param settings.queue.maxAttempts = 5;
param settings.queue.retrySeconds = 30;
param settings.queue.maxRecoveryAttempts = 5;
param settings.queue.maxRecoveryAllowance = 45;
var stores = {
"events": "EventStore",
"deliveries": "DeliveryStore",
"preferences": "PreferenceStore",
"subscriptions": "SubscriptionStore",
"digests": "EmailDigestStore"
};
for ( var key in stores ) {
var properties = settings.storage[ key ] ?: {};
settings.storage[ key ] = properties;
if ( key == "deliveries" ) {
properties = duplicate( properties );
properties.maxRecoveryAttempts = settings.queue.maxRecoveryAttempts;
properties.maxRecoveryAllowance = settings.queue.maxRecoveryAllowance;
}
binder
.map( stores[ key ] & "@megaphone" )
.to( moduleMapping & ".models.Storage." & stores[ key ] )
.initArg( name = "properties", value = properties );
}
variables.wirebox.getInstance( "NotificationService@megaphone" ).registerChannels( settings.channels ?: {} );
variables.wirebox
.getInstance( "NotificationService@megaphone" )
.registerChannels( { "emailDigestBatch": { "provider": "EmailDigestBatchProvider@megaphone", "properties": {} } } );
}
}