|
1 | 1 | const { Conflict, NotFound } = require("http-errors");
|
| 2 | +const progressesModel = require("../models/progresses"); |
2 | 3 | const {
|
3 |
| - createProgressDocument, |
4 |
| - getProgressDocument, |
5 |
| - getRangeProgressData, |
6 |
| - getProgressByDate, |
7 |
| -} = require("../models/progresses"); |
8 |
| -const { PROGRESSES_RESPONSE_MESSAGES, INTERNAL_SERVER_ERROR_MESSAGE } = require("../constants/progresses"); |
| 4 | + PROGRESSES_RESPONSE_MESSAGES, |
| 5 | + INTERNAL_SERVER_ERROR_MESSAGE, |
| 6 | + PROGRESSES_SIZE, |
| 7 | + PROGRESSES_PAGE_SIZE, |
| 8 | +} = require("../constants/progresses"); |
9 | 9 | const { sendTaskUpdate } = require("../utils/sendTaskUpdate");
|
10 | 10 | const { PROGRESS_DOCUMENT_RETRIEVAL_SUCCEEDED, PROGRESS_DOCUMENT_CREATED_SUCCEEDED } = PROGRESSES_RESPONSE_MESSAGES;
|
11 | 11 |
|
@@ -49,7 +49,7 @@ const createProgress = async (req, res) => {
|
49 | 49 | body: { type, completed, planned, blockers, taskId },
|
50 | 50 | } = req;
|
51 | 51 | try {
|
52 |
| - const { data, taskTitle } = await createProgressDocument({ ...req.body, userId: req.userData.id }); |
| 52 | + const { data, taskTitle } = await progressesModel.createProgressDocument({ ...req.body, userId: req.userData.id }); |
53 | 53 | await sendTaskUpdate(completed, blockers, planned, req.userData.username, taskId, taskTitle);
|
54 | 54 | return res.status(201).json({
|
55 | 55 | data,
|
@@ -107,8 +107,35 @@ const createProgress = async (req, res) => {
|
107 | 107 | */
|
108 | 108 |
|
109 | 109 | const getProgress = async (req, res) => {
|
| 110 | + const { dev, page = PROGRESSES_PAGE_SIZE, size = PROGRESSES_SIZE, type, userId, taskId } = req.query; |
110 | 111 | try {
|
111 |
| - const data = await getProgressDocument(req.query); |
| 112 | + if (dev === "true") { |
| 113 | + const { progressDocs, totalProgressCount } = await progressesModel.getPaginatedProgressDocument(req.query); |
| 114 | + const limit = parseInt(size, 10); |
| 115 | + const offset = parseInt(page, 10) * limit; |
| 116 | + const nextPage = offset + limit < totalProgressCount ? parseInt(page, 10) + 1 : null; |
| 117 | + const prevPage = page > 0 ? parseInt(page, 10) - 1 : null; |
| 118 | + let baseUrl = `${req.baseUrl}`; |
| 119 | + if (type) { |
| 120 | + baseUrl += `?type=${type}`; |
| 121 | + } else if (userId) { |
| 122 | + baseUrl += `?userId=${userId}`; |
| 123 | + } else if (taskId) { |
| 124 | + baseUrl += `?taskId=${taskId}`; |
| 125 | + } |
| 126 | + const nextLink = nextPage !== null ? `${baseUrl}&page=${nextPage}&size=${size}&dev=${dev}` : null; |
| 127 | + const prevLink = prevPage !== null ? `${baseUrl}&page=${prevPage}&size=${size}&dev=${dev}` : null; |
| 128 | + return res.json({ |
| 129 | + message: PROGRESS_DOCUMENT_RETRIEVAL_SUCCEEDED, |
| 130 | + count: progressDocs.length, |
| 131 | + data: progressDocs, |
| 132 | + links: { |
| 133 | + prev: prevLink, |
| 134 | + next: nextLink, |
| 135 | + }, |
| 136 | + }); |
| 137 | + } |
| 138 | + const data = await progressesModel.getProgressDocument(req.query); |
112 | 139 | return res.json({
|
113 | 140 | message: PROGRESS_DOCUMENT_RETRIEVAL_SUCCEEDED,
|
114 | 141 | count: data.length,
|
@@ -163,7 +190,7 @@ const getProgress = async (req, res) => {
|
163 | 190 |
|
164 | 191 | const getProgressRangeData = async (req, res) => {
|
165 | 192 | try {
|
166 |
| - const data = await getRangeProgressData(req.query); |
| 193 | + const data = await progressesModel.getRangeProgressData(req.query); |
167 | 194 | return res.json({
|
168 | 195 | message: PROGRESS_DOCUMENT_RETRIEVAL_SUCCEEDED,
|
169 | 196 | data,
|
@@ -217,7 +244,7 @@ const getProgressRangeData = async (req, res) => {
|
217 | 244 |
|
218 | 245 | const getProgressBydDateController = async (req, res) => {
|
219 | 246 | try {
|
220 |
| - const data = await getProgressByDate(req.params, req.query); |
| 247 | + const data = await progressesModel.getProgressByDate(req.params, req.query); |
221 | 248 | return res.json({
|
222 | 249 | message: PROGRESS_DOCUMENT_RETRIEVAL_SUCCEEDED,
|
223 | 250 | data,
|
|
0 commit comments