Как добавить роль пользователю после личного сообщения в Hubot с паролем

Я хотел бы добавить новую роль для пользователя, когда он может указать правильный пароль для Hubot.

Вот сценарий, который у меня есть на данный момент:

module.exports = (robot) ->
  robot.respond /PasswOrd (.*)/, (res) ->
    paSS = res.match[1]
    if paSS is "1234"
      role = 'h1'
      user = robot.brain.userForName(res.message.user.name)
      #CODE TO ADD ROLE h1 FOR THIS USER ???
      res.reply "Correct." + user.id
    else
      res.reply "Incorrect password."

Он запускается правильно с @bot PasswOrd 1234

Но я не знаю, как добавить роль.
Спасибо.


person bob dylan    schedule 02.02.2018    source источник


Ответы (1)


Не видя другого пути, я смог «решить» это с помощью REST API. Это плохая идея?

Я упростил свой фактический код, чтобы ответить на исходный вопрос.

user = robot.brain.userForName(res.message.user.name)
robot.http("https://xxx.xxx.xxx/api/v1/users.info?userId=" + user['id'])
    .headers("X-Auth-Token":"xxxxxxxxxxxxxxx", "X-User-Id":"xxxxxxx")
    .get() (err, response, body) ->
        Info = JSON.parse(body)
        Info.user.roles.push("newRole")
        robot.http("https://xxx.xxx.xxx/api/v1/users.update")
            .headers("X-Auth-Token":"xxxxxxxxxxxxxxx", "X-User-Id":"xxxxxxx", "Content-type":"application/json")
            .post('{"userId": "' + user['id'] + '", "data": { "roles": ' + JSON.stringify(Info.user.roles) + ' }}')
person bob dylan    schedule 23.02.2018