Запрос клиентов по номеру телефона с помощью Netsuite Rest API

#javascript #api #rest #axios #netsuite

#javascript #API #rest #axios #netsuite

Вопрос:

Я пытаюсь создать запрос к NetSuite REST API, и в моем конкретном случае использования наиболее доступным источником информации является номер клиента.

У меня есть axios вспомогательная настройка для выполнения запросов. Было интересно, может ли кто-нибудь мне помочь… Это то, что у меня есть до сих пор.

     await ns.get('customer?q=phone')
  .then((res) => {
     console.log(res)
     console.log('success')
  })
  .catch((err) => {
      console.log(err);
     console.log('error')
  })
 

Теперь, к сожалению, это не работает. Есть идеи?

Спасибо за ваше время!

РЕДАКТИРОВАТЬ: нашел свое решение!

     await ns.get('customer?q=phone IS <Customer Number Here>')
  .then((res) => {
      console.log('success')
      let custID = res.data.items[0].id
      console.log(custID);
      await ns.get(`customer/${custID}`)
         .then((res) => {
            console.log(res);
         })
  })
  .catch((err) => {
      console.log(err);
     console.log('error')
  })
 

Этот код вернул очень большой объект. Открытие response.data.items дало мне идентификатор клиента. Затем выполнение нового запроса с этим идентификатором дало мне необходимую информацию.

Ответ №1:

Первое решение: удалить await ключевое слово.

  ns.get('customer?q=phone')
  .then((res) => {
     console.log(res)
     console.log('success')
  })
  .catch((err) => {
      console.log(err);
     console.log('error')
  })
 

В противном случае вы должны определить async , чтобы иметь возможность использовать await следующим образом

 var getData = () => new Promise(resolve => resolve("Your data"));

async function run(){
  try{
    var res = await getData();// ns.get('customer?q=phone')
     console.log(res);
     console.log('success');
  }catch(err) {
      console.log(err);
     console.log('error')
  }
}

run(); 

Комментарии:

1. Привет, спасибо за ответ! Я уже перевел свой код в асинхронный режим. Я считаю, что проблема с моим кодом заключается именно в запросе. Я считаю, что мне нужно изменить (‘customer?q= phone) Я пробовал что-то вроде (‘customer?q= phone IS xxxx), но это не сработало 🙁 . Возможно, мне нужно научиться запрашивать с помощью SuiteQL