notification-processor 4.24.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -6,8 +6,6 @@
6
6
  Builder: require("./processor.builder"),
7
7
  Observers: {
8
8
  LoggerObserver: require("./observers/logger.observer"),
9
- DelayObserver: require("./observers/delay.observer"),
10
- DeadLetterSucceeded: require("./observers/deadLetterSucceeded.observer"),
11
9
  IncidentsApi: require("./observers/incidentsApi.observer"),
12
10
  MonitoringCenter: require("./observers/monitoringCenter.observer")
13
11
  },
@@ -6,7 +6,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
6
6
 
7
7
  // Generated by CoffeeScript 2.7.0
8
8
  (function () {
9
- var MeliSender, Processor, ProcessorBuilder, ProductecaSender, QueueSource, ServiceBusSource, UnknownSource, _, logger;
9
+ var AwsSQSSource, MeliSender, Processor, ProcessorBuilder, ProductecaSender, QueueSource, ServiceBusSource, UnknownSource, _, logger;
10
10
 
11
11
  _ = require("lodash");
12
12
 
@@ -19,6 +19,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
19
19
  UnknownSource = _require.UnknownSource;
20
20
  ServiceBusSource = _require.ServiceBusSource;
21
21
  QueueSource = _require.QueueSource;
22
+ AwsSQSSource = _require.AwsSQSSource;
22
23
 
23
24
  var _require2 = require("./senders");
24
25
 
@@ -58,32 +59,16 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
58
59
  this.apm = apm;
59
60
  return this;
60
61
  }
61
- }, {
62
- key: "withDelayObserver",
63
- value: function withDelayObserver(opts) {
64
- return this.withListeners(this.source.delayObserver(opts));
65
- }
66
- }, {
67
- key: "withDeadLetterSucceeded",
68
- value: function withDeadLetterSucceeded(opts) {
69
- if (this.sender == null) {
70
- throw new Error("Sender is required");
71
- }
72
- return this.withListeners(this.source.deadLetterSucceeded(_.defaults(opts, { sender: this.sender })));
73
- }
74
- }, {
75
- key: "withDidLastRetry",
76
- value: function withDidLastRetry(opts) {
77
- if (this.sender == null) {
78
- throw new Error("Sender is required");
79
- }
80
- return this.withListeners(this.source.didLastRetry(_.defaults(opts, { sender: this.sender })));
81
- }
82
62
  }, {
83
63
  key: "fromServiceBus",
84
64
  value: function fromServiceBus() {
85
65
  return this.withSource(ServiceBusSource);
86
66
  }
67
+ }, {
68
+ key: "fromAwsSQS",
69
+ value: function fromAwsSQS() {
70
+ return this.withSource(AwsSQSSource);
71
+ }
87
72
  }, {
88
73
  key: "fromQueue",
89
74
  value: function fromQueue() {
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ // Generated by CoffeeScript 2.7.0
4
+ (function () {
5
+ var _;
6
+
7
+ _ = require("lodash");
8
+
9
+ module.exports = {
10
+ newNotification: function newNotification(_ref) {
11
+ var _ref$context$bindingD = _ref.context.bindingData,
12
+ insertionTime = _ref$context$bindingD.insertionTime,
13
+ dequeueCount = _ref$context$bindingD.dequeueCount,
14
+ messageId = _ref$context$bindingD.messageId,
15
+ Message = _ref$context$bindingD.Message,
16
+ MessageId = _ref$context$bindingD.MessageId,
17
+ message = _ref.message;
18
+
19
+ return {
20
+ message: !_.isObject(message.Message) ? JSON.parse(message.Message) : message.Message,
21
+ meta: {
22
+ insertionTime: insertionTime,
23
+ dequeueCount: dequeueCount,
24
+ messageId: messageId || MessageId || Message
25
+ },
26
+ type: "sqs"
27
+ };
28
+ }
29
+ };
30
+ }).call(undefined);
@@ -3,6 +3,7 @@
3
3
  // Generated by CoffeeScript 2.7.0
4
4
  (function () {
5
5
  module.exports = {
6
+ AwsSQSSource: require("./aws.sqs.source"),
6
7
  ServiceBusSource: require("./service.bus.source"),
7
8
  QueueSource: require("./queue.source"),
8
9
  TableSource: require("./table.source"),
@@ -2,27 +2,6 @@
2
2
 
3
3
  // Generated by CoffeeScript 2.7.0
4
4
  (function () {
5
- var DeadLetterSucceeded, DelayObserver, DidLastRetry, _, create;
6
-
7
- _ = require("lodash");
8
-
9
- DelayObserver = require("../observers/delay.observer");
10
-
11
- DeadLetterSucceeded = require("../observers/deadLetterSucceeded.observer");
12
-
13
- DidLastRetry = require("../observers/didLastRetry.observer");
14
-
15
- create = function create(Type) {
16
- return function (opts) {
17
- var queue;
18
- queue = opts.queue;
19
-
20
- return new Type(_(opts).omit(["queue"]).defaults({
21
- path: "" + queue
22
- }).value());
23
- };
24
- };
25
-
26
5
  module.exports = {
27
6
  newNotification: function newNotification(_ref) {
28
7
  var _ref$context$bindingD = _ref.context.bindingData,
@@ -42,9 +21,6 @@
42
21
  },
43
22
  type: "as"
44
23
  };
45
- },
46
- delayObserver: create(DelayObserver),
47
- deadLetterSucceeded: create(DeadLetterSucceeded),
48
- didLastRetry: create(DidLastRetry)
24
+ }
49
25
  };
50
26
  }).call(undefined);
@@ -2,28 +2,10 @@
2
2
 
3
3
  // Generated by CoffeeScript 2.7.0
4
4
  (function () {
5
- var DeadLetterSucceeded, DelayObserver, DidLastRetry, _, create;
5
+ var _;
6
6
 
7
7
  _ = require("lodash");
8
8
 
9
- DelayObserver = require("../observers/delay.observer");
10
-
11
- DeadLetterSucceeded = require("../observers/deadLetterSucceeded.observer");
12
-
13
- DidLastRetry = require("../observers/didLastRetry.observer");
14
-
15
- create = function create(Type) {
16
- return function (opts) {
17
- var subscription, topic;
18
- topic = opts.topic;
19
- subscription = opts.subscription;
20
-
21
- return new Type(_(opts).omit(["topic", "subscription"]).defaults({
22
- path: topic + "/" + subscription
23
- }).value());
24
- };
25
- };
26
-
27
9
  module.exports = {
28
10
  newNotification: function newNotification(_ref) {
29
11
  var bindingData = _ref.context.bindingData,
@@ -39,9 +21,6 @@
39
21
  },
40
22
  type: "sb"
41
23
  };
42
- },
43
- delayObserver: create(DelayObserver),
44
- deadLetterSucceeded: create(DeadLetterSucceeded),
45
- didLastRetry: create(DidLastRetry)
24
+ }
46
25
  };
47
26
  }).call(undefined);
@@ -14,15 +14,6 @@
14
14
  return _.merge(notification, {
15
15
  type: "table"
16
16
  });
17
- },
18
- delayObserver: function delayObserver() {
19
- throw new Error("not supported `delayObserver`");
20
- },
21
- deadLetterSucceeded: function deadLetterSucceeded(opts) {
22
- return OtherSource.deadLetterSucceeded(opts);
23
- },
24
- didLastRetry: function didLastRetry() {
25
- throw new Error("not supported `didLastRetry`");
26
17
  }
27
18
  };
28
19
  };
@@ -2,10 +2,6 @@
2
2
 
3
3
  // Generated by CoffeeScript 2.7.0
4
4
  (function () {
5
- var _;
6
-
7
- _ = require("lodash");
8
-
9
5
  module.exports = {
10
6
  newNotification: function newNotification(_ref) {
11
7
  var message = _ref.message;
@@ -14,15 +10,6 @@
14
10
  message: message,
15
11
  type: "uk"
16
12
  };
17
- },
18
- delayObserver: function delayObserver() {
19
- throw new Error("not supported `delayObserver`");
20
- },
21
- deadLetterSucceeded: function deadLetterSucceeded() {
22
- throw new Error("not supported `deadLetterSucceeded`");
23
- },
24
- didLastRetry: function didLastRetry() {
25
- throw new Error("not supported `didLastRetry`");
26
13
  }
27
14
  };
28
15
  }).call(undefined);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "notification-processor",
3
- "version": "4.24.0",
3
+ "version": "5.0.0",
4
4
  "description": "notification-processor",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -1,95 +0,0 @@
1
- "use strict";
2
-
3
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
4
-
5
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
-
7
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
8
-
9
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
10
-
11
- // Generated by CoffeeScript 2.7.0
12
- (function () {
13
- var DeadLetterSucceededObserver,
14
- Promise,
15
- RedisObserver,
16
- boundMethodCheck = function boundMethodCheck(instance, Constructor) {
17
- if (!(instance instanceof Constructor)) {
18
- throw new Error('Bound instance method accessed before binding');
19
- }
20
- };
21
-
22
- Promise = require("bluebird");
23
-
24
- RedisObserver = require("./redis.observer");
25
-
26
- module.exports = DeadLetterSucceededObserver = function () {
27
- var DeadLetterSucceededObserver = function (_RedisObserver) {
28
- _inherits(DeadLetterSucceededObserver, _RedisObserver);
29
-
30
- function DeadLetterSucceededObserver(_ref) {
31
- var redis = _ref.redis,
32
- app = _ref.app,
33
- path = _ref.path,
34
- sender = _ref.sender;
35
-
36
- _classCallCheck(this, DeadLetterSucceededObserver);
37
-
38
- var _this = _possibleConstructorReturn(this, (DeadLetterSucceededObserver.__proto__ || Object.getPrototypeOf(DeadLetterSucceededObserver)).call(this, { redis: redis }));
39
-
40
- _this.listenTo = _this.listenTo.bind(_this);
41
- _this.success = _this.success.bind(_this);
42
- _this.app = app;
43
- _this.path = path;
44
- _this.sender = sender;
45
- return _this;
46
- }
47
-
48
- _createClass(DeadLetterSucceededObserver, [{
49
- key: "listenTo",
50
- value: function listenTo(observable) {
51
- boundMethodCheck(this, DeadLetterSucceededObserver);
52
- return observable.on("successful", this.success);
53
- }
54
- }, {
55
- key: "success",
56
- value: function success(_ref2) {
57
- var notification = _ref2.notification;
58
-
59
- boundMethodCheck(this, DeadLetterSucceededObserver);
60
- return this.publish(notification, {
61
- success: true
62
- });
63
- }
64
- }, {
65
- key: "_messagePath_",
66
- value: function _messagePath_(notification) {
67
- var _this2 = this;
68
-
69
- return Promise.props({
70
- user: this.sender.user(notification),
71
- resource: this.sender.resource(notification)
72
- }).then(function (_ref3) {
73
- var user = _ref3.user,
74
- resource = _ref3.resource;
75
-
76
- return _this2.app + "/" + user + "/" + _this2.path + "/" + resource;
77
- });
78
- }
79
- }, {
80
- key: "_channelPrefix_",
81
- value: function _channelPrefix_(type) {
82
- return "health-message-" + type;
83
- }
84
- }]);
85
-
86
- return DeadLetterSucceededObserver;
87
- }(RedisObserver);
88
-
89
- ;
90
-
91
- DeadLetterSucceededObserver.prototype._buildValue_ = JSON.stringify;
92
-
93
- return DeadLetterSucceededObserver;
94
- }.call(this);
95
- }).call(undefined);
@@ -1,146 +0,0 @@
1
- "use strict";
2
-
3
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
4
-
5
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
-
7
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
8
-
9
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
10
-
11
- // Generated by CoffeeScript 2.7.0
12
- (function () {
13
- var DelayObserver,
14
- Promise,
15
- RedisObserver,
16
- _,
17
- high,
18
- huge,
19
- mild,
20
- minimal,
21
- moderate,
22
- moment,
23
- boundMethodCheck = function boundMethodCheck(instance, Constructor) {
24
- if (!(instance instanceof Constructor)) {
25
- throw new Error('Bound instance method accessed before binding');
26
- }
27
- };
28
-
29
- _ = require("lodash");
30
-
31
- moment = require("moment");
32
-
33
- Promise = require("bluebird");
34
-
35
- RedisObserver = require("./redis.observer");
36
-
37
- var _require = require("./delay.levels");
38
-
39
- minimal = _require.minimal;
40
- mild = _require.mild;
41
- moderate = _require.moderate;
42
- high = _require.high;
43
- huge = _require.huge;
44
-
45
-
46
- module.exports = DelayObserver = function () {
47
- var DelayObserver = function (_RedisObserver) {
48
- _inherits(DelayObserver, _RedisObserver);
49
-
50
- function DelayObserver(_ref) {
51
- var redis = _ref.redis,
52
- app = _ref.app,
53
- path = _ref.path;
54
-
55
- _classCallCheck(this, DelayObserver);
56
-
57
- var _this = _possibleConstructorReturn(this, (DelayObserver.__proto__ || Object.getPrototypeOf(DelayObserver)).call(this, { redis: redis }));
58
-
59
- _this.finish = _this.finish.bind(_this);
60
- _this._messageDelay = _this._messageDelay.bind(_this);
61
- _this._millisecondsDelay = _this._millisecondsDelay.bind(_this);
62
- _this._delayChanged = _this._delayChanged.bind(_this);
63
- _this._delayByMilliseconds = _this._delayByMilliseconds.bind(_this);
64
- _this.app = app;
65
- _this.path = path;
66
- _this.currentDelay = minimal;
67
- return _this;
68
- }
69
-
70
- _createClass(DelayObserver, [{
71
- key: "listenTo",
72
- value: function listenTo(emitter) {
73
- return emitter.on("finished", this.finish);
74
- }
75
- }, {
76
- key: "finish",
77
- value: function finish(_ref2) {
78
- var notification = _ref2.notification;
79
-
80
- var delay;
81
- boundMethodCheck(this, DelayObserver);
82
- delay = this._messageDelay(notification);
83
- if (!(delay != null && this._delayChanged(delay))) {
84
- return Promise.resolve();
85
- }
86
- this.currentDelay = delay;
87
- return this.publish(notification, this.currentDelay.name);
88
- }
89
- }, {
90
- key: "_messageDelay",
91
- value: function _messageDelay(_ref3) {
92
- var meta = _ref3.meta;
93
-
94
- boundMethodCheck(this, DelayObserver);
95
- return this._delayByMilliseconds(this._millisecondsDelay(meta, new Date()));
96
- }
97
- }, {
98
- key: "_millisecondsDelay",
99
- value: function _millisecondsDelay(_ref4, now) {
100
- var insertionTime = _ref4.insertionTime;
101
-
102
- var enqueuedTime;
103
- boundMethodCheck(this, DelayObserver);
104
- enqueuedTime = moment.utc(new Date(insertionTime));
105
- return moment.utc(now).diff(enqueuedTime);
106
- }
107
- }, {
108
- key: "_delayChanged",
109
- value: function _delayChanged(newDelay) {
110
- boundMethodCheck(this, DelayObserver);
111
- return !_.isEqual(newDelay, this.currentDelay);
112
- }
113
- }, {
114
- key: "_delayByMilliseconds",
115
- value: function _delayByMilliseconds(ms) {
116
- var delayLevels;
117
- boundMethodCheck(this, DelayObserver);
118
- delayLevels = [minimal, mild, moderate, high, huge];
119
- return _.findLast(delayLevels, function (_ref5) {
120
- var value = _ref5.value;
121
-
122
- return ms >= value;
123
- });
124
- }
125
- }, {
126
- key: "_messagePath_",
127
- value: function _messagePath_() {
128
- return this.app + "/" + this.path;
129
- }
130
- }, {
131
- key: "_channelPrefix_",
132
- value: function _channelPrefix_(type) {
133
- return "health-delay-" + type;
134
- }
135
- }]);
136
-
137
- return DelayObserver;
138
- }(RedisObserver);
139
-
140
- ;
141
-
142
- DelayObserver.prototype._buildValue_ = _.identity;
143
-
144
- return DelayObserver;
145
- }.call(this);
146
- }).call(undefined);
@@ -1,117 +0,0 @@
1
- "use strict";
2
-
3
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
4
-
5
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
-
7
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
8
-
9
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
10
-
11
- // Generated by CoffeeScript 2.7.0
12
- (function () {
13
- var DidLastRetry,
14
- Promise,
15
- RedisObserver,
16
- _,
17
- errorToJson,
18
- boundMethodCheck = function boundMethodCheck(instance, Constructor) {
19
- if (!(instance instanceof Constructor)) {
20
- throw new Error('Bound instance method accessed before binding');
21
- }
22
- };
23
-
24
- _ = require("lodash");
25
-
26
- Promise = require("bluebird");
27
-
28
- RedisObserver = require("./redis.observer");
29
-
30
- errorToJson = require("error-to-json");
31
-
32
- module.exports = DidLastRetry = function () {
33
- var DidLastRetry = function (_RedisObserver) {
34
- _inherits(DidLastRetry, _RedisObserver);
35
-
36
- function DidLastRetry(_ref) {
37
- var redis = _ref.redis,
38
- app = _ref.app,
39
- path = _ref.path,
40
- _ref$maxDeliveryCount = _ref.maxDeliveryCount,
41
- maxDeliveryCount = _ref$maxDeliveryCount === undefined ? 5 : _ref$maxDeliveryCount,
42
- sender = _ref.sender;
43
-
44
- _classCallCheck(this, DidLastRetry);
45
-
46
- var _this = _possibleConstructorReturn(this, (DidLastRetry.__proto__ || Object.getPrototypeOf(DidLastRetry)).call(this, { redis: redis }));
47
-
48
- _this.listenTo = _this.listenTo.bind(_this);
49
- _this.error = _this.error.bind(_this);
50
- _this._messagePath_ = _this._messagePath_.bind(_this);
51
- _this._channelPrefix_ = _this._channelPrefix_.bind(_this);
52
- _this.app = app;
53
- _this.path = path;
54
- _this.maxDeliveryCount = maxDeliveryCount;
55
- _this.sender = sender;
56
- return _this;
57
- }
58
-
59
- _createClass(DidLastRetry, [{
60
- key: "listenTo",
61
- value: function listenTo(observable) {
62
- boundMethodCheck(this, DidLastRetry);
63
- return observable.on("unsuccessful", this.error);
64
- }
65
- }, {
66
- key: "error",
67
- value: function error(_ref2) {
68
- var notification = _ref2.notification,
69
- _error = _ref2.error;
70
-
71
- boundMethodCheck(this, DidLastRetry);
72
- if (notification.meta.dequeueCount >= this.maxDeliveryCount) {
73
- if (!_.isString(_error)) {
74
- _error = errorToJson(_error);
75
- }
76
- return this.publish(notification, {
77
- success: false,
78
- value: { error: _error }
79
- });
80
- } else {
81
- return Promise.resolve();
82
- }
83
- }
84
- }, {
85
- key: "_messagePath_",
86
- value: function _messagePath_(notification) {
87
- var _this2 = this;
88
-
89
- boundMethodCheck(this, DidLastRetry);
90
- return Promise.props({
91
- user: this.sender.user(notification),
92
- resource: this.sender.resource(notification)
93
- }).then(function (_ref3) {
94
- var user = _ref3.user,
95
- resource = _ref3.resource;
96
-
97
- return _this2.app + "/" + user + "/" + _this2.path + "/" + resource;
98
- });
99
- }
100
- }, {
101
- key: "_channelPrefix_",
102
- value: function _channelPrefix_(type) {
103
- boundMethodCheck(this, DidLastRetry);
104
- return "health-message-" + type;
105
- }
106
- }]);
107
-
108
- return DidLastRetry;
109
- }(RedisObserver);
110
-
111
- ;
112
-
113
- DidLastRetry.prototype._buildValue_ = JSON.stringify;
114
-
115
- return DidLastRetry;
116
- }.call(this);
117
- }).call(undefined);