const axios = require('axios'); const fs = require('fs'); const {MongoClient, ObjectId} = require('mongodb') const saveToJson = async () => { var mongoData = [] var abiturs = (await axios.get('http://127.0.0.1:8080/api/abitur')).data mongoData = mongoData.concat(abiturs) for(let abitur of mongoData) { // saving exam results for every abitur var exam_results = (await axios.get('http://127.0.0.1:8080/api/examresult/abitur/' + abitur['id'])).data for (let exam_res of exam_results) { abitur['exam_results'] = abitur['exam_results'] ?? [] abitur['exam_results'].push({ 'title': exam_res['title'], 'result': exam_res['result'] }) } //saving requests for every abitur var requests = (await axios.get('http://127.0.0.1:8080/api/request/abitur/' + abitur['id'])).data //console.log(requests) for (let req of requests) { abitur['requests'] = abitur['requests'] ?? [] let education_form = (await axios.get('http://127.0.0.1:8080/api/educationform/' + req['education_form_id'])).data let specialization = (await axios.get('http://127.0.0.1:8080/api/specialization/' + req['specialization_id'])).data //получаем закрепленные за заявкой результаты let results = [] var request_result_pairs = (await axios.get('http://127.0.0.1:8080/api/request_examresult/' + req['id'])).data for(const pair of request_result_pairs) { results.push((await axios.get('http://127.0.0.1:8080/api/examresult/' + pair['exam_result_id'])).data) } let formattedResults = [] for(let res of results) { formattedResults.push({ 'title': res['title'], 'result': res['result'] }) } abitur['requests'].push({ 'date': req['date'], 'education_form': education_form['title'], 'specialization': specialization['title'], 'exam_results': formattedResults }) } } console.log(mongoData) let data = JSON.stringify(mongoData) fs.writeFileSync('mongoDataSave.json', data) console.log('saved!') } saveToJson() module.exports = saveToJson