rename the app

This commit is contained in:
Smigz 2025-03-24 04:06:46 -04:00
parent ce35924a54
commit f65bf959b1
27 changed files with 1832 additions and 0 deletions

View file

@ -0,0 +1,46 @@
const bcryptjs = require("bcryptjs");
const db = require("../models/query");
const { validationResult } = require("express-validator");
function loginGet(req, res, next) {
res.render("login", {
pageTitle: "InspiredCliches | Login",
errors: req.session.messages,
});
}
function logOut(req, res, next) {
req.logout((err) => {
if (err) return next(err);
});
res.redirect("/");
}
function signUpGet(req, res, next) {
res.render("register", {
pageTitle: "InspiredCliches | Register",
errors: null,
});
}
async function signUpPost(req, res, next) {
const result = validationResult(req);
if (result.isEmpty()) {
const { username, password } = req.body;
const hashedPassword = await bcryptjs.hash(password, 10);
db.insertUser(username, hashedPassword);
res.redirect("/auth/login");
} else {
res.status(400).render("register", {
errors: result.array(),
pageTitle: "InspiredCliches | Register",
});
}
}
module.exports = {
loginGet,
logOut,
signUpPost,
signUpGet,
};

View file

@ -0,0 +1,90 @@
const db = require("../models/query");
function indexGet(req, res, next) {
if (res.locals.currentUser) {
const keynotes = db.getEveryNote();
const userLikedPosts = db.getLikesByUser(res.locals.currentUser.user_id);
res.render("feed", {
pageTitle: "InspiredCliches | Feed",
keynotes: keynotes,
userLikedPosts: userLikedPosts,
});
}
res.render("home", { pageTitle: "InspiredCliches" });
}
function addLike(req, res, next) {
const { noteId } = req.query;
const noteExits = noteId ? db.getNoteById(noteId) : null;
if (res.locals.currentUser && noteExits) {
const userId = res.locals.currentUser.user_id;
if (db.checkIfNotedLiked(noteId, userId)) {
db.deleteLike(noteId, userId);
} else {
db.insertLike(Number(noteId), userId);
}
}
res.redirect("/");
}
function addNotePost(req, res, next) {
const { message, media } = req.body;
if (res.locals.currentUser) {
const userId = res.locals.currentUser.user_id;
db.putNewNote({ message: message, media: null, userId: userId });
}
res.redirect("/");
}
function deleteNote(req, res) {
const { messageId, userId } = req.query;
if (res.locals.currentUser) {
const message = db.getNoteById(messageId);
if (message.user_id === Number(userId)) {
db.deleteNote(Number(messageId));
}
res.redirect("/");
}
}
function addNoteGet(req, res, next) {
res.render("note-form", { pageTitle: "InspiredCliches | New Note" });
}
function getProfile(req, res, next) {
const { userId } = req.query;
const userExists = userId ? db.getUserById(userId) : null;
if (res.locals.currentUser) {
if (userExists) {
const sumUserPosts = db.getSumNotesByUserId(userId);
const allPosts = db.getAllNotesByUserId(userId);
res.render("view-profile", {
pageTitle: "InspiredCliches | Edit Profile",
user: userExists,
totalPosts: sumUserPosts,
allPosts: allPosts,
});
} else {
res.redirect("/");
}
}
}
module.exports = {
indexGet,
addNoteGet,
addNotePost,
deleteNote,
addLike,
getProfile,
};