Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
157 changes: 157 additions & 0 deletions controllers/AlumniController.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
const Alumni = require('../models/Alumni');
const AlumniEvents = require('../models/AlumniEvents');
const AlumniGivingBack = require('../models/AlumniGivingBack');
const AlumniLandingPage = require('../models/AlumniLandingPage');
const createAlumni = async (req, res) => {
try {
const {
Expand Down Expand Up @@ -39,6 +42,160 @@ const createAlumni = async (req, res) => {
}
};

const deleteAlumni = async (req, res) => {
try {
const { alumniId } = req.params;

const alumni = await Alumni.findById(alumniId);

res.json(alumni);
} catch (err) {
console.log(err);
res.json(err);
}
};

const searchAlumni = async (req, res) => {
try {
const { q, v } = req.query;
let alumni;
switch (q) {
case 'year':
alumni = await Alumni.find({
passingYear: v,
});
break;
case 'name':
alumni = await Alumni.find({ name: { $regex: v } });
break;
case 'email':
alumni = await Alumni.find({ email: v });
break;
default:
break;
}

res.json(alumni);
} catch (err) {
console.log(err);
res.json(err);
}
};

const landingPageData = async (req, res) => {
try {
let landingPageData = await AlumniLandingPage.find({});

res.json(landingPageData[0]);
} catch (err) {
console.log(err);
res.json(err);
}
};

const editLandingPageData = async (req, res) => {
try {
const landingPageData = req.body;

let landingPageDataInDB = await AlumniLandingPage.findOne({});

landingPageDataInDB = landingPageDataInDB._doc;

landingPageDataInDB = {
...landingPageData,
};

landingPageDataInDB = await AlumniLandingPage.findOneAndUpdate(
{ _id: landingPageDataInDB._id },
{ $set: landingPageDataInDB },
{ new: true }
);

res.json('Updated successfully');
} catch (err) {
console.log(err);
res.json(err);
}
};

const recentEvents = (req, res) => {
try {
const recentEvents = AlumniEvents.find({})
.sort({ createdAt: -1 })
.limit(3);

res.json(recentEvents);
} catch (err) {
console.log(err);
res.json(err);
}
};

const editRecentEvent = async (req, res) => {
try {
const { recentEvent, id } = req.body;

let recentEventInDB = await AlumniEvents.findOne({ _id: id });
recentEventInDB = recentEventInDB._doc;

recentEventInDB = await AlumniEvents.findOneAndUpdate(
{ _id: recentEventInDB._id },
{ $set: { ...recentEvent } },
{ new: true }
);

res.json('Updated successfully');
} catch (err) {
console.log(err);
res.json(err);
}
};

const givingBack = async (req, res) => {
try {
const givingBackDetails = await AlumniGivingBack.findOne({});

res.json(givingBackDetails);
} catch (err) {
console.log(err);
res.json(err);
}
};

const editGivingBack = async (req, res) => {
try {
const givingBackChanges = req.body;

let givingBackDetails = await AlumniGivingBack.findOne({});

givingBackDetails = givingBackDetails._doc;

givingBackDetails = {
...givingBackDetails,
...givingBackChanges,
};

givingBackDetails = await AlumniGivingBack.findOneAndUpdate(
{ _id: givingBackDetails._id },
{ $set: givingBackDetails },
{ new: true }
);

res.json('Updated giving back details');
} catch (err) {
console.log(err);
res.json(err);
}
};

module.exports = {
createAlumni,
deleteAlumni,
searchAlumni,
landingPageData,
recentEvents,
givingBack,
editGivingBack,
editRecentEvent,
editLandingPageData,
};
93 changes: 48 additions & 45 deletions controllers/admissions/linksController.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ const createLink = (req, res) => {
link.save()
.then((createdLink) => res.status(201).json(createdLink))
.catch((err) => sendError(res, err));
}
};

const getLinks = (req, res) => {
let filter = {};
Expand All @@ -18,73 +18,76 @@ const getLinks = (req, res) => {
filter.visible = false;
}

admissionLink.find(filter)
admissionLink
.find(filter)
.sort({ updatedAt: -1 })
.then((links) => res.json(links))
.catch((err) => sendError(res, err));
}
};

const getLinkById = (req, res) => {

const id = req.query.id;
validateID(id).then(() => {
admissionLink.findById(id)
.then((link) => res.json(link))
.catch((err) => sendError(res, err));
})
validateID(id)
.then(() => {
admissionLink
.findById(id)
.then((link) => res.json(link))
.catch((err) => sendError(res, err));
})
.catch((err) => sendError(res, err));
}
};

const editLink = (req, res) => {

const id = req.query.id;
validateID(id).then(() => {
req.body.updatedAt = Date.now();
admissionLink.findByIdAndUpdate(id, req.body, { new: true, runValidators: true })
.then((updatedLink) => res.json(updatedLink))
.catch((err) => sendError(res, err));
})
validateID(id)
.then(() => {
req.body.updatedAt = Date.now();
admissionLink
.findByIdAndUpdate(id, req.body, {
new: true,
runValidators: true,
})
.then((updatedLink) => res.json(updatedLink))
.catch((err) => sendError(res, err));
})
.catch((err) => sendError(res, err));
}
};

const editMetaData = (req, res) => {
const id = req.query.id;
validateID(id).then(() => {
admissionLink.findById(id)
.then((link) => {
if (req.query.action === 'toggleVisibility') {
validateID(id)
.then(() => {
admissionLink
.findById(id)
.then((link) => {
link.visible = !link.visible;
link.visibilityChangedAt = Date.now();
} else {
return res.status(400).json({
message: 'Invalid action'
});
}
link.save()
.then((updatedLink) => res.json(updatedLink))
.catch((err) => sendError(res, err));
})
.catch((err) => sendError(res, err));
})
link.disabledAt = !link.visible ? Date.now() : null;
link.save()
.then((updatedLink) => res.json(updatedLink))
.catch((err) => sendError(res, err));
})
.catch((err) => sendError(res, err));
})
.catch((err) => sendError(res, err));
}
};

const deleteLink = (req, res) => {

const id = req.query.id;
validateID(id).then(() => {
admissionLink.findByIdAndDelete(id)
.then((deletedLink) => res.json(deletedLink))
.catch((err) => sendError(res, err));
})
validateID(id)
.then(() => {
admissionLink
.findByIdAndDelete(id)
.then((deletedLink) => res.json(deletedLink))
.catch((err) => sendError(res, err));
})
.catch((err) => sendError(res, err));
}
};

module.exports = {
createLink,
getLinks,
getLinkById,
editLink,
toggleLinkVisiblity: editMetaData,
deleteLink
}
toggleLinkVisiblity,
deleteLink,
};
27 changes: 27 additions & 0 deletions models/AlumniEvents.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
const mongoose = require('mongoose');

const Schema = mongoose.Schema;

const AlumniEventsSchema = new Schema(
{
title: {
type: String,
},
description: {
type: String,
},
date: {
type: String,
},
time: {
type: String,
},
venue: {
type: String,
},
},
{ timestamps: true }
);

const AlumniEvents = mongoose.model('AlumniEvent', AlumniEventsSchema);
module.exports = AlumniEvents;
21 changes: 21 additions & 0 deletions models/AlumniGivingBack.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
const mongoose = require('mongoose');

const Schema = mongoose.Schema;

const AlumniGivingBackSchema = new Schema(
{
purposes: {
type: [String],
},
utilizations: {
type: [{ title: String, subTitle: String, description: String }],
},
},
{ timestamps: true }
);

const AlumniGivingBack = mongoose.model(
'AlumniGivingBack',
AlumniGivingBackSchema
);
module.exports = AlumniGivingBack;
24 changes: 24 additions & 0 deletions models/AlumniLandingPage.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
const mongoose = require('mongoose');

const Schema = mongoose.Schema;

const AlumniLandingPageSchema = new Schema({
description: {
type: String,
},
totalAlumni: {
type: String,
},
chapters: {
type: String,
},
highestDonation: {
type: String,
},
});

const AlumniLandingPage = mongoose.model(
'AlumniLandingPage',
AlumniLandingPageSchema
);
module.exports = AlumniLandingPage;
Loading