58 lines
1.5 KiB
JavaScript
58 lines
1.5 KiB
JavaScript
|
const fav = require('../models/favorites.js');
|
||
|
const user = require('../models/user.js');
|
||
|
const mongoose = require('mongoose');
|
||
|
const asyncHandler = require('express-async-handler');
|
||
|
|
||
|
// Get all favorites => GET api/favorites
|
||
|
const getAllFavorites = asyncHandler(async (req, res, next) => {
|
||
|
try {
|
||
|
const favorites = await fav.find({});
|
||
|
res.json(favorites);
|
||
|
} catch (err) {
|
||
|
return next(err);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// Create new favorite => POST api/favorites
|
||
|
const createFavorite = asyncHandler(async (req, res, next) => {
|
||
|
try {
|
||
|
const { user_id, place_name, location, wheelchair_access, highway_type } = req.body;
|
||
|
|
||
|
const newFavorite = await fav.create({
|
||
|
user_id: user_id, // กำหนด user ID ให้กับ favorite
|
||
|
place_name,
|
||
|
location,
|
||
|
wheelchair_access,
|
||
|
highway_type
|
||
|
});
|
||
|
|
||
|
res.status(201).json(newFavorite);
|
||
|
} catch (err) {
|
||
|
return next(err);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
|
||
|
const getFavoritesByUserId = asyncHandler(async (req, res, next) => {
|
||
|
try {
|
||
|
const userId = req.params.userId;
|
||
|
|
||
|
//console.log(userId)
|
||
|
|
||
|
const favorites = await fav.find({ "user_id": userId });
|
||
|
|
||
|
//console.log(favorites)
|
||
|
|
||
|
if (!favorites || favorites.length === 0) {
|
||
|
return res.status(404).json({ message: 'No favorites found for this user ID' });
|
||
|
}
|
||
|
|
||
|
res.json(favorites);
|
||
|
} catch (err) {
|
||
|
return next(err);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
|
||
|
|
||
|
module.exports = { getAllFavorites, createFavorite, getFavoritesByUserId };
|