У меня проблема с возвратом данных из запроса 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);
});
});
}
}