Действия node.js в Google сохранить данные разговора - PullRequest
0 голосов
/ 16 мая 2018

У меня проблема с возвратом данных из запроса AXIOS, но я не могу сохранить эти данные в хранилище пользователя беседы (conv.user.storage.caseNumber) с помощью Действия в библиотеке Google Node.js. Я пробовал много разных подходов, но ни один не работает. Я могу сохранить данные из штрафа (например, conv.user.storage.subject и conv.user.storage.description). С помощью console.log () я проверил, что данные (т.е. caseNumber) возвращаются в ответе должным образом. Любая помощь будет принята с благодарностью.

Вот код:

  // Index
    const SalesForceProxy = require('./classes/SalesForceProxy');
    let proxy = new SalesForceProxy();
    app.intent('getDescription - yes - CreateConfirmation', proxy.createCase);

    // Proxy.js

    module.exports = function () {

    this.createCase = function (conv) {

    return new Promise(function( resolve, reject) {
     axios.post('https://mysite.my.salesforce.com/services/oauth2/token',querystring.stringify(params)).then(function(response){

                    var caseData =  {
                        "account" : conv.user.storage.accountId,
                        "recordType" : conv.user.storage.recordTypeId,
                        "priority" : conv.user.storage.priority,
                        "subject" : conv.user.storage.subject,
                        "description" : conv.user.storage.description
                    };

                    axios.post('https://mysite.my.salesforce.com/services/apexrest/voicetocase/create',caseData,
                    {
                        headers:  
                        {
                            'Authorization': "Bearer " + response.data.access_token,
                            'Content-Type': 'application/json'
                        }      
                    }
                    )
                    .then(function(response){
                       conv.user.storage.caseNumber = response.data.caseNumber;
                    }.bind({conv: conv}))
                    .catch((error) => {
                        console.log(error);
                    });
                    resolve()

            }.bind({conv: conv})).catch((error) => {
                console.log(error);
                reject(err);
            }); 

         });
    }
}

1 Ответ

0 голосов
/ 17 мая 2018

Похоже, вы решаете обещание слишком рано, прежде чем вы установите пользовательское хранилище, что является вторым обещанием.

axiom.post(...)
  .then() {
      conv.user.storage.X = "";
      resolve();
  }

Это должно работать, как и ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...