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 }; |