Advertisement
Guest User

Untitled

a guest
Feb 19th, 2020
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.91 KB | None | 0 0
  1. const fetch = require("node-fetch");
  2.  
  3. fetch(
  4. "https://candidate.hubteam.com/candidateTest/v3/problem/dataset?userKey=8270d53c6a7e40205f4743b15c15"
  5. )
  6. .then(res => res.json())
  7. .then(data => {
  8. messages = data["messages"];
  9. ourUser = data["userId"];
  10.  
  11. let users = data["users"];
  12. let userIDS = {};
  13. users.forEach(function(hash) {
  14. userIDS[hash["id"]] = {
  15. totalMessages: 0,
  16. mostRecentMessageTimestamp: new Date(1910, 1, 1),
  17. mostRecentMessage: "",
  18. mostRecentMessageUserId: null
  19. };
  20. });
  21.  
  22. messages.forEach(function(message) {
  23. if (
  24. message["toUserId"] === ourUser ||
  25. message["fromUserId"] === ourUser
  26. ) {
  27. key = message["fromUserId"];
  28. if (
  29. userIDS[message["fromUserId"]] === undefined &&
  30. message["fromUserId"] === ourUser
  31. ) {
  32. key = message["toUserId"];
  33. }
  34.  
  35. userIDS[key]["totalMessages"]++;
  36. currRecent = new Date(userIDS[key]["mostRecentMessageTimestamp"]);
  37. timestampDate = new Date(message.timestamp);
  38. if (currRecent < timestampDate) {
  39. userIDS[key]["mostRecentMessageTimestamp"] = message.timestamp;
  40. userIDS[key]["mostRecentMessage"] = message.content;
  41. userIDS[key]["mostRecentMessageUserId"] = message["fromUserId"];
  42. }
  43. }
  44. });
  45.  
  46. let conversations = [];
  47. let keys = Object.keys(userIDS);
  48.  
  49. keys.forEach(function(id) {
  50. let avatar = undefined;
  51. let firstName = undefined;
  52. let lastName = undefined;
  53. users.forEach(function(user) {
  54. if (user["id"] == id) {
  55. avatar = user["avatar"];
  56. firstName = user["firstName"];
  57. lastName = user["lastName"];
  58. }
  59. });
  60. conversations.push({
  61. avatar: avatar,
  62. firstName: firstName,
  63. lastName: lastName,
  64. mostRecentMessage: {
  65. content: userIDS[id]["mostRecentMessage"],
  66. timestamp: userIDS[id]["mostRecentMessageTimestamp"],
  67. userId: userIDS[id]["mostRecentMessageUserId"]
  68. },
  69. totalMessages: userIDS[id]["totalMessages"],
  70. userId: id
  71. });
  72. });
  73.  
  74. conversations.sort(function(a, b) {
  75. var keyA = new Date(a["mostRecentMessage"]["timestamp"]),
  76. keyB = new Date(b["mostRecentMessage"]["timestamp"]);
  77. // Compare the 2 dates
  78. if (keyA < keyB) return 1;
  79. if (keyA > keyB) return -1;
  80. return 0;
  81. });
  82. let postData = { conversations };
  83. // fetch(
  84. // "https://candidate.hubteam.com/candidateTest/v3/problem/result?userKey=8270d53c6a7e40205f4743b15c15",
  85. // {
  86. // method: "post",
  87. // headers: {
  88. // "Content-Type": "application/json"
  89. // },
  90. // body: JSON.stringify(postData)
  91. // }
  92. // )
  93. // .then(res => res.json())
  94. // .then(data => console.log(data));
  95. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement