code plus clean et gestion des amis
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
import express from 'express';
|
||||
import friendsService from '../services/friends.js';
|
||||
import authenticateToken from '../middleware/auth.js';
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
// Get friends list
|
||||
router.get('/', authenticateToken, async (req, res) => {
|
||||
const result = await friendsService.getFriends(req.user.userId);
|
||||
res.status(result.status).json(result.data);
|
||||
});
|
||||
|
||||
// Get pending friend requests
|
||||
router.get('/requests', authenticateToken, async (req, res) => {
|
||||
const result = await friendsService.getPendingRequests(req.user.userId);
|
||||
res.status(result.status).json(result.data);
|
||||
});
|
||||
|
||||
// Search users
|
||||
router.get('/search', authenticateToken, async (req, res) => {
|
||||
const { q } = req.query;
|
||||
if (!q || q.trim().length === 0) {
|
||||
return res.status(400).json({ error: 'Search query required' });
|
||||
}
|
||||
const result = await friendsService.searchUsers(req.user.userId, q.trim());
|
||||
res.status(result.status).json(result.data);
|
||||
});
|
||||
|
||||
// Send friend request
|
||||
router.post('/request/:userId', authenticateToken, async (req, res) => {
|
||||
const toUserId = parseInt(req.params.userId);
|
||||
if (isNaN(toUserId)) {
|
||||
return res.status(400).json({ error: 'Invalid user ID' });
|
||||
}
|
||||
const result = await friendsService.sendFriendRequest(req.user.userId, toUserId);
|
||||
res.status(result.status).json(result.data);
|
||||
});
|
||||
|
||||
// Accept friend request
|
||||
router.post('/accept/:userId', authenticateToken, async (req, res) => {
|
||||
const fromUserId = parseInt(req.params.userId);
|
||||
if (isNaN(fromUserId)) {
|
||||
return res.status(400).json({ error: 'Invalid user ID' });
|
||||
}
|
||||
const result = await friendsService.acceptFriendRequest(req.user.userId, fromUserId);
|
||||
res.status(result.status).json(result.data);
|
||||
});
|
||||
|
||||
// Decline friend request
|
||||
router.post('/decline/:userId', authenticateToken, async (req, res) => {
|
||||
const fromUserId = parseInt(req.params.userId);
|
||||
if (isNaN(fromUserId)) {
|
||||
return res.status(400).json({ error: 'Invalid user ID' });
|
||||
}
|
||||
const result = await friendsService.declineFriendRequest(req.user.userId, fromUserId);
|
||||
res.status(result.status).json(result.data);
|
||||
});
|
||||
|
||||
// Remove friend
|
||||
router.delete('/:userId', authenticateToken, async (req, res) => {
|
||||
const friendId = parseInt(req.params.userId);
|
||||
if (isNaN(friendId)) {
|
||||
return res.status(400).json({ error: 'Invalid user ID' });
|
||||
}
|
||||
const result = await friendsService.removeFriend(req.user.userId, friendId);
|
||||
res.status(result.status).json(result.data);
|
||||
});
|
||||
|
||||
export default router;
|
||||
Reference in New Issue
Block a user