Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const https = require("https");
- const fs = require("fs");
- // Options to connect to default API
- const options = {
- hostname: "censored.com",
- path: "/api/people",
- method: "GET"
- };
- // Connect to the overall API
- const request = https.request(options, response => {
- let body = "";
- response.on("data", data => {
- body += data;
- console.log("Connecting to basic API: " + response.statusCode);
- });
- response.on("end", () => {
- // When all data has been retrieved
- // Make data readable
- let parsedData = JSON.parse(body);
- let parsedPeople = parsedData.people;
- // Make an array for all censored employees
- let censoredEmplyees = [];
- parsedPeople.forEach(person => {
- if (person.job.workplace === "censored") {
- if (person.username) {
- censoredEmplyees.push(person);
- }
- }
- });
- /* Gather employee interests */
- // Iterate through every employee
- let censoredEmployeesInterests = [];
- let employeeCount = 0;
- let numEmployees = Employees.length;
- let parsedBody;
- Employees.forEach(employeeObject => {
- // Make a seperate options argument for each employee
- let employeeOptions = {
- hostname: "censored.com",
- path: `/api/people/${employeeObject.username}/interests`,
- method: "GET"
- };
- const employeeRequest = https.request(
- employeeOptions,
- employeeResponse => {
- let body = "";
- // Connect to employee API
- employeeResponse.on("data", data => {
- body += data;
- });
- // Upon retrieval of employee data
- employeeResponse.on("end", () => {
- if (employeeResponse.statusCode !== 404) {
- employeeCount++;
- parsedBody = JSON.parse(body).person.interests;
- EmployeesInterests.push(
- employeeObject.username + ": " + parsedBody
- );
- // If all data is gathered
- if (employeeCount === numEmployees) {
- const interestsData = "./data_folder/censoredInterests.json";
- fs.appendFile(
- interestsData,
- JSON.stringify(EmployeesInterests),
- err => {
- if (err) throw err;
- }
- );
- }
- } else numEmployees--;
- });
- }
- );
- employeeRequest.end();
- });
- /* Gather employee pets */
- // Iterate through every employee
- let censoredPets = [];
- let employeePetCount = 0;
- let numPets = censoredEmplyees.length;
- let petParsedBody;
- censoredEmplyees.forEach(employeePetObj => {
- // Make a seperate options argument for each employee
- let employeePetOptions = {
- hostname: "censored.com",
- path: `/api/people/${employeePetObj.username}/pets`,
- method: "GET"
- };
- const petRequest = https.request(employeePetOptions, petResponse => {
- let petBody = "";
- // Connect to employee API
- petResponse.on("data", petData => {
- petBody += petData;
- employeePetCount++;
- petParsedBody = JSON.parse(petBody);
- if (petParsedBody.hasOwnProperty("person")) {
- //console.log("is a person");
- petParsedBodyPerson = petParsedBody.person;
- if (petParsedBodyPerson.hasOwnProperty("pets")) {
- //console.log("has pets");
- console.log(petParsedBodyPerson.pets);
- censoredPets.push(petParsedBodyPerson.pets);
- console.log(censoredPets);
- } else {
- console.log("has no pets");
- }
- } else {
- console.log("isnt a person");
- }
- console.log("*******");
- });
- // Upon retrieval of employee data
- petResponse.on("end", () => {
- //console.log(petsList);
- if (petResponse.statusCode !== 404) {
- // If all data is gathered
- if (employeePetCount === numPets) {
- const petsData = "./data_folder/censored.json";
- fs.appendFile(petsData, JSON.stringify(censoredPets), err => {
- if (err) throw err;
- });
- }
- } else numPets--;
- });
- });
- petRequest.end();
- });
- });
- });
- request.end();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement