var i = 0;
var nomenclatures = [11,22,33,44,55]; // Эти значения я буду подстовлять по очереди в GET запрос
var errorsArray = []; // Создаю масив для ошибок
var successArray = []; // Создаю масив значений которые успешно отправлены
for(i; i < nomenclatures.length; i++ ) {
var nomServ; // на каждой итерации обнуляю переменную и записывая в неё ответ от сервера
xhr.open('GET', 'https://zakup.sk.kz/eprocpko/api/nomenclatures?search='+nomenclatures[i]+'&page=-1&size=10&sort=tru.code,asc&sort=tru.category,asc',false); // 1)Вначале поиск на сервере
xhr.onreadystatechange = function() {
if(xhr.readyState === 4 && xhr.status === 200) {
if(xhr.responseText === '[]') {
return errorsArray.push(nomenclatures[i]+ " - Не найден"); // 2) Если ответ от сервера - пустой массив, значит элемента нет
} else {
nomServ = JSON.parse(xhr.responseText); // В противном случаии записываю в переменную ответ(в виде JSON);
xhr.open('POST', 'https://zakup.sk.kz/eprocpko/api/pko-applications/1265416218/nomenclature', false);
xhr.setRequestHeader('Accept', 'application/json, text/plain, */*');
xhr.setRequestHeader('content-type', 'application/json');
xhr.onreadystatechange = function() {
if(xhr.readyState === 4 && xhr.status === 200 ) {
return successArray.push(nomenclatures[i]);
} else if(xhr.getResponseHeader('X-Eproc-Message')[0].message = 'error.pko-nomenclature-tru-exists') { //проверка загловка ответа от сервера на присутсвия этого значения
return errorsArray.push(nomenclatures[i] + ' - Уже добавлен');
}
}
xhr.send(JSON.stringify(nomServ[0]));
}
}
}
xhr.send();
}
if(i === nomenclatures.length) {
alert('Обработано: ' +nomenclatures.length +'\n' +'Добавленно: ' +successArray +'\n\n' + 'Ошибки: \n' +errorsArray.join(' \n'));
}