import { Injectable } from '@angular/core'; import { Observable } from 'rxjs'; import { map, take } from 'rxjs/operators'; import { ProtocolService } from '@ucap-webmessenger/protocol'; import { SVC_TYPE_ROOM, SSVC_TYPE_ROOM_OPEN_REQ, SSVC_TYPE_ROOM_OPEN2_REQ, SSVC_TYPE_ROOM_OPEN3_REQ, SSVC_TYPE_ROOM_OPEN4_REQ } from '../types/service'; import { RoomOpenRequest, encodeRoomOpen, decodeRoomOpen, RoomOpenResponse } from '../models/room-open'; import { RoomOpen2Request, RoomOpen2Response, decodeRoomOpen2, encodeRoomOpen2 } from '../models/room-open2'; import { RoomOpen3Request, RoomOpen3Response, encodeRoomOpen3, decodeRoomOpen3 } from '../models/room-open3'; import { RoomOpen4Request, RoomOpen4Response, encodeRoomOpen4, decodeRoomOpen4 } from '../models/room-open4'; @Injectable({ providedIn: 'root' }) export class RoomProtocolService { constructor(private protocolService: ProtocolService) {} public roomOpen(req: RoomOpenRequest): Observable { return this.protocolService .call(SVC_TYPE_ROOM, SSVC_TYPE_ROOM_OPEN_REQ, ...encodeRoomOpen(req)) .pipe( take(1), map(res => decodeRoomOpen(res)) ); } public roomOpen2(req: RoomOpen2Request): Observable { return this.protocolService .call(SVC_TYPE_ROOM, SSVC_TYPE_ROOM_OPEN2_REQ, ...encodeRoomOpen2(req)) .pipe( take(1), map(res => decodeRoomOpen2(res)) ); } public roomOpen3(req: RoomOpen3Request): Observable { return this.protocolService .call(SVC_TYPE_ROOM, SSVC_TYPE_ROOM_OPEN3_REQ, ...encodeRoomOpen3(req)) .pipe( take(1), map(res => decodeRoomOpen3(res)) ); } public roomOpen4(req: RoomOpen4Request): Observable { return this.protocolService .call(SVC_TYPE_ROOM, SSVC_TYPE_ROOM_OPEN4_REQ, ...encodeRoomOpen4(req)) .pipe( take(1), map(res => decodeRoomOpen4(res)) ); } }