code: function(id, key, value) {
        if (id && key) {
          if (value) {
            return jsonStringify(value)
              .then(stringVal => when.promise((resolve, reject) => redis.hset(id, key, stringVal, (err, result) => {
                if (err) {
                  reject(err);
                } else {
                  resolve(result);
                }
              })));
          }
          return when.promise((resolve, reject) => redis.hset(id, key, '', (err, result) => {
            if (err) {
              reject(err);
            } else {
              resolve(result);
            }
          }));
        }
        return when.reject(new Error('invalid args'));
      }
docs: Store key/value data.
  
  This method is exposed as bot.store(key, value);
  
  @function
  @param {String} id - Room/Conversation/Context ID
  @param {String} key - Key under id object
  @param {(String|Number|Boolean|Array|Object)} value - Value of key
  @returns {(Promise.<String>|Promise.<Number>|Promise.<Boolean>|Promise.<Array>|Promise.<Object>)}