{ "version": 3, "sources": ["src/app/_services/scrobbling.service.ts"], "sourcesContent": ["import {HttpClient, HttpParams} from '@angular/common/http';\r\nimport {Injectable} from '@angular/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\nimport { TextResonse } from '../_types/text-response';\r\nimport {ScrobbleError} from \"../_models/scrobbling/scrobble-error\";\r\nimport {ScrobbleEvent} from \"../_models/scrobbling/scrobble-event\";\r\nimport {ScrobbleHold} from \"../_models/scrobbling/scrobble-hold\";\r\nimport {PaginatedResult} from \"../_models/pagination\";\r\nimport {ScrobbleEventFilter} from \"../_models/scrobbling/scrobble-event-filter\";\r\nimport {UtilityService} from \"../shared/_services/utility.service\";\r\n\r\nexport enum ScrobbleProvider {\r\n Kavita = 0,\r\n AniList= 1,\r\n Mal = 2,\r\n GoogleBooks = 3\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ScrobblingService {\r\n\r\n baseUrl = environment.apiUrl;\r\n\r\n\r\n constructor(private httpClient: HttpClient, private utilityService: UtilityService) {}\r\n\r\n hasTokenExpired(provider: ScrobbleProvider) {\r\n return this.httpClient.get(this.baseUrl + 'scrobbling/token-expired?provider=' + provider, TextResonse)\r\n .pipe(map(r => r === \"true\"));\r\n }\r\n\r\n updateAniListToken(token: string) {\r\n return this.httpClient.post(this.baseUrl + 'scrobbling/update-anilist-token', {token});\r\n }\r\n\r\n updateMalToken(username: string, accessToken: string) {\r\n return this.httpClient.post(this.baseUrl + 'scrobbling/update-mal-token', {username, accessToken});\r\n }\r\n\r\n getAniListToken() {\r\n return this.httpClient.get(this.baseUrl + 'scrobbling/anilist-token', TextResonse);\r\n }\r\n\r\n getMalToken() {\r\n return this.httpClient.get<{username: string, accessToken: string}>(this.baseUrl + 'scrobbling/mal-token');\r\n }\r\n\r\n getScrobbleErrors() {\r\n return this.httpClient.get>(this.baseUrl + 'scrobbling/scrobble-errors');\r\n }\r\n\r\n getScrobbleEvents(filter: ScrobbleEventFilter, pageNum: number | undefined = undefined, itemsPerPage: number | undefined = undefined) {\r\n let params = new HttpParams();\r\n params = this.utilityService.addPaginationIfExists(params, pageNum, itemsPerPage);\r\n return this.httpClient.post>(this.baseUrl + 'scrobbling/scrobble-events', filter, {observe: 'response', params}).pipe(\r\n map((response: any) => {\r\n return this.utilityService.createPaginatedResult(response, new PaginatedResult());\r\n })\r\n );\r\n }\r\n\r\n clearScrobbleErrors() {\r\n return this.httpClient.post(this.baseUrl + 'scrobbling/clear-errors', {});\r\n }\r\n\r\n getHolds() {\r\n return this.httpClient.get>(this.baseUrl + 'scrobbling/holds');\r\n }\r\n\r\n libraryAllowsScrobbling(seriesId: number) {\r\n return this.httpClient.get(this.baseUrl + 'scrobbling/library-allows-scrobbling?seriesId=' + seriesId, TextResonse)\r\n .pipe(map(res => res === \"true\"));\r\n }\r\n\r\n hasHold(seriesId: number) {\r\n return this.httpClient.get(this.baseUrl + 'scrobbling/has-hold?seriesId=' + seriesId, TextResonse)\r\n .pipe(map(res => res === \"true\"));\r\n }\r\n\r\n addHold(seriesId: number) {\r\n return this.httpClient.post(this.baseUrl + 'scrobbling/add-hold?seriesId=' + seriesId, TextResonse);\r\n }\r\n\r\n removeHold(seriesId: number) {\r\n return this.httpClient.delete(this.baseUrl + 'scrobbling/remove-hold?seriesId=' + seriesId, TextResonse);\r\n }\r\n}\r\n"], "mappings": "uIAYA,IAAYA,EAAZ,SAAYA,EAAgB,CAC1BA,OAAAA,EAAAA,EAAA,OAAA,CAAA,EAAA,SACAA,EAAAA,EAAA,QAAA,CAAA,EAAA,UACAA,EAAAA,EAAA,IAAA,CAAA,EAAA,MACAA,EAAAA,EAAA,YAAA,CAAA,EAAA,cAJUA,CAKZ,EALYA,GAAgB,CAAA,CAAA,EAUfC,GAAiB,IAAA,CAAxB,IAAOA,EAAP,MAAOA,CAAiB,CAK5BC,YAAoBC,EAAgCC,EAA8B,CAA9D,KAAAD,WAAAA,EAAgC,KAAAC,eAAAA,EAHpD,KAAAC,QAAUC,EAAYC,MAG+D,CAErFC,gBAAgBC,EAA0B,CACxC,OAAO,KAAKN,WAAWO,IAAY,KAAKL,QAAU,qCAAuCI,EAAUE,CAAW,EAC3GC,KAAKC,EAAIC,GAAKA,IAAM,MAAM,CAAC,CAChC,CAEAC,mBAAmBC,EAAa,CAC9B,OAAO,KAAKb,WAAWc,KAAK,KAAKZ,QAAU,kCAAmC,CAACW,MAAAA,CAAK,CAAC,CACvF,CAEAE,eAAeC,EAAkBC,EAAmB,CAClD,OAAO,KAAKjB,WAAWc,KAAK,KAAKZ,QAAU,8BAA+B,CAACc,SAAAA,EAAUC,YAAAA,CAAW,CAAC,CACnG,CAEAC,iBAAe,CACb,OAAO,KAAKlB,WAAWO,IAAY,KAAKL,QAAU,2BAA4BM,CAAW,CAC3F,CAEAW,aAAW,CACT,OAAO,KAAKnB,WAAWO,IAA6C,KAAKL,QAAU,sBAAsB,CAC3G,CAEAkB,mBAAiB,CACf,OAAO,KAAKpB,WAAWO,IAA0B,KAAKL,QAAU,4BAA4B,CAC9F,CAEAmB,kBAAkBC,EAA6BC,EAA8BC,OAAWC,EAAmCD,OAAS,CAClI,IAAIE,EAAS,IAAIC,EACjBD,OAAAA,EAAS,KAAKzB,eAAe2B,sBAAsBF,EAAQH,EAASE,CAAY,EACzE,KAAKzB,WAAWc,KAAuC,KAAKZ,QAAU,6BAA8BoB,EAAQ,CAACO,QAAS,WAAYH,OAAAA,CAAM,CAAC,EAAEjB,KAChJC,EAAKoB,GACI,KAAK7B,eAAe8B,sBAAsBD,EAAU,IAAIE,CAAkC,CAClG,CAAC,CAEN,CAEAC,qBAAmB,CACjB,OAAO,KAAKjC,WAAWc,KAAK,KAAKZ,QAAU,0BAA2B,CAAA,CAAE,CAC1E,CAEAgC,UAAQ,CACN,OAAO,KAAKlC,WAAWO,IAAyB,KAAKL,QAAU,kBAAkB,CACnF,CAEAiC,wBAAwBC,EAAgB,CACtC,OAAO,KAAKpC,WAAWO,IAAI,KAAKL,QAAU,iDAAmDkC,EAAU5B,CAAW,EAC/GC,KAAKC,EAAI2B,GAAOA,IAAQ,MAAM,CAAC,CACpC,CAEAC,QAAQF,EAAgB,CACtB,OAAO,KAAKpC,WAAWO,IAAI,KAAKL,QAAU,gCAAkCkC,EAAU5B,CAAW,EAC9FC,KAAKC,EAAI2B,GAAOA,IAAQ,MAAM,CAAC,CACpC,CAEAE,QAAQH,EAAgB,CACtB,OAAO,KAAKpC,WAAWc,KAAK,KAAKZ,QAAU,gCAAkCkC,EAAU5B,CAAW,CACpG,CAEAgC,WAAWJ,EAAgB,CACzB,OAAO,KAAKpC,WAAWyC,OAAO,KAAKvC,QAAU,mCAAqCkC,EAAU5B,CAAW,CACzG,yCAlEWV,GAAiB4C,EAAAC,CAAA,EAAAD,EAAAE,CAAA,CAAA,CAAA,wBAAjB9C,EAAiB+C,QAAjB/C,EAAiBgD,UAAAC,WAFhB,MAAM,CAAA,EAEd,IAAOjD,EAAPkD,SAAOlD,CAAiB,GAAA", "names": ["ScrobbleProvider", "ScrobblingService", "constructor", "httpClient", "utilityService", "baseUrl", "environment", "apiUrl", "hasTokenExpired", "provider", "get", "TextResonse", "pipe", "map", "r", "updateAniListToken", "token", "post", "updateMalToken", "username", "accessToken", "getAniListToken", "getMalToken", "getScrobbleErrors", "getScrobbleEvents", "filter", "pageNum", "undefined", "itemsPerPage", "params", "HttpParams", "addPaginationIfExists", "observe", "response", "createPaginatedResult", "PaginatedResult", "clearScrobbleErrors", "getHolds", "libraryAllowsScrobbling", "seriesId", "res", "hasHold", "addHold", "removeHold", "delete", "\u0275\u0275inject", "HttpClient", "UtilityService", "factory", "\u0275fac", "providedIn", "_ScrobblingService"] }