apiTickets.subscribe = function (req, res) {
  var ticketId = req.params.id
  var data = req.body
  if (_.isUndefined(data.user) || _.isUndefined(data.subscribe))
    return res.status(400).json({ error: 'Invalid Post Data.' })

  if (data.user.toString() !== req.user._id.toString()) return res.status(401).json({ error: 'Unauthorized!' })

  var ticketModel = require('../../../models/ticket')
  ticketModel.getTicketById(ticketId, function (err, ticket) {
    if (err) return res.status(400).json({ error: 'Invalid Ticket Id' })

    async.series(
      [
        function (callback) {
          require('../../../models/user').find({ _id: data.user }, function (err, user) {
            if (err) return callback(err)

            if (!user) return callback(new Error('Unauthorized!'))

            return callback()
          })
        },
        function (callback) {
          if (data.subscribe) {
            ticket.addSubscriber(data.user, function () {
              callback()
            })
          } else {
            ticket.removeSubscriber(data.user, function () {
              callback()
            })
          }
        }
      ],
      function (err) {
        if (err) {
          winston.warn(err)
          return res.status(401).json({ error: 'Unauthorized!' })
        }

        ticket.save(function (err, ticket) {
          if (err) return res.status(400).json({ error: err })

          emitter.emit('ticket:subscriber:update', ticket)

          res.json({ success: true, ticket: ticket })
        })
      }
    )
  })
}
NVD is only using a subset of CWE for mapping instead of the entire CWE, and the weakness type is not covered by that subset.