{ "version": 3, "sources": ["src/app/meetings/services/meeting.service.ts"], "sourcesContent": ["import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ApiService } from '@app/core/services/api.service';\nimport { BehaviorSubject, catchError, finalize, Observable, of } from 'rxjs';\n\nimport { MeetingPayload } from '../models/video.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MeetingService extends ApiService {\n protected path = 'users/{me}/meetings';\n private readonly source: BehaviorSubject = new BehaviorSubject({} as MeetingPayload);\n public readonly data$ = this.source.asObservable();\n private loadingSubject = new BehaviorSubject(false);\n public loading$ = this.loadingSubject.asObservable();\n private errorSubject = new BehaviorSubject(false);\n public hasError$ = this.errorSubject.asObservable();\n private isLoaded = false;\n\n protected constructor(http: HttpClient) {\n super(http);\n }\n\n /**\n * Should only be called once in the main component somewhere\n *\n * @returns {*} {(void | Error)}\n */\n init(): void | Error {\n if (this.isLoaded) {\n return new Error('Should only ever be loaded once');\n }\n this.isLoaded = true;\n }\n\n /**\n * Trigger a http refresh of data,\n *\n */\n refreshData(): Observable {\n this.loadingSubject.next(true);\n return this.getHttpData().pipe(\n catchError(() => {\n this.errorSubject.next(true);\n return of({} as MeetingPayload);\n }),\n finalize(() => this.loadingSubject.next(false))\n );\n // .subscribe((data) => this._setData(data));\n }\n\n /**\n * http request for voicemail\n */\n getHttpData(): Observable {\n return this.get(this.path);\n }\n\n /**\n * Returns a sync value of the collection, could be empty if early\n *\n * @returns {*} {T[]}\n */\n getData(): MeetingPayload {\n return this.source.getValue();\n }\n\n /**\n *\n * Triggers Observers\n * @private\n */\n protected setData(data: MeetingPayload): void {\n this.source.next(data);\n }\n}\n"], "mappings": "8FAUA,IAAaA,GAAe,IAAA,CAAtB,MAAOA,UAAuBC,CAAU,CAU5CC,YAAsBC,EAAgB,CACpC,MAAMA,CAAI,EAVF,KAAAC,KAAO,sBACA,KAAAC,OAA0C,IAAIC,EAAgC,CAAA,CAAoB,EACnG,KAAAC,MAAQ,KAAKF,OAAOG,aAAY,EACxC,KAAAC,eAAiB,IAAIH,EAAyB,EAAK,EACpD,KAAAI,SAAW,KAAKD,eAAeD,aAAY,EAC1C,KAAAG,aAAe,IAAIL,EAAyB,EAAK,EAClD,KAAAM,UAAY,KAAKD,aAAaH,aAAY,EACzC,KAAAK,SAAW,EAInB,CAOAC,MAAI,CACF,GAAI,KAAKD,SACP,OAAO,IAAIE,MAAM,iCAAiC,EAEpD,KAAKF,SAAW,EAClB,CAMAG,aAAW,CACT,YAAKP,eAAeQ,KAAK,EAAI,EACtB,KAAKC,YAAW,EAAGC,KACxBC,EAAW,KACT,KAAKT,aAAaM,KAAK,EAAI,EACpBI,EAAG,CAAA,CAAoB,EAC/B,EACDC,EAAS,IAAM,KAAKb,eAAeQ,KAAK,EAAK,CAAC,CAAC,CAGnD,CAKAC,aAAW,CACT,OAAO,KAAKK,IAAoB,KAAKnB,IAAI,CAC3C,CAOAoB,SAAO,CACL,OAAO,KAAKnB,OAAOoB,SAAQ,CAC7B,CAOUC,QAAQC,EAAoB,CACpC,KAAKtB,OAAOY,KAAKU,CAAI,CACvB,iDAjEW3B,GAAc4B,EAAAC,CAAA,CAAA,CAAA,CAAA,iCAAd7B,EAAc8B,QAAd9B,EAAc+B,UAAAC,WAFb,MAAM,CAAA,CAAA,SAEPhC,CAAe,GAAA", "names": ["MeetingService", "ApiService", "constructor", "http", "path", "source", "BehaviorSubject", "data$", "asObservable", "loadingSubject", "loading$", "errorSubject", "hasError$", "isLoaded", "init", "Error", "refreshData", "next", "getHttpData", "pipe", "catchError", "of", "finalize", "get", "getData", "getValue", "setData", "data", "\u0275\u0275inject", "HttpClient", "factory", "\u0275fac", "providedIn"] }