From 8af1eb8da35c2a25d0345dadcd448fc3ad8716f6 Mon Sep 17 00:00:00 2001 From: Pavuuk <88192739+Pavuuk@users.noreply.github.com> Date: Thu, 25 Nov 2021 23:46:38 +0500 Subject: [PATCH] Update focus.js --- static/focus.js | 64 ++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 36 deletions(-) diff --git a/static/focus.js b/static/focus.js index 4b43735..5d87ac8 100644 --- a/static/focus.js +++ b/static/focus.js @@ -5,50 +5,42 @@ const API = { buhForms: "/api3/buh", }; -function run() { - sendRequest(API.organizationList, (orgOgrns) => { - const ogrns = orgOgrns.join(","); - sendRequest(`${API.orgReqs}?ogrn=${ogrns}`, (requisites) => { - const orgsMap = reqsToMap(requisites); - sendRequest(`${API.analytics}?ogrn=${ogrns}`, (analytics) => { - addInOrgsMap(orgsMap, analytics, "analytics"); - sendRequest(`${API.buhForms}?ogrn=${ogrns}`, (buh) => { - addInOrgsMap(orgsMap, buh, "buhForms"); - render(orgsMap, orgOgrns); - }); - }); - }); +async function run() { + const orgOgrns = await sendRequest(API.organizationList); + const ogrns = orgOgrns.join(","); + Promise.all([ + sendRequest(`${API.orgReqs}?ogrn=${ogrns}`), + sendRequest(`${API.analytics}?ogrn=${ogrns}`), + sendRequest(`${API.buhForms}?ogrn=${ogrns}`) + ]).then(([requisites, analytics, buh]) => { + const orgsMap = reqsToMap(requisites); + addInOrgsMap(orgsMap, analytics, "analytics") + addInOrgsMap(orgsMap, buh, "buhForms"); + render(orgsMap, orgOgrns); }); } run(); -function sendRequest(url, callback) { - const xhr = new XMLHttpRequest(); - xhr.open("GET", url, true); - - xhr.onreadystatechange = function () { - if (xhr.readyState === XMLHttpRequest.DONE) { - if (xhr.status === 200) { - callback(JSON.parse(xhr.response)); - } - } - }; - - xhr.send(); +async function sendRequest(url){ + return fetch(url) + .then((response) => { + if (response.ok) + return response.json(); + alert("Ошибка HTTP: " + response.status); + }); } function reqsToMap(requisites) { - return requisites.reduce((acc, item) => { - acc[item.ogrn] = item; + return requisites.reduce((acc, i) => { + acc[i.ogrn] = i; return acc; }, {}); } -function addInOrgsMap(orgsMap, additionalInfo, key) { - for (const item of additionalInfo) { - orgsMap[item.ogrn][key] = item[key]; - } +function addInOrgsMap(orgsMap, additionalInfo, deter) { + for (const i of additionalInfo) + orgsMap[i.ogrn][deter] = i[deter]; } function render(organizationsInfo, organizationsOrder) { @@ -58,8 +50,8 @@ function render(organizationsInfo, organizationsOrder) { const template = document.getElementById("orgTemplate"); const container = table.querySelector("tbody"); - organizationsOrder.forEach((item) => { - renderOrganization(organizationsInfo[item], template, container); + organizationsOrder.forEach((i) => { + renderOrganization(organizationsInfo[i], template, container); }); } @@ -128,7 +120,7 @@ function createAddress(address) { return addressToRender.join(", "); - function createAddressItem(key) { - return `${address[key].topoShortName}. ${address[key].topoValue}`; + function createAddressItem(deter) { + return `${address[deter].topoShortName}. ${address[deter].topoValue}`; } }