Advertisement
Guest User

ugh

a guest
Sep 20th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.41 KB | None | 0 0
  1. const https = require("https");
  2. const fs = require("fs");
  3.  
  4. // Options to connect to default API
  5. const options = {
  6. hostname: "censored.com",
  7. path: "/api/people",
  8. method: "GET"
  9. };
  10.  
  11. // Connect to the overall API
  12. const request = https.request(options, response => {
  13. let body = "";
  14. response.on("data", data => {
  15. body += data;
  16. console.log("Connecting to basic API: " + response.statusCode);
  17. });
  18. response.on("end", () => {
  19. // When all data has been retrieved
  20.  
  21. // Make data readable
  22. let parsedData = JSON.parse(body);
  23. let parsedPeople = parsedData.people;
  24.  
  25. // Make an array for all censored employees
  26. let censoredEmplyees = [];
  27. parsedPeople.forEach(person => {
  28. if (person.job.workplace === "censored") {
  29. if (person.username) {
  30. censoredEmplyees.push(person);
  31. }
  32. }
  33. });
  34.  
  35. /* Gather employee interests */
  36.  
  37. // Iterate through every employee
  38. let censoredEmployeesInterests = [];
  39. let employeeCount = 0;
  40. let numEmployees = Employees.length;
  41. let parsedBody;
  42. Employees.forEach(employeeObject => {
  43. // Make a seperate options argument for each employee
  44. let employeeOptions = {
  45. hostname: "censored.com",
  46. path: `/api/people/${employeeObject.username}/interests`,
  47. method: "GET"
  48. };
  49.  
  50. const employeeRequest = https.request(
  51. employeeOptions,
  52. employeeResponse => {
  53. let body = "";
  54. // Connect to employee API
  55. employeeResponse.on("data", data => {
  56. body += data;
  57. });
  58. // Upon retrieval of employee data
  59. employeeResponse.on("end", () => {
  60. if (employeeResponse.statusCode !== 404) {
  61. employeeCount++;
  62. parsedBody = JSON.parse(body).person.interests;
  63. EmployeesInterests.push(
  64. employeeObject.username + ": " + parsedBody
  65. );
  66.  
  67. // If all data is gathered
  68. if (employeeCount === numEmployees) {
  69. const interestsData = "./data_folder/censoredInterests.json";
  70. fs.appendFile(
  71. interestsData,
  72. JSON.stringify(EmployeesInterests),
  73. err => {
  74. if (err) throw err;
  75. }
  76. );
  77. }
  78. } else numEmployees--;
  79. });
  80. }
  81. );
  82. employeeRequest.end();
  83. });
  84.  
  85. /* Gather employee pets */
  86.  
  87. // Iterate through every employee
  88. let censoredPets = [];
  89. let employeePetCount = 0;
  90. let numPets = censoredEmplyees.length;
  91. let petParsedBody;
  92. censoredEmplyees.forEach(employeePetObj => {
  93. // Make a seperate options argument for each employee
  94. let employeePetOptions = {
  95. hostname: "censored.com",
  96. path: `/api/people/${employeePetObj.username}/pets`,
  97. method: "GET"
  98. };
  99.  
  100. const petRequest = https.request(employeePetOptions, petResponse => {
  101. let petBody = "";
  102. // Connect to employee API
  103. petResponse.on("data", petData => {
  104. petBody += petData;
  105. employeePetCount++;
  106. petParsedBody = JSON.parse(petBody);
  107.  
  108. if (petParsedBody.hasOwnProperty("person")) {
  109. //console.log("is a person");
  110. petParsedBodyPerson = petParsedBody.person;
  111.  
  112. if (petParsedBodyPerson.hasOwnProperty("pets")) {
  113. //console.log("has pets");
  114. console.log(petParsedBodyPerson.pets);
  115. censoredPets.push(petParsedBodyPerson.pets);
  116. console.log(censoredPets);
  117. } else {
  118. console.log("has no pets");
  119. }
  120. } else {
  121. console.log("isnt a person");
  122. }
  123.  
  124. console.log("*******");
  125. });
  126. // Upon retrieval of employee data
  127. petResponse.on("end", () => {
  128. //console.log(petsList);
  129. if (petResponse.statusCode !== 404) {
  130. // If all data is gathered
  131. if (employeePetCount === numPets) {
  132. const petsData = "./data_folder/censored.json";
  133.  
  134. fs.appendFile(petsData, JSON.stringify(censoredPets), err => {
  135. if (err) throw err;
  136. });
  137. }
  138. } else numPets--;
  139. });
  140. });
  141. petRequest.end();
  142. });
  143. });
  144. });
  145. request.end();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement