...
Code Block | ||
---|---|---|
| ||
// Пример сценария с использованием SQL запроса на получение данных о пользователе в СУБД PostgreSQL // // Подготовка SQL запроса в JS коде для простоты редактирования выполнитьJs(""" // тело запроса: строка подключения в формате RFC DB URI, SQL запрос, таймаут на ожидание ответа var query = { db_url =: "pgsql://userName:secretPassword@autofaq.ai:5432/databaseName", // строка SQL запроса с использованием логина пользователя из системной переменной {userLogin} var sql_query =: "SELECT * FROM \"USER\" WHERE SERVICE_ID = '1234' AND LOGIN = 'userLogin'" // время ожидания ответа СУБД var timeout = 3 // тело запроса var query = { db_url: db_url, sql_query: sql_query, timeout: timeout3 }; // на выходе строковое представление тела запроса var exit = {query: JSON.stringify(query)} exit; """) + // запрос в СУБД коннектор вызвать.внешнийСервис("http://db-adapter:80/api/v1/query", "POST").сЗаголовками(("Content-Type", "application/json")).сТеломСообщения("{query}").сохранитьРезультатКакСтроку("answer")+ // обработка ошибок если("{http_code} > 200").то( комментарий("Ошибка SQL запроса: {http_code}, {answer}")+ сообщениеПользователю.сШаблоном("Произошла ошибка. Попробуйте спросить немного позже.")+ завершить )+ // разбор ответа выполнитьJs(""" var exit = {error: 0} try { var response = JSON.parse(answer); if (response.status != 'ok') { throw Error(JSON.stringify(response)) } var rows = response.result exit.ballance = rows[0]['Баланс'] exit.client_id = rows[0]['УЗ'] } catch(e) { exit.error = 'error' + JSON.stringify({message: e.message, stack: e.stack}); } exit; """)+ если("{error} != 0).то( сообщениеПользователю.сШаблоном("Простите, ошибка сервиса {error}")+ завершить )+ сообщениеПользователю.сШаблоном("Балланс клиента {client_id}: {ballance}")+ завершить |
...