This commit is contained in:
2025-12-05 13:13:12 +08:00
parent 8010d1d8a5
commit c259092b5a
18 changed files with 2800 additions and 124 deletions

View File

@@ -1,11 +1,11 @@
import request from '../request'
import type { Room } from '@/types/api'
import type { Room, GroupInfo, GroupMember } from '@/types/api'
/**
* 房间管理相关API
*/
// 创建房间
// 创建房间(单聊)
export function createRoom(data: {
room_type: 'p2p' | 'group'
members: string[]
@@ -20,3 +20,114 @@ export function getRoom(id: string) {
return request.get<Room>(`/rooms/${id}`)
}
/**
* 群聊相关API
*/
// 创建群聊
export function createGroup(data: {
name: string
avatar?: string
member_ids: string[]
admin_ids?: string[]
}) {
return request.post<GroupInfo>('/groups', data)
}
// 获取用户群聊列表(带分组信息)
export function getUserGroups() {
return request.get<Array<{
room_id: string
room_type: string
room_name: string
room_avatar: string
owner_id: string
creator_id: string
category: 'joined' | 'created' | 'managed'
role: number
last_message_time?: string
last_message?: string
created_at: string
updated_at: string
}>>('/groups')
}
// 获取群信息
export function getGroup(roomId: string) {
return request.get<GroupInfo>(`/groups/${roomId}`)
}
// 获取群成员列表
export function getGroupMembers(roomId: string) {
return request.get<GroupMember[]>(`/groups/${roomId}/members`)
}
// 邀请成员入群
export function inviteGroupMembers(roomId: string, data: {
member_ids: string[]
}) {
return request.post<void>(`/groups/${roomId}/members`, data)
}
// 移除群成员
export function removeGroupMember(roomId: string, userId: string) {
return request.post<void>(`/groups/${roomId}/members/${userId}/remove`, {})
}
// 修改群信息
export function updateGroup(roomId: string, data: {
name?: string
avatar?: string
}) {
return request.post<void>(`/groups/${roomId}/update`, data)
}
// 调整成员角色
export function updateMemberRole(roomId: string, userId: string, data: {
role: number // 0:成员 1:管理员 2:群主
}) {
return request.post<void>(`/groups/${roomId}/members/${userId}/role`, data)
}
// 退出群聊
export function quitGroup(roomId: string) {
return request.post<void>(`/groups/${roomId}/quit`, {})
}
// 解散群聊
export function dissolveGroup(roomId: string) {
return request.post<void>(`/groups/${roomId}/dissolve`, {})
}
// 获取群公告
export function getGroupAnnouncement(roomId: string) {
return request.get<{ announcement: string }>(`/groups/${roomId}/announcement`)
}
// 更新群公告
export function updateGroupAnnouncement(roomId: string, announcement: string) {
return request.post<void>(`/groups/${roomId}/announcement`, { announcement })
}
// 获取群通知列表
export function getGroupNotifications(params?: {
page?: number
page_size?: number
is_read?: boolean
}) {
return request.get<{
data: Array<{
id: number
room_id: string
message_type: number
content: string
extra: string | object
is_read?: boolean
created_at: string
}>
total: number
page: number
page_size: number
}>('/group-notifications', { params })
}