Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/katelynrachel/pastevents testimonials ourteam #45

Merged
merged 15 commits into from
Jun 3, 2024
Merged
2 changes: 2 additions & 0 deletions backend/dist/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ const newsletter_1 = __importDefault(require("./routes/newsletter")); // Import
const emails_1 = __importDefault(require("./routes/emails"));
const pageeditor_1 = __importDefault(require("./routes/pageeditor"));
const paypal_1 = __importDefault(require("./routes/paypal"));
const records_1 = __importDefault(require("./routes/records"));
const app = (0, express_1.default)();
// initializes Express to accept JSON in the request/response body
app.use(express_1.default.json());
Expand All @@ -42,6 +43,7 @@ app.use("/api/newsletter", newsletter_1.default);
app.use("/api/emails", emails_1.default);
app.use("/api/pageeditor", pageeditor_1.default);
app.use("/api/orders", paypal_1.default); // Donation Order routes
app.use("/api/records", records_1.default);
/**
* Error handler; all errors thrown by server are handled here.
* Explicit typings required here because TypeScript cannot infer the argument types.
Expand Down
45 changes: 44 additions & 1 deletion backend/dist/controllers/member.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAllMembers = exports.getMember = exports.createMember = void 0;
exports.deleteMember = exports.updateMember = exports.getAllMembers = exports.getMember = exports.createMember = void 0;
const member_1 = __importDefault(require("../models/member"));
const mongoose_1 = require("mongoose");
const validationErrorParser_1 = __importDefault(require("../util/validationErrorParser"));
const express_validator_1 = require("express-validator");
const http_errors_1 = __importDefault(require("http-errors"));
const createMember = (req, res, next) => __awaiter(void 0, void 0, void 0, function* () {
const { name, role, profilePictureURL } = req.body;
try {
Expand Down Expand Up @@ -51,3 +54,43 @@ const getAllMembers = (req, res, next) => __awaiter(void 0, void 0, void 0, func
}
});
exports.getAllMembers = getAllMembers;
const updateMember = (req, res, next) => __awaiter(void 0, void 0, void 0, function* () {
const errors = (0, express_validator_1.validationResult)(req);
const { id } = req.params;
// if (id !== req.body._id) {
// // If the _id in the URL does not match the _id in the body, bad request
// res.status(400);
// }
try {
(0, validationErrorParser_1.default)(errors);
const member = yield member_1.default.findByIdAndUpdate(id, req.body);
if (member === null) {
// No event found
res.status(404);
}
const updatedMember = yield member_1.default.findById(id);
if (updatedMember === null) {
// No event found, something went wrong
res.status(404);
}
res.status(200).json(updatedMember);
}
catch (error) {
next(error);
}
});
exports.updateMember = updateMember;
const deleteMember = (req, res, next) => __awaiter(void 0, void 0, void 0, function* () {
const { id } = req.params;
try {
const member = yield member_1.default.findByIdAndDelete(id);
if (!member) {
throw (0, http_errors_1.default)(404, "Member not found.");
}
res.status(200).json(member);
}
catch (error) {
next(error);
}
});
exports.deleteMember = deleteMember;
48 changes: 48 additions & 0 deletions backend/dist/controllers/records.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.updateRecord = exports.getRecord = void 0;
const records_1 = __importDefault(require("../models/records"));
const getRecord = (req, res, next) => __awaiter(void 0, void 0, void 0, function* () {
const { card } = req.params;
try {
const updatedRecord = yield records_1.default.findOne({ card });
if (updatedRecord === null) {
res.status(404);
}
res.status(200).json(updatedRecord);
}
catch (error) {
next(error);
}
});
exports.getRecord = getRecord;
const updateRecord = (req, res, next) => __awaiter(void 0, void 0, void 0, function* () {
const { card } = req.params;
try {
const record = yield records_1.default.findOneAndUpdate({ card: card }, req.body);
if (record === null) {
res.status(404);
}
const updatedRecord = yield records_1.default.findOne({ card });
if (updatedRecord === null) {
res.status(404);
}
res.status(200).json(updatedRecord);
}
catch (error) {
next(error);
}
});
exports.updateRecord = updateRecord;
57 changes: 56 additions & 1 deletion backend/dist/controllers/testimonial.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAllTestimonials = exports.createTestimonial = void 0;
exports.deleteTestimonial = exports.updateTestimonial = exports.getAllQuotes = exports.getAllTestimonials = exports.createTestimonial = void 0;
const testimonial_1 = __importDefault(require("../models/testimonial"));
const express_validator_1 = require("express-validator");
const http_errors_1 = __importDefault(require("http-errors"));
const validationErrorParser_1 = __importDefault(require("../util/validationErrorParser"));
const createTestimonial = (req, res, next) => __awaiter(void 0, void 0, void 0, function* () {
const { title, description, image, type } = req.body;
try {
Expand All @@ -23,9 +26,11 @@ const createTestimonial = (req, res, next) => __awaiter(void 0, void 0, void 0,
image: image,
type: type,
});
console.log("testimonial: ", testimonial);
res.status(201).json(testimonial);
}
catch (error) {
console.log("erroring here");
next(error);
}
});
Expand All @@ -40,3 +45,53 @@ const getAllTestimonials = (req, res, next) => __awaiter(void 0, void 0, void 0,
}
});
exports.getAllTestimonials = getAllTestimonials;
const getAllQuotes = (req, res, next) => __awaiter(void 0, void 0, void 0, function* () {
try {
const testimonials = yield testimonial_1.default.find({ type: "quote" });
res.status(200).json(testimonials);
}
catch (error) {
next(error);
}
});
exports.getAllQuotes = getAllQuotes;
const updateTestimonial = (req, res, next) => __awaiter(void 0, void 0, void 0, function* () {
const errors = (0, express_validator_1.validationResult)(req);
const { id } = req.params;
if (id !== req.body._id) {
// If the _id in the URL does not match the _id in the body, bad request
res.status(400);
}
try {
(0, validationErrorParser_1.default)(errors);
const testimonial = yield testimonial_1.default.findByIdAndUpdate(id, req.body);
if (testimonial === null) {
// No newsletter found
res.status(404);
}
const updatedTestimonial = yield testimonial_1.default.findById(id);
if (updatedTestimonial === null) {
// No testimonial found, something went wrong
res.status(404);
}
res.status(200).json(updatedTestimonial);
}
catch (error) {
next(error);
}
});
exports.updateTestimonial = updateTestimonial;
const deleteTestimonial = (req, res, next) => __awaiter(void 0, void 0, void 0, function* () {
const { id } = req.params;
try {
const testimonial = yield testimonial_1.default.findByIdAndDelete(id);
if (!testimonial) {
throw (0, http_errors_1.default)(404, "Testimonial not found.");
}
res.status(200).json(testimonial);
}
catch (error) {
next(error);
}
});
exports.deleteTestimonial = deleteTestimonial;
8 changes: 8 additions & 0 deletions backend/dist/models/records.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const mongoose_1 = require("mongoose");
const recordsSchema = new mongoose_1.Schema({
card: { type: String, required: true },
date: { type: String, required: true },
});
exports.default = (0, mongoose_1.model)("Editrecords", recordsSchema);
6 changes: 5 additions & 1 deletion backend/dist/routes/members.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
Object.defineProperty(exports, "__esModule", { value: true });
const express_1 = __importDefault(require("express"));
const MembersController = __importStar(require("../controllers/member"));
const MembersValidator = __importStar(require("../validators/member"));
const router = express_1.default.Router();
router.get("/get", MembersController.getAllMembers);
router.post("/post", MembersController.createMember);
router.get("/:id", MembersController.getMember);
router.post("/post", MembersValidator.createMember, MembersController.createMember);
router.put("/:id", MembersController.updateMember);
router.delete("/:id", MembersController.deleteMember);
exports.default = router;
35 changes: 35 additions & 0 deletions backend/dist/routes/records.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const express_1 = __importDefault(require("express"));
const RecordsController = __importStar(require("../controllers/records"));
const RecordsValidator = __importStar(require("../validators/records"));
const router = express_1.default.Router();
router.put("/:card", RecordsValidator.updateRecord, RecordsController.updateRecord);
router.get("/:card", RecordsController.getRecord);
exports.default = router;
4 changes: 4 additions & 0 deletions backend/dist/routes/testimonial.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
Object.defineProperty(exports, "__esModule", { value: true });
const express_1 = __importDefault(require("express"));
const TestimonialController = __importStar(require("../controllers/testimonial"));
const TestimonialValidator = __importStar(require("../validators/testimonial"));
const router = express_1.default.Router();
router.get("/get", TestimonialController.getAllTestimonials);
router.get("/get/quote", TestimonialController.getAllQuotes);
router.post("/post", TestimonialController.createTestimonial);
router.put("/:id", TestimonialValidator.updateTestimonial, TestimonialController.updateTestimonial);
router.delete("/:id", TestimonialValidator.deleteTestimonial, TestimonialController.deleteTestimonial);
exports.default = router;
29 changes: 29 additions & 0 deletions backend/dist/validators/records.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.updateRecord = void 0;
const express_validator_1 = require("express-validator");
const makeIDValidator = () => (0, express_validator_1.body)("_id")
.exists()
.withMessage("_id is required")
.bail()
.isMongoId()
.withMessage("_id must be a MongoDB object ID");
const makeCardValidator = () => (0, express_validator_1.body)("card")
.exists()
.withMessage("card is required")
.bail()
.isString()
.withMessage("card must be a string")
.bail()
.notEmpty()
.withMessage("card cannot be empty");
const makeDateValidator = () => (0, express_validator_1.body)("date")
.exists()
.withMessage("date is required")
.bail()
.isString()
.withMessage("date must be a string")
.bail()
.notEmpty()
.withMessage("date cannot be empty");
exports.updateRecord = [makeIDValidator(), makeCardValidator(), makeDateValidator()];
12 changes: 4 additions & 8 deletions backend/dist/validators/testimonial.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.updateTestimonial = exports.createTestimonial = void 0;
exports.deleteTestimonial = exports.updateTestimonial = exports.createTestimonial = void 0;
const express_validator_1 = require("express-validator");
const makeIDValidator = () => (0, express_validator_1.body)("_id")
.exists()
.withMessage("_id is required")
.bail()
.isMongoId()
.isString()
.withMessage("_id must be a MongoDB object ID");
const makeTitleValidator = () => (0, express_validator_1.body)("title")
// title must exist, if not this message will be displayed
Expand Down Expand Up @@ -46,12 +46,8 @@ const makeImageValidator = () => (0, express_validator_1.body)("image")
.withMessage("image cannot be empty");
exports.createTestimonial = [
makeTitleValidator(),
makeDescriptionValidator(),
makeImageValidator(),
];
exports.updateTestimonial = [
makeIDValidator(),
makeTitleValidator(),
makeDescriptionValidator(),
makeImageValidator(),
];
exports.updateTestimonial = [makeIDValidator(), makeImageValidator()];
exports.deleteTestimonial = [makeIDValidator()];
2 changes: 2 additions & 0 deletions backend/src/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import newsletterRoutes from "src/routes/newsletter"; // Import newsletter route
import emailRoutes from "src/routes/emails";
import pageeditorRoutes from "src/routes/pageeditor";
import paypalRoutes from "src/routes/paypal";
import recordRoutes from "src/routes/records";

const app = express();

Expand Down Expand Up @@ -44,6 +45,7 @@ app.use("/api/newsletter", newsletterRoutes);
app.use("/api/emails", emailRoutes);
app.use("/api/pageeditor", pageeditorRoutes);
app.use("/api/orders", paypalRoutes); // Donation Order routes
app.use("/api/records", recordRoutes);

/**
* Error handler; all errors thrown by server are handled here.
Expand Down
Loading
Loading