blob: d05f1485786ba640fe4ae1b7a8a0366616c85639 [file] [log] [blame]
import axios from 'axios';
const API_BASE = process.env.REACT_APP_API_BASE;
// 获取帖子详情
export const getPostDetail = async (postId) => {
const response = await axios.get(`${API_BASE}/echo/forum/posts/${postId}/getPost`);
return response.data;
};
// 获取帖子评论
export const getPostComments = async (postId) => {
const response = await axios.get(`${API_BASE}/echo/forum/posts/${postId}/getAllComments`);
return response.data;
};
// 点赞帖子
export const likePost = async (postId, userId) => {
try {
const response = await axios.post(`${API_BASE}/echo/forum/posts/${postId}/like`, {
user_id: userId, // 用户 ID
});
return response.data;
} catch (error) {
return handleApiError(error);
}
};
// 取消点赞帖子
export const unlikePost = async (postId) => {
const response = await axios.delete(`${API_BASE}/echo/forum/posts/${postId}/unlike`);
return response.data;
};
// 添加评论
export const addCommentToPost = async (postId, userId, content, isAnonymous, comCommentId = null) => {
try {
const response = await axios.post(`${API_BASE}/echo/forum/posts/${postId}/comments`, {
content,
user_id: userId,
is_anonymous: isAnonymous,
com_comment_id: comCommentId, // 如果是回复评论,传递 com_comment_id
});
return response.data;
} catch (error) {
return handleApiError(error);
}
};
// 点赞评论
export const likeComment = async (commentId) => {
const response = await axios.post(`${API_BASE}/echo/forum/comments/${commentId}/like`);
return response.data;
};
// 取消点赞评论
export const unlikeComment = async (commentId) => {
const response = await axios.delete(`${API_BASE}/echo/forum/comments/${commentId}/unlike`);
return response.data;
};
// 收藏帖子
export const collectPost = async (postId, userId, action) => {
try {
const response = await axios.post(`${API_BASE}/echo/forum/posts/${postId}/collect`, {
user_id: userId,
action: action, // "collect" 或 "cancel"
});
return response.data;
} catch (error) {
return handleApiError(error);
}
};
// 获取用户信息
export const getUserInfo = async (userId) => {
const response = await axios.get(`${API_BASE}/user/${userId}/info`);
return response.data;
};
// 错误处理
const handleApiError = (error) => {
if (error.response) {
return {
success: false,
message: error.response.data.error || '请求失败',
};
} else if (error.request) {
return {
success: false,
message: '请求未得到响应,请稍后重试',
};
} else {
return {
success: false,
message: error.message || '发生了未知错误',
};
}
};