lib/Adapter/Binder.js   A
last analyzed

Complexity

Total Complexity 5
Complexity/F 1.67

Size

Lines of Code 50
Function Count 3

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 0
wmc 5
nc 1
mnd 1
bc 5
fnc 3
dl 0
loc 50
rs 10
bpm 1.6666
cpm 1.6666
noi 0
c 1
b 0
f 0

3 Functions

Rating   Name   Duplication   Size   Complexity  
A Binder.bind 0 6 1
A Binder.startedListener 0 13 2
A Binder.callAlertingListener 0 12 2
1
/* global VoxEngine, AppEvents */
2
3
var TriggerType = require('../Schema').TriggerType
4
5
var Binder = {
6
  /**
7
   * @param {Run} run
8
   */
9
  bind: function (run) {
10
    var listener = Binder.startedListener.bind(null, run)
11
    VoxEngine.addEventListener(AppEvents.Started, listener)
12
    listener = Binder.callAlertingListener.bind(null, run)
13
    VoxEngine.addEventListener(AppEvents.CallAlerting, listener)
14
  },
15
  /**
16
   * @param {Run} run
17
   * @param {AppEvents.Started} event
18
   */
19
  startedListener: function (run, event) {
20
    run.setLog(event.logURL)
21
    if (run.getScenario().trigger !== TriggerType.Http) {
22
      return
23
    }
24
    var trigger = {
25
      call: null,
26
      event: event,
27
      type: TriggerType.Http,
28
      arguments: VoxEngine.customData()
29
    }
30
    run.proceed(trigger)
31
  },
32
  /**
33
   * @param {Run} run
34
   * @param {AppEvents.CallAlerting} event
35
   */
36
  callAlertingListener: function (run, event) {
37
    if (run.getScenario().trigger !== TriggerType.Call) {
38
      return
39
    }
40
    var trigger = {
41
      call: event.call,
42
      event: event,
43
      type: TriggerType.Call,
44
      arguments: event.call.customData
45
    }
46
    run.proceed(trigger)
47
  }
48
}
49
50
module.exports = {
51
  Binder: Binder
52
}
53