Skip to content

Commit

Permalink
Merge branch 'main' into seeds2
Browse files Browse the repository at this point in the history
  • Loading branch information
emmadavids committed Jun 22, 2023
2 parents a88f0a9 + 17dd31f commit 3c03e35
Show file tree
Hide file tree
Showing 6 changed files with 95 additions and 60 deletions.
15 changes: 14 additions & 1 deletion controllers/friends.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,29 @@ const friendService = require("../services/friendService");
const FriendsController = {
Index: async (req, res) => {
try {
if (!req.session.user) {
return res.redirect("/sessions/new");
}
const friendshipsRequests = await friendService.getFriendshipRequests(
req.session.user._id
);
const pendingFriendships = await friendService.getPendingFriendships(
req.session.user._id
);
const acceptedFriendships = await friendService.getAcceptedFriendships(
let acceptedFriendships = await friendService.getAcceptedFriendships(
req.session.user._id
);

acceptedFriendships = acceptedFriendships.map((friendship) => {
let friendUsername = "";
if (friendship.requester._id.toString() === req.session.user._id) {
friendUsername = friendship.recipient.username;
} else {
friendUsername = friendship.requester.username;
}
return { ...friendship._doc, friendUsername };
});

res.render("friends/index", {
friendshipsRequests,
pendingFriendships,
Expand Down
2 changes: 1 addition & 1 deletion controllers/posts.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ const postService = require("../services/postService");
const userService = require("../services/userService");
const likeService = require("../services/likeService");
const commentService = require("../services/commentService");
const cloudinaryService = require("../services/cloudinaryService");

const moment = require("moment");

const PostsController = {
Expand Down
5 changes: 2 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,14 @@
"private": true,
"scripts": {
"lint": "eslint .",
"start:app": "nodemon ./bin/www",
"start:test": "PORT=3030 MONGODB_URL='mongodb://0.0.0.0/acebook_test' npm run start:app",
"start:test": "PORT=3030 MONGODB_URL='mongodb://0.0.0.0/acebook_test' npm run start",
"test": "npm run test:unit && npm run test:integration",
"test:unit": "jest",
"test:integration": "cypress run",
"emptySeed": "node ./seeds/cypress.js",
"seed": "node ./seeds/index.js",
"dropdb": "node dropDatabase.js",
"start": "npm-run-all --sequential seed start:app"
"start": "nodemon ./bin/www"
},
"engines": {
"node": ">=18.1.0"
Expand Down
124 changes: 72 additions & 52 deletions seeds/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const Comment = require("../models/comment");
const Friend = require("../models/friend");
const users = require("./data/users");
const postsData = require("./data/posts");
const comments = require("./data/comments")
const comments = require("./data/comments");

mongoose.connect("mongodb://0.0.0.0/acebook", {
useNewUrlParser: true,
Expand All @@ -24,25 +24,45 @@ db.once("open", () => {

const seedDB = async () => {
try {
console.log("Clearing friend data...");
await Friend.deleteMany({});
console.log("Friend data cleared.");
try {
console.log("Clearing friend data...");
await Friend.deleteMany({});
console.log("Friend data cleared.");
} catch (err) {
console.error("Error clearing friend data:", err);
}

console.log("Clearing like data...");
await Like.deleteMany({});
console.log("Like data cleared.");
try {
console.log("Clearing like data...");
await Like.deleteMany({});
console.log("Like data cleared.");
} catch (err) {
console.error("Error clearing like data:", err);
}

console.log("Clearing comment data...");
await Comment.deleteMany({});
console.log("Comment data cleared.");
try {
console.log("Clearing comment data...");
await Comment.deleteMany({});
console.log("Comment data cleared.");
} catch (err) {
console.error("Error clearing comment data:", err);
}

console.log("Clearing post data...");
await Post.deleteMany({});
console.log("Post data cleared.");
try {
console.log("Clearing post data...");
await Post.deleteMany({});
console.log("Post data cleared.");
} catch (err) {
console.error("Error clearing post data:", err);
}

console.log("Clearing user data...");
await User.deleteMany({});
console.log("User data cleared.");
try {
console.log("Clearing user data...");
await User.deleteMany({});
console.log("User data cleared.");
} catch (err) {
console.error("Error clearing user data:", err);
}

let createdUsers = [];
for (let userData of users) {
Expand All @@ -51,43 +71,43 @@ const seedDB = async () => {
console.log(`User ${user.email} created successfully.`);
createdUsers.push(user);
}
for (let postData of postsData) {
const user = createdUsers.find((u) => u.username === postData.user);

const post = new Post({
message: postData.message,
user: user._id,
createdAt: Date.now()
});

if (postData.image) {
post.image = postData.image;
}
await post.save();
console.log(`Post "${post.message}" created successfully.`);

const like = new Like({
liked: true,
post: post._id,
user: user._id,
});
await like.save();
console.log(
`Like post_id "${like.post}", Like user_id "${like.user}" created successfully.`
);
const randomCommentIndex = Math.floor(Math.random() * comments.length);
const commentData = comments[randomCommentIndex + 1];

const comment = new Comment({
post: post._id,
user: commentData.user,
content: commentData.content,
});

await comment.save();
console.log(`Comment "${comment.content}" created successfully.`);
for (let postData of postsData) {
const user = createdUsers.find((u) => u.username === postData.user);

const post = new Post({
message: postData.message,
user: user._id,
createdAt: Date.now(),
});

if (postData.image) {
post.image = postData.image;
}

await post.save();
console.log(`Post "${post.message}" created successfully.`);

const like = new Like({
liked: true,
post: post._id,
user: user._id,
});
await like.save();
console.log(
`Like post_id "${like.post}", Like user_id "${like.user}" created successfully.`
);
const randomCommentIndex = Math.floor(Math.random() * comments.length);
const commentData = comments[randomCommentIndex + 1];

const comment = new Comment({
post: post._id,
user: commentData.user,
content: commentData.content,
});

await comment.save();
console.log(`Comment "${comment.content}" created successfully.`);
}

const accepted_friendship = new Friend({
requester: createdUsers[1],
recipient: createdUsers[0],
Expand Down
7 changes: 5 additions & 2 deletions services/friendService.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,13 @@ exports.getPendingFriendships = async (userId) => {

exports.getAcceptedFriendships = async (userId) => {
return await Friend.find({
recipient: userId,
$or: [{ requester: userId }, { recipient: userId }],
friendship: true,
})
.populate({ path: "requester", select: "username" })
.populate({
path: "requester recipient",
select: "username",
})
.exec();
};

Expand Down
2 changes: 1 addition & 1 deletion views/friends/index.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
{{#if acceptedFriendships}}
<ul class="accepted-friendships">
{{#each acceptedFriendships}}
<li class="username">{{this.requester.username}}</li>
<li class="username">{{this.friendUsername}}</li>
{{/each}}
</ul>
{{else}}
Expand Down

0 comments on commit 3c03e35

Please sign in to comment.