Skip to content

Commit dde787c

Browse files
Merge pull request #1131 from OneCommunityGlobal/Sai_Preetham_Archive_unarchive_backend
Taariq taking over for Sai Preetham - feat: enhance project archive/unarchive functionality in controller a…
2 parents 6f40229 + 52e8e1d commit dde787c

73 files changed

Lines changed: 1955 additions & 3823 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/node.js.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,4 +78,4 @@ jobs:
7878
uses: actions/upload-artifact@v4
7979
with:
8080
name: backend-coverage-report
81-
path: coverage/
81+
path: coverage/

package-lock.json

Lines changed: 1152 additions & 3233 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
"mongodb-memory-server": "^7.6.3",
5959
"nock": "^14.0.10",
6060
"nodemon": "^3.0.1",
61+
"pidtree": "^0.6.0",
6162
"prettier": "3.2.5",
6263
"supertest": "^6.3.4"
6364
},
Lines changed: 106 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -1,108 +1,111 @@
1-
const WeeklySummaryEmailAssignmentController = function (WeeklySummaryEmailAssignment, userProfile) {
2-
const getWeeklySummaryEmailAssignment = async function (req, res) {
3-
try {
4-
const assignments = await WeeklySummaryEmailAssignment.find().populate('assignedTo').exec();
5-
res.status(200).send(assignments);
6-
} catch (error) {
7-
res.status(500).send(error);
1+
const WeeklySummaryEmailAssignmentController = function (
2+
WeeklySummaryEmailAssignment,
3+
userProfile,
4+
) {
5+
const getWeeklySummaryEmailAssignment = async function (req, res) {
6+
try {
7+
const assignments = await WeeklySummaryEmailAssignment.find().populate('assignedTo').exec();
8+
res.status(200).send(assignments);
9+
} catch (error) {
10+
res.status(500).send(error);
11+
}
12+
};
13+
14+
const setWeeklySummaryEmailAssignment = async function (req, res) {
15+
try {
16+
const { email } = req.body;
17+
18+
if (!email) {
19+
res.status(400).send('bad request');
20+
return;
821
}
9-
};
10-
11-
const setWeeklySummaryEmailAssignment = async function (req, res) {
12-
try {
13-
const { email } = req.body;
14-
15-
if (!email) {
16-
res.status(400).send('bad request');
17-
return;
18-
}
19-
20-
const user = await userProfile.findOne({ email });
21-
if (!user) {
22-
return res.status(400).send('User profile not found');
23-
}
24-
25-
const newAssignment = new WeeklySummaryEmailAssignment({
26-
email,
27-
assignedTo: user._id,
28-
});
29-
30-
await newAssignment.save();
31-
const assignment = await WeeklySummaryEmailAssignment.find({ email }).populate('assignedTo').exec();
32-
33-
res.status(200).send(assignment[0]);
34-
} catch (error) {
35-
res.status(500).send(error);
22+
23+
const user = await userProfile.findOne({ email });
24+
if (!user) {
25+
return res.status(400).send('User profile not found');
3626
}
37-
};
38-
39-
const deleteWeeklySummaryEmailAssignment = async function (req, res) {
40-
try {
41-
const { id } = req.params;
42-
43-
if (!id) {
44-
res.status(400).send('bad request');
45-
return;
46-
}
47-
48-
const deletedAssignment = await WeeklySummaryEmailAssignment.findOneAndDelete({ _id: id });
49-
if (!deletedAssignment) {
50-
res.status(404).send('Assignment not found');
51-
return;
52-
}
53-
54-
res.status(200).send({ id });
55-
} catch (error) {
56-
res.status(500).send(error);
27+
28+
const newAssignment = new WeeklySummaryEmailAssignment({
29+
email,
30+
assignedTo: user._id,
31+
});
32+
33+
await newAssignment.save();
34+
const assignment = await WeeklySummaryEmailAssignment.find({ email })
35+
.populate('assignedTo')
36+
.exec();
37+
38+
res.status(200).send(assignment[0]);
39+
} catch (error) {
40+
res.status(500).send(error);
41+
}
42+
};
43+
44+
const deleteWeeklySummaryEmailAssignment = async function (req, res) {
45+
try {
46+
const { id } = req.params;
47+
48+
if (!id) {
49+
res.status(400).send('bad request');
50+
return;
5751
}
58-
};
59-
60-
const updateWeeklySummaryEmailAssignment = async function (req, res) {
61-
try{
62-
const { id } = req.params;
63-
const { email } = req.body;
64-
65-
if (!id || (!email)) {
66-
res.status(400).send('bad request');
67-
return;
68-
}
69-
70-
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
71-
if (!emailRegex.test(email)) {
72-
return res.status(400).json({
73-
error: 'Invalid email format'
74-
});
75-
}
76-
77-
const updateAssignment = await WeeklySummaryEmailAssignment.findOneAndUpdate(
78-
{ _id: id },
79-
{
80-
email,
81-
},
82-
{
83-
new: true
84-
}
85-
);
86-
87-
if (!updateAssignment) {
88-
res.status(404).send('Assignment not found');
89-
return;
90-
}
91-
92-
res.status(200).send(updateAssignment);
93-
94-
} catch (error) {
95-
res.status(500).send(error);
52+
53+
const deletedAssignment = await WeeklySummaryEmailAssignment.findOneAndDelete({ _id: id });
54+
if (!deletedAssignment) {
55+
res.status(404).send('Assignment not found');
56+
return;
9657
}
97-
};
98-
99-
return {
100-
getWeeklySummaryEmailAssignment,
101-
setWeeklySummaryEmailAssignment,
102-
deleteWeeklySummaryEmailAssignment,
103-
updateWeeklySummaryEmailAssignment
104-
};
58+
59+
res.status(200).send({ id });
60+
} catch (error) {
61+
res.status(500).send(error);
62+
}
10563
};
106-
107-
module.exports = WeeklySummaryEmailAssignmentController;
108-
64+
65+
const updateWeeklySummaryEmailAssignment = async function (req, res) {
66+
try {
67+
const { id } = req.params;
68+
const { email } = req.body;
69+
70+
if (!id || !email) {
71+
res.status(400).send('bad request');
72+
return;
73+
}
74+
75+
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
76+
if (!emailRegex.test(email)) {
77+
return res.status(400).json({
78+
error: 'Invalid email format',
79+
});
80+
}
81+
82+
const updateAssignment = await WeeklySummaryEmailAssignment.findOneAndUpdate(
83+
{ _id: id },
84+
{
85+
email,
86+
},
87+
{
88+
new: true,
89+
},
90+
);
91+
92+
if (!updateAssignment) {
93+
res.status(404).send('Assignment not found');
94+
return;
95+
}
96+
97+
res.status(200).send(updateAssignment);
98+
} catch (error) {
99+
res.status(500).send(error);
100+
}
101+
};
102+
103+
return {
104+
getWeeklySummaryEmailAssignment,
105+
setWeeklySummaryEmailAssignment,
106+
deleteWeeklySummaryEmailAssignment,
107+
updateWeeklySummaryEmailAssignment,
108+
};
109+
};
110+
111+
module.exports = WeeklySummaryEmailAssignmentController;

src/controllers/atomController.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const Atom = require('../models/atom');
22
const Subject = require('../models/subject');
33

4+
// eslint-disable-next-line max-lines-per-function
45
const atomController = function () {
56
// Get all atoms
67
const getAtoms = async (req, res) => {

src/controllers/badgeController.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ const UserProfile = require('../models/userProfile');
33
const helper = require('../utilities/permissions');
44
const escapeRegex = require('../utilities/escapeRegex');
55
const cacheClosure = require('../utilities/nodeCache');
6-
//const userHelper = require('../helpers/userHelper')();
6+
// const userHelper = require('../helpers/userHelper')();
77

88
const badgeController = function (Badge) {
99
/**
@@ -341,7 +341,7 @@ const badgeController = function (Badge) {
341341
};
342342

343343
return {
344-
//awardBadgesTest,
344+
// awardBadgesTest,
345345
getAllBadges,
346346
assignBadges,
347347
postBadge,

src/controllers/badgeController.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ const cache = require('../utilities/nodeCache');
55
const Badge = require('../models/badge');
66
const helper = require('../utilities/permissions');
77
const escapeRegex = require('../utilities/escapeRegex');
8-
const badgeController = require('./badgeController');
98
const { mockReq, mockRes, assertResMock } = require('../test');
109
const UserProfile = require('../models/userProfile');
10+
const badgeController = require('./badgeController');
1111

1212
const makeSut = () => {
1313
const { postBadge, getAllBadges, assignBadges, deleteBadge } = badgeController(Badge);

src/controllers/bmdashboard/__tests__/bmMaterialsController.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,4 +349,4 @@ describe('bmMaterialsController', () => {
349349
);
350350
});
351351
});
352-
});
352+
});

src/controllers/bmdashboard/__tests__/bmNewLessonController.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -424,4 +424,4 @@ describe('bmNewLessonController', () => {
424424
expect(mockRes.json).toHaveBeenCalledWith({ error: 'Error fetching tags' });
425425
});
426426
});
427-
});
427+
});

src/controllers/bmdashboard/__tests__/bmReusableController.test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
// const mongoose = require('mongoose');
1+
// eslint-disable-next-line no-unused-vars
2+
const mongoose = require('mongoose');
23

34
const mockReusableType = {
45
findById: jest.fn(),

0 commit comments

Comments
 (0)