LiveViewModel.ets 2.68 KB
import { ContentDetailDTO, LiveDetailsBean, LiveRoomBean, LiveRoomDataBean } from 'wdBean/Index'

import { ResponseDTO } from 'wdNetwork/Index'
import { LiveModel } from './LiveModel'

const TAG = "LiveViewModel"

export class LiveViewModel {
  liveModel: LiveModel

  constructor() {
    this.liveModel = new LiveModel()
  }

  // 视频信息
  getContentDetail(contentId: string, relId: string, relType: string) {
    return new Promise<Array<ContentDetailDTO>>((success, fail) => {
      this.liveModel.getContentDetail(contentId, relId, relType).then((data) => {
        success(data)
      }).catch((message: string) => {
        fail(message)
      })
    })

  }


  //直播详情
  getLiveDetails(contentId: string, relId: string, relType: string) {
    return new Promise<Array<LiveDetailsBean>>((success, fail) => {
      this.liveModel.getLiveDetails(contentId, relId, relType).then((data) => {
        success(data)
      }).catch((message: string) => {
        fail(message)
      })
    })
  }

  //直播详情直播间数据列表
  getLiveList(pageNum: number, mLiveId: string, liveId: string, pageSize: number) {
    return new Promise<LiveRoomBean>((success, fail) => {
      this.liveModel.getLiveList(pageNum, mLiveId, liveId, pageSize).then((data) => {
        success(data)
      }).catch((message: string) => {
        fail(message)
      })
    })
  }

  //直播详情大家聊数据列表
  getLiveChatList(pageNum: number, mLiveId: string, liveId: string, pageSize: number) {
    return new Promise<LiveRoomBean>((success, fail) => {
      this.liveModel.getLiveChatList(pageNum, mLiveId, liveId, pageSize).then((data) => {
        success(data)
      }).catch((message: string) => {
        fail(message)
      })
    })
  }

  //直播详情直播间数据
  getLiveRoomData(liveId: string) {
    return new Promise<LiveRoomDataBean>((success, fail) => {
      this.liveModel.getLiveRoomData(liveId).then((data) => {
        success(data)
      }).catch((message: string) => {
        fail(message)
      })
    })
  }

  //直播预约状态查询
  getLiveAppointmentStatus(relationId: string, liveId: string) {
    return new Promise<boolean>((success, fail) => {
      this.liveModel.getLiveAppointmentStatus(relationId, liveId).then((data) => {
        success(data)
      }).catch((message: string) => {
        fail(message)
      })
    })
  }

  //直播预约/取消预约
  liveAppointment(relationId: string, liveId: string, isSubscribe: boolean) {
    return new Promise<ResponseDTO<string>>((success, fail) => {
      this.liveModel.liveAppointment(relationId, liveId, isSubscribe).then((data) => {
        success(data)
      }).catch((message: string) => {
        fail(message)
      })
    })
  }
}