2019-09-18 15:02:21 +09:00
|
|
|
import { Injectable } from '@angular/core';
|
|
|
|
|
2019-09-23 14:38:22 +09:00
|
|
|
import { Observable } from 'rxjs';
|
2019-09-23 15:17:48 +09:00
|
|
|
import { map, take } from 'rxjs/operators';
|
2019-09-23 14:38:22 +09:00
|
|
|
|
|
|
|
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,
|
2019-09-23 15:18:17 +09:00
|
|
|
SSVC_TYPE_ROOM_OPEN4_REQ,
|
|
|
|
SSVC_TYPE_ROOM_INVITE_REQ
|
2019-09-23 14:38:22 +09:00
|
|
|
} 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';
|
2019-09-23 15:18:17 +09:00
|
|
|
import {
|
|
|
|
RoomInviteRequest,
|
|
|
|
RoomInviteResponse,
|
|
|
|
encodeRoomInvite,
|
|
|
|
decodeRoomInvite
|
|
|
|
} from '../models/room-invite';
|
2019-09-23 14:38:22 +09:00
|
|
|
|
2019-09-18 15:02:21 +09:00
|
|
|
@Injectable({
|
|
|
|
providedIn: 'root'
|
|
|
|
})
|
|
|
|
export class RoomProtocolService {
|
2019-09-23 14:38:22 +09:00
|
|
|
constructor(private protocolService: ProtocolService) {}
|
|
|
|
|
|
|
|
public roomOpen(req: RoomOpenRequest): Observable<RoomOpenResponse> {
|
|
|
|
return this.protocolService
|
|
|
|
.call(SVC_TYPE_ROOM, SSVC_TYPE_ROOM_OPEN_REQ, ...encodeRoomOpen(req))
|
2019-09-23 15:17:48 +09:00
|
|
|
.pipe(
|
|
|
|
take(1),
|
|
|
|
map(res => decodeRoomOpen(res))
|
|
|
|
);
|
2019-09-23 14:38:22 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
public roomOpen2(req: RoomOpen2Request): Observable<RoomOpen2Response> {
|
|
|
|
return this.protocolService
|
|
|
|
.call(SVC_TYPE_ROOM, SSVC_TYPE_ROOM_OPEN2_REQ, ...encodeRoomOpen2(req))
|
2019-09-23 15:17:48 +09:00
|
|
|
.pipe(
|
|
|
|
take(1),
|
|
|
|
map(res => decodeRoomOpen2(res))
|
|
|
|
);
|
2019-09-23 14:38:22 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
public roomOpen3(req: RoomOpen3Request): Observable<RoomOpen3Response> {
|
|
|
|
return this.protocolService
|
|
|
|
.call(SVC_TYPE_ROOM, SSVC_TYPE_ROOM_OPEN3_REQ, ...encodeRoomOpen3(req))
|
2019-09-23 15:17:48 +09:00
|
|
|
.pipe(
|
|
|
|
take(1),
|
|
|
|
map(res => decodeRoomOpen3(res))
|
|
|
|
);
|
2019-09-23 14:38:22 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
public roomOpen4(req: RoomOpen4Request): Observable<RoomOpen4Response> {
|
|
|
|
return this.protocolService
|
|
|
|
.call(SVC_TYPE_ROOM, SSVC_TYPE_ROOM_OPEN4_REQ, ...encodeRoomOpen4(req))
|
2019-09-23 15:17:48 +09:00
|
|
|
.pipe(
|
|
|
|
take(1),
|
|
|
|
map(res => decodeRoomOpen4(res))
|
|
|
|
);
|
2019-09-23 14:38:22 +09:00
|
|
|
}
|
2019-09-23 15:18:17 +09:00
|
|
|
|
|
|
|
public roomInvite(req: RoomInviteRequest): Observable<RoomInviteResponse> {
|
|
|
|
return this.protocolService
|
|
|
|
.call(SVC_TYPE_ROOM, SSVC_TYPE_ROOM_INVITE_REQ, ...encodeRoomInvite(req))
|
|
|
|
.pipe(
|
|
|
|
take(1),
|
|
|
|
map(res => decodeRoomInvite(res))
|
|
|
|
);
|
|
|
|
}
|
2019-09-18 15:02:21 +09:00
|
|
|
}
|