|
@@ -1,5 +1,21 @@
|
|
|
-import { GET_ROOM_LIST, GET_ROOM_MINI_CODE } from './constant'
|
|
|
+import {
|
|
|
+ GET_ROOM_LIST,
|
|
|
+ GET_ROOM_MINI_CODE,
|
|
|
+ DEL_ROOM,
|
|
|
+ SET_ROOM
|
|
|
+} from './constant'
|
|
|
import axios from './instance'
|
|
|
+import type { PageResult, Scene } from './'
|
|
|
+
|
|
|
+type SRoom = {
|
|
|
+ roomId: number
|
|
|
+ roomTitle: string
|
|
|
+ roomInfo: string
|
|
|
+ roomHostName: string
|
|
|
+ roomCoverUrl: string
|
|
|
+ roomViewCount: number
|
|
|
+ createTime: string
|
|
|
+}
|
|
|
|
|
|
export interface RoomScene {
|
|
|
num: string
|
|
@@ -15,78 +31,61 @@ export interface Room {
|
|
|
viewCount: number
|
|
|
cover: string
|
|
|
leaderName: string
|
|
|
- userName: string
|
|
|
- shareUrl: string
|
|
|
- scenes: RoomScene[]
|
|
|
}
|
|
|
|
|
|
export type Rooms = Room[]
|
|
|
|
|
|
-export const fetchRomms = async () => {
|
|
|
- const test: Rooms = [
|
|
|
- {
|
|
|
- id: 1,
|
|
|
- title: '1212121212121212121212121212121212121212121212121212121212121212',
|
|
|
- desc: '1231',
|
|
|
- cover: 'https://4dkk.4dage.com/head/18819272208/head_1662022947583.png',
|
|
|
- leaderName: 'asdasd',
|
|
|
- userName: 'aaa',
|
|
|
- shareUrl: 'http://www.4dkankan.com',
|
|
|
- time: '2020-03-02',
|
|
|
- viewCount: 1002,
|
|
|
- scenes: [
|
|
|
- {
|
|
|
- num: 't-cc',
|
|
|
- cover:
|
|
|
- 'https://4dkk.4dage.com/head/18819272208/head_1662022947583.png',
|
|
|
- title: '田心村'
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- id: 2,
|
|
|
- title: '12',
|
|
|
- desc: '1231',
|
|
|
- cover: 'https://4dkk.4dage.com/head/18819272208/head_1662022947583.png',
|
|
|
- leaderName: 'asdasd',
|
|
|
- time: '2020-03-02',
|
|
|
- userName: 'aaa',
|
|
|
- shareUrl: 'http://www.4dkankan.com',
|
|
|
- viewCount: 1002,
|
|
|
- scenes: [
|
|
|
- {
|
|
|
- num: 't-cc',
|
|
|
- cover:
|
|
|
- 'https://4dkk.4dage.com/head/18819272208/head_1662022947583.png',
|
|
|
- title: '田心村'
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- id: 3,
|
|
|
- title: '12',
|
|
|
- time: '2020-03-02',
|
|
|
- viewCount: 1002,
|
|
|
- desc: '1231',
|
|
|
- userName: 'aaa',
|
|
|
- shareUrl: 'http://www.4dkankan.com',
|
|
|
- cover: 'https://4dkk.4dage.com/head/18819272208/head_1662022947583.png',
|
|
|
- leaderName: 'asdasd',
|
|
|
- scenes: [
|
|
|
- {
|
|
|
- num: 't-cc',
|
|
|
- cover:
|
|
|
- 'https://4dkk.4dage.com/head/18819272208/head_1662022947583.png',
|
|
|
- title: '田心村'
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- ]
|
|
|
- // const res = await axios.get<Room[]>(GET_ROOM_LIST)
|
|
|
- return test
|
|
|
+const serverToLocal = (sroom: SRoom): Room => ({
|
|
|
+ id: sroom.roomId,
|
|
|
+ title: sroom.roomTitle,
|
|
|
+ desc: sroom.roomInfo,
|
|
|
+ time: sroom.createTime,
|
|
|
+ viewCount: sroom.roomViewCount,
|
|
|
+ cover: sroom.roomCoverUrl,
|
|
|
+ leaderName: sroom.roomHostName
|
|
|
+})
|
|
|
+const localToServer = (room: Room): SRoom => ({
|
|
|
+ roomId: room.id,
|
|
|
+ roomTitle: room.title,
|
|
|
+ roomInfo: room.desc,
|
|
|
+ roomHostName: room.leaderName,
|
|
|
+ roomCoverUrl: room.cover,
|
|
|
+ roomViewCount: room.viewCount,
|
|
|
+ createTime: room.time
|
|
|
+})
|
|
|
+
|
|
|
+export const fetchRomms = async (): Promise<Rooms> => {
|
|
|
+ const res = await axios.post<PageResult<SRoom>>(GET_ROOM_LIST, {
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 1000
|
|
|
+ })
|
|
|
+ return res.list.map(serverToLocal)
|
|
|
+}
|
|
|
+
|
|
|
+export const deleteRoom = async (room: Room) => {
|
|
|
+ await axios.post(DEL_ROOM, { roomId: room.id })
|
|
|
+}
|
|
|
+
|
|
|
+export const insertRoom = async (
|
|
|
+ room: Omit<Room, 'id'>,
|
|
|
+ numList: Scene['num'][]
|
|
|
+) => {
|
|
|
+ const sroom = await axios.post<SRoom>(SET_ROOM, {
|
|
|
+ ...localToServer({ ...room, id: -1 }),
|
|
|
+ roomId: null,
|
|
|
+ createTime: null,
|
|
|
+ numList
|
|
|
+ })
|
|
|
+ return serverToLocal(sroom)
|
|
|
+}
|
|
|
+
|
|
|
+export const updateRoom = async (room: Room, numList: Scene['num'][]) => {
|
|
|
+ await axios.post(SET_ROOM, {
|
|
|
+ ...localToServer(room),
|
|
|
+ numList
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
-export const fetchRoomMiniCode = (room: Room) => {
|
|
|
- return 'https://4dkk.4dage.com/head/18819272208/head_1662022947583.png'
|
|
|
- // return axios.get<string>(GET_ROOM_MINI_CODE, { params: { roomId: room.id } })
|
|
|
+export const fetchRoomMiniCode = async (room: Room) => {
|
|
|
+ return axios.get<string>(GET_ROOM_MINI_CODE, { params: { roomId: room.id } })
|
|
|
}
|