import { Injectable, Inject } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; import { VersionInfo2Request, VersionInfo2Response, encodeVersionInfo2, decodeVersionInfo2, } from '../apis/version-info2'; import { UpdateInfoRequest, UpdateInfoResponse, encodeUpdateInfo, decodeUpdateInfo, } from '../apis/update-info'; import { _MODULE_CONFIG } from '../config/token'; import { ModuleConfig } from '../config/module-config'; import { UrlConfig } from '@ucap-webmessenger/core'; import { Urls } from '../config/urls'; @Injectable({ providedIn: 'root', }) export class MessageApiService { readonly urls: Urls; constructor( @Inject(_MODULE_CONFIG) private moduleConfig: ModuleConfig, private httpClient: HttpClient ) { this.urls = UrlConfig.getUrls( this.moduleConfig.hostConfig, this.moduleConfig.urls ); } public updateInfo(req: UpdateInfoRequest): Observable { return this.httpClient .post( this.urls.versionInfo2, {}, { params: encodeUpdateInfo(req), } ) .pipe(map(res => decodeUpdateInfo(res))); } }