MCPcopy Create free account
hub / github.com/RealDevSquad/website-backend / fetchTaskRequests

Function fetchTaskRequests

models/taskRequests.js:27–76  ·  view source on GitHub ↗
(dev)

Source from the content-addressed store, hash-verified

25 * @return {Object}
26 */
27const fetchTaskRequests = async (dev) => {
28 const taskRequests = [];
29 const newTaskRequestsModel = [];
30 try {
31 const taskRequestsSnapshots = (await taskRequestsCollection.get()).docs;
32
33 const taskPromises = [];
34 const userPromises = [];
35
36 const newUserPromises = [];
37
38 taskRequestsSnapshots.forEach((taskRequestsSnapshot) => {
39 const taskRequestData = taskRequestsSnapshot.data();
40 taskRequestData.id = taskRequestsSnapshot.id;
41 taskRequestData.url = new URL(`/taskRequests/${taskRequestData.id}`, config.get("services.rdsUi.baseUrl"));
42 const { requestors } = taskRequestData;
43
44 if (taskRequestData.taskId && !taskRequestData.requestType) {
45 taskPromises.push(tasksModel.fetchTask(taskRequestData.taskId));
46 userPromises.push(Promise.all(requestors.map((requestor) => userModel.fetchUser({ userId: requestor }))));
47 taskRequests.push(taskRequestData);
48 } else if (dev) {
49 newUserPromises.push(Promise.all(requestors.map((requestor) => userModel.fetchUser({ userId: requestor }))));
50 newTaskRequestsModel.push(taskRequestData);
51 }
52 });
53
54 const tasks = await Promise.all(taskPromises);
55 const users = await Promise.all(userPromises);
56
57 if (dev) {
58 const newUsers = await Promise.all(newUserPromises);
59 newTaskRequestsModel.forEach((taskRequest, index) => {
60 taskRequest.requestors = newUsers[+index];
61 });
62 }
63
64 taskRequests.forEach((taskRequest, index) => {
65 taskRequest.task = tasks[+index].taskData;
66 taskRequest.requestors = users[+index];
67 });
68 } catch (err) {
69 logger.error("Error in updating task", err);
70 }
71
72 if (dev) {
73 return [...taskRequests, ...newTaskRequestsModel];
74 }
75 return taskRequests;
76};
77
78const fetchPaginatedTaskRequests = async (queries = {}) => {
79 try {

Callers 1

Calls 1

getMethod · 0.80

Tested by

no test coverage detected