code: function createUser (params, cb) {
        let promise = null
        if (typeof cb !== 'function') [promise, cb] = asyncify()
  
        const { id, name, organizationId, metadata } = params
  
        Joi.validate({ id, name, organizationId }, validationRules.createUser, function (err) {
          if (err) return cb(Boom.badRequest(err))
  
          userOps.organizationExists(organizationId, (err, res) => {
            if (err) return cb(err)
            if (!res) return cb(Boom.badRequest(`Organization '${organizationId}' does not exist`))
  
            userOps.insertUser(db, { id, name, organizationId, metadata }, (err, result) => {
              if (err) return cb(err)
  
              userOps.readUser({ id: result.rows[0].id, organizationId }, utils.boomErrorWrapper(cb))
            })
          })
        })
  
        return promise
      }
docs: Create a new user
  
  @param  {Object}   params { id, name, organizationId, metadata } "id" & "metadata" can be null
  @param  {Function} cb