All files / src/services/probe-results probe-results.hooks.js

100% Statements 8/8
100% Branches 0/0
100% Functions 2/2
100% Lines 6/6

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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 411x 1x 1x 1x     6x     1x                                                              
import { disallow, when } from 'feathers-hooks-common'
import _ from 'lodash'
import { hooks } from 'weacast-core'
import { marshallResultsQuery, aggregateResultsQuery } from '../../hooks'
 
// Used internally by bulk write to ensure hooks are still run as usual service call
const skipDbCallOnBulk = when(hook => _.get(hook, 'params.bulk'), (hook) => { hook.result = hook.data })
 
// Marshall/Unmarshall should be always first so that we have a consistent data format in other hooks
module.exports = {
  before: {
    all: [ hooks.marshallQuery ],
    find: [ hooks.marshallComparisonQuery, hooks.marshallSpatialQuery, marshallResultsQuery, aggregateResultsQuery ],
    get: [],
    create: [ skipDbCallOnBulk, disallow('external'), hooks.marshall ],
    update: [ skipDbCallOnBulk, disallow('external'), hooks.marshall ],
    patch: [ skipDbCallOnBulk, disallow('external'), hooks.marshall ],
    remove: [ disallow('external'), hooks.marshallComparisonQuery, hooks.marshallSpatialQuery ]
  },
 
  after: {
    all: [ hooks.unmarshall ],
    find: [],
    get: [],
    create: [hooks.skipEvents], // Avoid emitting events on result edition
    update: [hooks.skipEvents],
    patch: [hooks.skipEvents],
    remove: [hooks.skipEvents]
  },
 
  error: {
    all: [],
    find: [],
    get: [],
    create: [],
    update: [],
    patch: [],
    remove: []
  }
}