import { Injectable } from '@angular/core'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; import { ProtocolService } from '@ucap-webmessenger/protocol'; import { GroupAddRequest, encodeGroupAdd, decodeGroupAdd, GroupAddResponse } from '../models/group-add'; import { SVC_TYPE_GROUP, SSVC_TYPE_GROUP_ADD_REQ, SSVC_TYPE_GROUP_DEL_REQ, SSVC_TYPE_GROUP_UPD_REQ, SSVC_TYPE_GROUP_UPD_REQ2 } from '../types/service'; import { GroupDelRequest, encodeGroupDel, decodeGroupDel, GroupDelResponse } from '../models/group-del'; import { GroupUpdateRequest, encodeGroupUpdate, decodeGroupUpdate, encodeGroupUpdate2, decodeGroupUpdate2, GroupUpdateResponse } from '../models/group-update'; @Injectable({ providedIn: 'root' }) export class GroupProtocolService { constructor(private protocolService: ProtocolService) {} public groupAdd(req: GroupAddRequest): Observable { return this.protocolService .call(SVC_TYPE_GROUP, SSVC_TYPE_GROUP_ADD_REQ, ...encodeGroupAdd(req)) .pipe(map(res => decodeGroupAdd(res))); } public groupDel(req: GroupDelRequest): Observable { return this.protocolService .call(SVC_TYPE_GROUP, SSVC_TYPE_GROUP_DEL_REQ, ...encodeGroupDel(req)) .pipe(map(res => decodeGroupDel(res))); } public groupUpdate(req: GroupUpdateRequest): Observable { return this.protocolService .call(SVC_TYPE_GROUP, SSVC_TYPE_GROUP_UPD_REQ, ...encodeGroupUpdate(req)) .pipe(map(res => decodeGroupUpdate(res))); } public groupUpdate2( req: GroupUpdateRequest ): Observable { return this.protocolService .call( SVC_TYPE_GROUP, SSVC_TYPE_GROUP_UPD_REQ2, ...encodeGroupUpdate2(req) ) .pipe(map(res => decodeGroupUpdate2(res))); } }