import { Injectable } from '@angular/core'; import { Observable } from 'rxjs'; import { map, take } from 'rxjs/operators'; import { ProtocolService } from '@ucap-webmessenger/protocol'; 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 { AddRequest, encodeAdd, decodeAdd, AddResponse } from '../models/add'; import { DelRequest, encodeDel, decodeDel, DelResponse } from '../models/del'; import { UpdateRequest, encodeUpdate, decodeUpdate, encodeUpdate2, decodeUpdate2, UpdateResponse } from '../models/update'; @Injectable({ providedIn: 'root' }) export class GroupProtocolService { constructor(private protocolService: ProtocolService) {} public add(req: AddRequest): Observable { return this.protocolService .call(SVC_TYPE_GROUP, SSVC_TYPE_GROUP_ADD_REQ, ...encodeAdd(req)) .pipe( take(1), map(res => decodeAdd(res)) ); } public del(req: DelRequest): Observable { return this.protocolService .call(SVC_TYPE_GROUP, SSVC_TYPE_GROUP_DEL_REQ, ...encodeDel(req)) .pipe( take(1), map(res => decodeDel(res)) ); } public update(req: UpdateRequest): Observable { return this.protocolService .call(SVC_TYPE_GROUP, SSVC_TYPE_GROUP_UPD_REQ, ...encodeUpdate(req)) .pipe( take(1), map(res => decodeUpdate(res)) ); } public update2(req: UpdateRequest): Observable { return this.protocolService .call(SVC_TYPE_GROUP, SSVC_TYPE_GROUP_UPD_REQ2, ...encodeUpdate2(req)) .pipe( take(1), map(res => decodeUpdate2(res)) ); } }