{ "version": 3, "sources": ["src/app/_services/reading-list.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 { UtilityService } from '../shared/_services/utility.service';\r\nimport { Person } from '../_models/metadata/person';\r\nimport { PaginatedResult } from '../_models/pagination';\r\nimport { ReadingList, ReadingListItem } from '../_models/reading-list';\r\nimport { CblImportSummary } from '../_models/reading-list/cbl/cbl-import-summary';\r\nimport { TextResonse } from '../_types/text-response';\r\nimport {Action, ActionItem} from './action-factory.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ReadingListService {\r\n\r\n baseUrl = environment.apiUrl;\r\n\r\n constructor(private httpClient: HttpClient, private utilityService: UtilityService) { }\r\n\r\n getReadingList(readingListId: number) {\r\n return this.httpClient.get(this.baseUrl + 'readinglist?readingListId=' + readingListId);\r\n }\r\n\r\n getReadingLists(includePromoted: boolean = true, sortByLastModified: boolean = false, pageNum?: number, itemsPerPage?: number) {\r\n let params = new HttpParams();\r\n params = this.utilityService.addPaginationIfExists(params, pageNum, itemsPerPage);\r\n\r\n return this.httpClient.post>(this.baseUrl + 'readinglist/lists?includePromoted=' + includePromoted\r\n + '&sortByLastModified=' + sortByLastModified, {}, {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 getReadingListsForSeries(seriesId: number) {\r\n return this.httpClient.get(this.baseUrl + 'readinglist/lists-for-series?seriesId=' + seriesId);\r\n }\r\n\r\n getReadingListsForChapter(chapterId: number) {\r\n return this.httpClient.get(this.baseUrl + 'readinglist/lists-for-chapter?chapterId=' + chapterId);\r\n }\r\n\r\n getListItems(readingListId: number) {\r\n return this.httpClient.get(this.baseUrl + 'readinglist/items?readingListId=' + readingListId);\r\n }\r\n\r\n createList(title: string) {\r\n return this.httpClient.post(this.baseUrl + 'readinglist/create', {title});\r\n }\r\n\r\n update(model: {readingListId: number, title?: string, summary?: string, promoted: boolean}) {\r\n return this.httpClient.post(this.baseUrl + 'readinglist/update', model, TextResonse);\r\n }\r\n\r\n updateByMultiple(readingListId: number, seriesId: number, volumeIds: Array, chapterIds?: Array) {\r\n return this.httpClient.post(this.baseUrl + 'readinglist/update-by-multiple', {readingListId, seriesId, volumeIds, chapterIds}, TextResonse);\r\n }\r\n\r\n updateByMultipleSeries(readingListId: number, seriesIds: Array) {\r\n return this.httpClient.post(this.baseUrl + 'readinglist/update-by-multiple-series', {readingListId, seriesIds}, TextResonse);\r\n }\r\n\r\n updateBySeries(readingListId: number, seriesId: number) {\r\n return this.httpClient.post(this.baseUrl + 'readinglist/update-by-series', {readingListId, seriesId}, TextResonse);\r\n }\r\n\r\n updateByVolume(readingListId: number, seriesId: number, volumeId: number) {\r\n return this.httpClient.post(this.baseUrl + 'readinglist/update-by-volume', {readingListId, seriesId, volumeId}, TextResonse);\r\n }\r\n\r\n updateByChapter(readingListId: number, seriesId: number, chapterId: number) {\r\n return this.httpClient.post(this.baseUrl + 'readinglist/update-by-chapter', {readingListId, seriesId, chapterId}, TextResonse);\r\n }\r\n\r\n delete(readingListId: number) {\r\n return this.httpClient.delete(this.baseUrl + 'readinglist?readingListId=' + readingListId, TextResonse);\r\n }\r\n\r\n updatePosition(readingListId: number, readingListItemId: number, fromPosition: number, toPosition: number) {\r\n return this.httpClient.post(this.baseUrl + 'readinglist/update-position', {readingListId, readingListItemId, fromPosition, toPosition}, TextResonse);\r\n }\r\n\r\n deleteItem(readingListId: number, readingListItemId: number) {\r\n return this.httpClient.post(this.baseUrl + 'readinglist/delete-item', {readingListId, readingListItemId}, TextResonse);\r\n }\r\n\r\n removeRead(readingListId: number) {\r\n return this.httpClient.post(this.baseUrl + 'readinglist/remove-read?readingListId=' + readingListId, {}, TextResonse);\r\n }\r\n\r\n actionListFilter(action: ActionItem, readingList: ReadingList, canPromote: boolean) {\r\n\r\n const isPromotionAction = action.action == Action.Promote || action.action == Action.UnPromote;\r\n\r\n if (isPromotionAction) return canPromote;\r\n return true;\r\n\r\n // if (readingList?.promoted && !isAdmin) return false;\r\n // return true;\r\n }\r\n\r\n nameExists(name: string) {\r\n return this.httpClient.get(this.baseUrl + 'readinglist/name-exists?name=' + name);\r\n }\r\n\r\n validateCbl(form: FormData, dryRun: boolean, useComicVineMatching: boolean) {\r\n return this.httpClient.post(this.baseUrl + `cbl/validate?dryRun=${dryRun}&useComicVineMatching=${useComicVineMatching}`, form);\r\n }\r\n\r\n importCbl(form: FormData, dryRun: boolean, useComicVineMatching: boolean) {\r\n return this.httpClient.post(this.baseUrl + `cbl/import?dryRun=${dryRun}&useComicVineMatching=${useComicVineMatching}`, form);\r\n }\r\n\r\n getCharacters(readingListId: number) {\r\n return this.httpClient.get>(this.baseUrl + 'readinglist/characters?readingListId=' + readingListId);\r\n }\r\n\r\n promoteMultipleReadingLists(listIds: Array, promoted: boolean) {\r\n return this.httpClient.post(this.baseUrl + 'readinglist/promote-multiple', {readingListIds: listIds, promoted}, TextResonse);\r\n }\r\n\r\n deleteMultipleReadingLists(listIds: Array) {\r\n return this.httpClient.post(this.baseUrl + 'readinglist/delete-multiple', {readingListIds: listIds}, TextResonse);\r\n }\r\n\r\n\r\n}\r\n"], "mappings": "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", "names": ["ReadingListService", "constructor", "httpClient", "utilityService", "baseUrl", "environment", "apiUrl", "getReadingList", "readingListId", "get", "getReadingLists", "includePromoted", "sortByLastModified", "pageNum", "itemsPerPage", "params", "HttpParams", "addPaginationIfExists", "post", "observe", "pipe", "map", "response", "createPaginatedResult", "PaginatedResult", "getReadingListsForSeries", "seriesId", "getReadingListsForChapter", "chapterId", "getListItems", "createList", "title", "update", "model", "TextResonse", "updateByMultiple", "volumeIds", "chapterIds", "updateByMultipleSeries", "seriesIds", "updateBySeries", "updateByVolume", "volumeId", "updateByChapter", "delete", "updatePosition", "readingListItemId", "fromPosition", "toPosition", "deleteItem", "removeRead", "actionListFilter", "action", "readingList", "canPromote", "Action", "Promote", "UnPromote", "nameExists", "name", "validateCbl", "form", "dryRun", "useComicVineMatching", "importCbl", "getCharacters", "promoteMultipleReadingLists", "listIds", "promoted", "readingListIds", "deleteMultipleReadingLists", "\u0275\u0275inject", "HttpClient", "UtilityService", "factory", "\u0275fac", "providedIn", "_ReadingListService"] }