Files
mini-programs/src/services/commentService.ts
张成 22d8a34c7b 1
2025-10-01 14:22:08 +08:00

96 lines
2.6 KiB
TypeScript

import httpService from "./httpService";
import type { ApiResponse } from "./httpService";
// 评论项接口定义
export interface CommentActivity {
id: number;
type: "comment" | "reply";
activity_type: string;
game_id: number;
parent_id: number | null;
content: string;
like_count: number;
reply_count: number;
create_time: string;
user: {
id: number;
nickname: string;
province: string;
avatar_url: string;
};
game: {
id: number;
title: string;
start_time: string;
location_name: string;
image?: string;
image_list?: string[];
};
reply_to_user: {
id: number;
nickname: string;
avatar_url: string;
} | null;
parent_comment: {
id: number;
content: string;
user_id: number;
user_nickname: string;
} | null;
}
// 获取评论动态请求参数
export interface GetMyActivitiesParams {
page?: number;
pageSize?: number;
}
// 评论动态列表响应
export interface CommentActivitiesResponse {
rows: CommentActivity[];
count: number;
page: number;
pageSize: number;
totalPages: number;
}
class CommentService {
// 获取当前用户的评论和回复动态
async getMyActivities(params: GetMyActivitiesParams = {}): Promise<ApiResponse<CommentActivitiesResponse>> {
const { page = 1, pageSize = 10 } = params;
return httpService.post("/comments/my_activities", { page, pageSize }, { showLoading: false });
}
// 发表评论
async createComment(game_id: number, content: string): Promise<ApiResponse<any>> {
return httpService.post("/comments/create", { game_id, content });
}
// 回复评论
async replyComment(parent_id: number, reply_to_user_id: number, content: string): Promise<ApiResponse<any>> {
return httpService.post("/comments/reply", { parent_id, reply_to_user_id, content });
}
// 获取评论列表
async getCommentList(game_id: number, page: number = 1, pageSize: number = 10): Promise<ApiResponse<any>> {
return httpService.post("/comments/list", { game_id, page, pageSize });
}
// 点赞/取消点赞评论
async likeComment(comment_id: number): Promise<ApiResponse<any>> {
return httpService.post("/comments/like", { comment_id });
}
// 删除评论
async deleteComment(comment_id: number): Promise<ApiResponse<any>> {
return httpService.post("/comments/delete", { comment_id });
}
// 获取评论的所有回复
async getCommentReplies(comment_id: number, page: number = 1, pageSize: number = 10): Promise<ApiResponse<any>> {
return httpService.post("/comments/replies", { comment_id, page, pageSize });
}
}
export default new CommentService();