Структура вызываемой функции
function runJavascriptCode(a,b,c,d,e) { 'use strict'; let result = null; //------------------------start your code-------------------- result = a + b + c + d + e; //--------------------------end your code--------------------- return result; } var a = '1'; var b = '2'; var c = '3'; var d = '4'; var e = '5'; console.log(runJavascriptCode(a,b,c,d,e));
Проще всего написать код в удобном вам инструменте – https://www.jdoodle.com/execute-nodejs-online/ или вашей IDE и далее скопировать код в ApiMonster.
Нужен код для секции start your code/end your code.
Примеры кода
Отправка массива данных в качестве вебхука на заданный url.
const fetch = require("sync-fetch"); const response = fetch(" https://webhook.site/4c1a1a1c-abeb-41b2-83e1-ae269fb39713", { method: "POST", body: JSON.stringify({ a: a, b: b, c: c, d: d, e: e }) }); return response.statusText;
Узнать самый дорогой sku в заказе из озона с учетом количества заказанных товаров.
//check code here - https://www.jdoodle.com/execute-nodejs-online/ function runJavascriptCode(a,b,c,d,e) { 'use strict'; let result = null; //------------------------start your code-------------------------- //превращаем json в массив let data = JSON.parse(a); let maxPrice = 0; //обходим массив for(var i in data){ let item = data[i]; //выводим в консоль что в текущем элементе массива чтобы понять какие там данные //console.log(item); let price = item.price * item.quantity; //если цена больше последней максимальной цены, обговляем самый дорогой sku if (price>maxPrice){ maxPrice = price; result = item.offer_id; } } //--------------------------end your code-------------------------- return result; } var a = '[{ "price": "26890.0000", "offer_id": "stwrOD35", "name": "Оверлок Stoewer OD-35", "sku": 1084950881, "quantity": 1, "mandatory_mark": [], "dimensions": { "height": "323.00", "length": "447.00", "weight": "7550", "width": "365.00" }, "currency_code": "RUB" }, { "price": "6101.0000", "offer_id": "send4bio", "name": "Проточный фильтр под раковину Sendo Aqua 4Bio", "sku": 981820964, "quantity": 1, "mandatory_mark": [], "dimensions": { "height": "425.00", "length": "195.00", "weight": "4400", "width": "410.00" }, "currency_code": "RUB" }]'; var b = ''; var c = ''; var d = ''; var e = ''; console.log(runJavascriptCode(a,b,c,d,e));
Подменить значение поля в массиве согласно маппинга.
function runJavascriptCode(a,b,c,d,e) { 'use strict'; let result = null; //------------------------start your code-------------------------- //маппинг: артикул wb > артикул rcrm let map = { 'snd123':'rcrmArticle', 'wbArticle1':'rcrmArticle1', } //превращаем json в массив let order = JSON.parse(a); //перебираем маппинг for (let wbArticle in map) { //если пришел артикул из маппинга, подставляем вариант для rcrm if (order.hasOwnProperty('article') && order['article'] === wbArticle){ order['article'] = map[wbArticle]; break; } } //возвращаем обновленный массив заказа result = JSON.stringify(order); //--------------------------end your code-------------------------- return result; } var a = '{"address":null,"deliveryType":"fbs","user":null,"orderUid":"5483976_11741988085208591","article":"snd4bio","rid":"11741988085208591.0.0","createdAt":"2023-11-20T06:33:05Z","offices":["Москва_Запад-Юг"],"skus":["4673744335316"],"id":1213910358,"warehouseId":143195,"nmId":123,"chrtId":264161474,"price":511300,"convertedPrice":511300,"currencyCode":643,"convertedCurrencyCode":643,"cargoType":1,"name":"test"}'; var b = ''; var c = ''; var d = ''; var e = ''; console.log(runJavascriptCode(a,b,c,d,e));
Выгрузка статистики из Яндекс Метрики по utm-меткам, формирование csv для загрузки в google sheets.
//подключем библиотеки const fetch = require("sync-fetch"); //вспомогательные функции function createUrl(baseUrl, params) { let items = []; for (let key in params) { items.push(key + "=" + params[key]); } return baseUrl + "?" + items.join('&'); } function createCsv(csvRows) { return csvRows.join("\r\n"); } //токены let token = "AQAAAAAm6eb9AAc4_123456"; //формируем ссылку в api let dateFrom = "2024-03-01"; let dateTo = "2024-03-31"; let params = { "id": 82227529, "metrics": "ym:s:visits,ym:s:users", "dimensions": "ym:s:UTMSource,ym:s:UTMMedium,ym:s:UTMCampaign,ym:s:UTMContent,ym:s:UTMTerm", "date1": dateFrom, "date2": dateTo }; let baseUrl = "https://api-metrika.yandex.net/stat/v1/data"; let url = createUrl(baseUrl, params); //делаем запрос в api let headers = { 'Content-Type': 'application/json;charset=utf-8', 'Authorization': "OAuth " + token }; let response = fetch(url, {method: "get", "headers": headers}); //если вернулся корректный ответ if (response.status === 200) { let data = response.json(); //ответ api let csvRows = []; //массив строк для будущего csv //смотрим что вернуло api // console.log(data); //рисуем заголовок дашборда csvRows.push("Отчет по UTM-меткам, период: " + dateFrom + " - " + dateTo); csvRows.push(""); csvRows.push(data.query.dimensions.join(";") + ';' + data.query.metrics.join(";")) //рисуем строки дашборда data.data.forEach(function (item, i, arr) { let rowData = []; rowData.push(item.dimensions[0].name); rowData.push(item.dimensions[1].name); rowData.push(item.dimensions[2].name); rowData.push(item.dimensions[3].name); rowData.push(item.dimensions[4].name); rowData.push(item.metrics[0]); rowData.push(item.metrics[1]); csvRows.push(rowData.join(";")); }); //делаем csv let result = createCsv(csvRows); // смотрим что получилось в csv // console.log(result); //возвращаем результат для дальнейших шагов связки return result; } else { //ошибка запроса }
Парсинг JSON с кавычками в значениях, например “item”:”Соус \”Васаби\””:
function jsonParse(raw){
raw = raw.replace(/\s\"/g,' ');
raw = raw.replace(/\"\s/g,' ');
raw = raw.replace('""','"');
return JSON.parse(raw);
}
Коррекция значения по списку значений из массива с тестированием
function fixName(value){
let chars = ["с.","г."];
let result = value;
if (value.indexOf('с.')==-1){
chars.forEach((char) => {
result = result.replace(char,'');
})
result = result.trim();
result = 'г. ' + result;
}
return result;
}
let cases = ['Актау','с.Актау','г.Актау','г. Актау', 'с. Актау', 'с. Лос Сантос', 'г. Лос Сантос','Лос Сантос'];
cases.forEach((value) => {
console.log(value + " > " + fixName(value));
})