import { Injectable } from '@angular/core'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; import { ProtocolService } from '@ucap-webmessenger/protocol'; import { SVC_TYPE_BUDDY, SSVC_TYPE_BUDDY_ADD_REQ, SSVC_TYPE_BUDDY_DEL_REQ, SSVC_TYPE_BUDDY_UPD_REQ } from '../types/service'; import { BuddyAddRequest, encodeBuddyAdd, decodeBuddyAdd } from '../models/buddy-add'; import { BuddyDelRequest, encodeBuddyDel, decodeBuddyDel } from '../models/buddy-del'; import { BuddyUpdateRequest, decodeBuddyUpdate, encodeBuddyUpdate } from '../models/buddy-update'; @Injectable({ providedIn: 'root' }) export class BuddyProtocolService { constructor(private protocolService: ProtocolService) {} public buddyAdd(req: BuddyAddRequest): Observable { return this.protocolService .call(SVC_TYPE_BUDDY, SSVC_TYPE_BUDDY_ADD_REQ, ...encodeBuddyAdd(req)) .pipe(map(res => decodeBuddyAdd(res))); } public buddyDel(req: BuddyDelRequest): Observable { return this.protocolService .call(SVC_TYPE_BUDDY, SSVC_TYPE_BUDDY_DEL_REQ, ...encodeBuddyDel(req)) .pipe(map(res => decodeBuddyDel(res))); } public buddyUpdate(req: BuddyUpdateRequest): Observable { return this.protocolService .call(SVC_TYPE_BUDDY, SSVC_TYPE_BUDDY_UPD_REQ, ...encodeBuddyUpdate(req)) .pipe(map(res => decodeBuddyUpdate(res))); } }