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

Function getNewTask

models/tasks.js:468–507  ·  view source on GitHub ↗
(skill = undefined, level = undefined)

Source from the content-addressed store, hash-verified

466};
467
468const getNewTask = async (skill = undefined, level = undefined) => {
469 const availableTasks = await tasksModel.where("status", "==", TASK_STATUS.AVAILABLE).get();
470 const idArray = [];
471
472 let task;
473
474 if (!availableTasks.empty) {
475 availableTasks.forEach((item) => idArray.push(item.id));
476
477 if (!skill) {
478 task = await ItemModel.where("itemType", "==", "TASK").where("levelValue", "<=", 2).get();
479 } else {
480 task = await ItemModel.where("tagName", "==", skill)
481 .where("itemType", "==", "TASK")
482 .where("levelValue", ">=", level)
483 .where("levelValue", "<=", level + 2)
484 .get();
485 }
486 }
487
488 if (!task.empty) {
489 let taskData, id;
490 for (const doc of task.docs) {
491 if (idArray.includes(doc.data().itemId)) {
492 id = doc.id;
493 taskData = doc.data();
494 break;
495 }
496 }
497 if (taskData) {
498 return {
499 task: {
500 id,
501 ...taskData,
502 },
503 };
504 }
505 }
506 return { taskNotFound: true };
507};
508
509/**
510 *

Callers 1

fetchSkillLevelTaskFunction · 0.85

Calls 1

getMethod · 0.80

Tested by

no test coverage detected