Skip to content

Commit 3a3c76a

Browse files
Merge pull request #1779 from OneCommunityGlobal/aayush_display_box_for_confirming_promotions_backend
Aayush display box for confirming promotions backend
2 parents 32b7261 + 56f26ed commit 3a3c76a

4 files changed

Lines changed: 58 additions & 0 deletions

File tree

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
const mongoose = require('mongoose');
2+
const PromotionDetail = require('../models/promotionDetail');
3+
4+
const promotionDetails = async (req, res) => {
5+
try {
6+
const { reviewerId } = req.params;
7+
8+
if (!mongoose.Types.ObjectId.isValid(reviewerId)) {
9+
return res.status(400).json({ error: 'Invalid reviewer ID' });
10+
}
11+
12+
const promotionDetail = await PromotionDetail.findOne({ _id: reviewerId }).lean();
13+
if (!promotionDetail) {
14+
return res.status(404).json({ error: 'Promotion details not found' });
15+
}
16+
17+
const { _id, __v, ...cleaned } = promotionDetail;
18+
19+
if (Array.isArray(cleaned.weeklyPRs)) {
20+
cleaned.weeklyPRs = cleaned.weeklyPRs.map(({ _id: prId, ...pr }) => pr);
21+
}
22+
return res.status(200).json(cleaned);
23+
} catch (error) {
24+
console.error('Error fetching promotion details:', error);
25+
return res.status(500).json({ error: 'Internal server error' });
26+
}
27+
};
28+
29+
module.exports = () => ({
30+
promotionDetails,
31+
});

src/models/promotionDetail.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
const mongoose = require('mongoose');
2+
3+
const promotionDetailsSchema = new mongoose.Schema({
4+
reviewerName: { type: String, required: true },
5+
teamCode: { type: String },
6+
teamReviewerName: { type: String },
7+
weeklyPRs: [
8+
{
9+
week: { type: String },
10+
count: { type: Number },
11+
},
12+
],
13+
});
14+
15+
module.exports = mongoose.model('promotionDetails', promotionDetailsSchema);
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
const express = require('express');
2+
3+
const promotionDetailsRouter = express.Router();
4+
const controller = require('../controllers/promotionDetailsController')();
5+
6+
promotionDetailsRouter.route('/promotion-details/:reviewerId').get(controller.promotionDetails);
7+
8+
module.exports = promotionDetailsRouter;

src/startup/routes.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,8 @@ const epBadge = require('../models/educationPortal/badgeModel');
349349
const studentBadges = require('../models/educationPortal/studentBadgesModel');
350350
const badgeSystemRouter = require('../routes/educationPortal/badgeSystemRouter');
351351

352+
const promotionDetailsRouter = require('../routes/promotionDetailsRouter');
353+
352354
module.exports = function (app) {
353355
app.use('/api', forgotPwdRouter);
354356
app.use('/api', loginRouter);
@@ -508,6 +510,8 @@ module.exports = function (app) {
508510
app.use('/api/bm', bmRentalChart);
509511
app.use('/api', bmToolsDowntimeRouter);
510512
app.use('/api/lb', lbWishlistsRouter);
513+
514+
app.use('/api', promotionDetailsRouter);
511515
app.use('/api/analytics', analyticsPopularPRsRouter);
512516
app.use('/api/', promotionEligibilityRouter(userProfile, timeEntry, task, PromotionEligibility));
513517

0 commit comments

Comments
 (0)