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

get all company reviews #52 #56

Merged
merged 12 commits into from
Jan 8, 2025
23 changes: 1 addition & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,27 +36,6 @@ npm run dev
The backend server is loading from `http://localhost:3000`

### Environment Variables

=======

1. Start the backend server:

```bash
cd server
npm i
npm run dev
```

2. Start the frontend server:

```bash
npm i
npm run dev
```

3. Open your browser and go to `http://localhost:5173`
The backend server is loading from `http://localhost:3000`

One ENV goes inside of the config file inside the server and the other ENV is in the root

```
Expand All @@ -66,4 +45,4 @@ CLERK_SECRET_KEY=clerk_secret_key_here
CLERK_PUBLISHABLE_KEY=clerk_publishable_key_here
```

Front end needs "VITE\_" prefixing all keys
Front end needs "VITE_" prefixing all keys
1 change: 1 addition & 0 deletions server/controllers/company.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ const companyController = {
},

//fetches a specific company (and all of its data):

getCompany: async (req, res, next) => {
try {
const { id } = req.params // Get the company ID from the route parameters
Expand Down
90 changes: 17 additions & 73 deletions server/controllers/reviews.js
Original file line number Diff line number Diff line change
@@ -1,78 +1,22 @@
const cloudinary = require('../middleware/cloudinary')
const Review = require('../models/Reviews')
// import cloudinary from "../middleware/cloudinary";
import Review from "../models/Reviews.js";


const reviewController = {
getProfile: async (req, res) => {
try {
const posts = await Post.find({ user: req.user.id })
res.render('profile.ejs', { posts: posts, user: req.user })
} catch (err) {
console.log(err)
}
},
getFeed: async (req, res) => {
try {
const posts = await Post.find().sort({ createdAt: 'desc' }).lean()
res.render('feed.ejs', { posts: posts })
} catch (err) {
console.log(err)
}
},
getPost: async (req, res) => {
try {
const post = await Post.findById(req.params.id)
res.render('post.ejs', { post: post, user: req.user })
} catch (err) {
console.log(err)
}
},
createPost: async (req, res) => {
try {
// Upload image to cloudinary
const result = await cloudinary.uploader.upload(req.file.path)
getAllCompanyReviews: async (req, res, next) => {
try {
//maybe need the company id and review id
//const { companyId } = req.params;
//get all reviews
const reviews = await Review.find({})
console.log(reviews)
//display it in the feed component for the reviews
res.json(reviews); // Send reviews as JSON response
} catch (error) {
next(error)
}
}

await Post.create({
title: req.body.title,
image: result.secure_url,
cloudinaryId: result.public_id,
caption: req.body.caption,
likes: 0,
user: req.user.id,
})
console.log('Post has been added!')
res.redirect('/profile')
} catch (err) {
console.log(err)
}
},
likePost: async (req, res) => {
try {
await Post.findOneAndUpdate(
{ _id: req.params.id },
{
$inc: { likes: 1 },
},
)
console.log('Likes +1')
res.redirect(`/post/${req.params.id}`)
} catch (err) {
console.log(err)
}
},
deletePost: async (req, res) => {
try {
// Find post by id
let post = await Post.findById({ _id: req.params.id })
// Delete image from cloudinary
await cloudinary.uploader.destroy(post.cloudinaryId)
// Delete post from db
await Post.remove({ _id: req.params.id })
console.log('Deleted Post')
res.redirect('/profile')
} catch (err) {
res.redirect('/profile')
}
},
}
}

export default reviewController
20 changes: 6 additions & 14 deletions server/routes/reviews.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,9 @@
import express from 'express'
const reviewRouter = express.Router()
// const upload = require("../middleware/multer");
// const postsController = require("../controllers/posts");
// const { ensureAuth, ensureGuest } = require("../middleware/auth");
import express from 'express';
const reviewRouter = express.Router();
import reviewsController from '../controllers/reviews'

//Post Routes - simplified for now
// router.get("/:id", ensureAuth, postsController.getPost);
//ensure they are logged in aka clerk
reviewRouter.get('/allCompanyReviews', reviewsController.getAllCompanyReviews)

// router.post("/createPost", upload.single("file"), postsController.createPost);

// router.put("/likePost/:id", postsController.likePost);

// router.delete("/deletePost/:id", postsController.deletePost);

// module.exports = router;
export default reviewRouter
export default reviewRouter;
Loading