{ "version": 3, "sources": ["src/app/_services/library.service.ts"], "sourcesContent": ["import { HttpClient } from '@angular/common/http';\r\nimport {DestroyRef, Injectable} from '@angular/core';\r\nimport { of } from 'rxjs';\r\nimport {filter, map, tap} from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\nimport { JumpKey } from '../_models/jumpbar/jump-key';\r\nimport { Library, LibraryType } from '../_models/library/library';\r\nimport { DirectoryDto } from '../_models/system/directory-dto';\r\nimport {EVENTS, MessageHubService} from \"./message-hub.service\";\r\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LibraryService {\r\n\r\n baseUrl = environment.apiUrl;\r\n\r\n private libraryNames: {[key:number]: string} | undefined = undefined;\r\n private libraryTypes: {[key: number]: LibraryType} | undefined = undefined;\r\n\r\n constructor(private httpClient: HttpClient, private readonly messageHub: MessageHubService, private readonly destroyRef: DestroyRef) {\r\n this.messageHub.messages$.pipe(takeUntilDestroyed(this.destroyRef), filter(e => e.event === EVENTS.LibraryModified),\r\n tap((e) => {\r\n console.log('LibraryModified event came in, clearing library name cache');\r\n this.libraryNames = undefined;\r\n this.libraryTypes = undefined;\r\n })).subscribe();\r\n }\r\n\r\n getLibraryNames() {\r\n if (this.libraryNames != undefined) {\r\n return of(this.libraryNames);\r\n }\r\n\r\n return this.httpClient.get(this.baseUrl + 'library/libraries').pipe(map(libraries => {\r\n this.libraryNames = {};\r\n libraries.forEach(lib => {\r\n if (this.libraryNames !== undefined) {\r\n this.libraryNames[lib.id] = lib.name;\r\n }\r\n });\r\n return this.libraryNames;\r\n }));\r\n }\r\n\r\n getLibraryName(libraryId: number) {\r\n if (this.libraryNames != undefined && this.libraryNames.hasOwnProperty(libraryId)) {\r\n return of(this.libraryNames[libraryId]);\r\n }\r\n return this.httpClient.get(this.baseUrl + 'library/libraries').pipe(map(l => {\r\n this.libraryNames = {};\r\n l.forEach(lib => {\r\n if (this.libraryNames !== undefined) {\r\n this.libraryNames[lib.id] = lib.name;\r\n }\r\n });\r\n return this.libraryNames[libraryId];\r\n }));\r\n }\r\n\r\n libraryNameExists(name: string) {\r\n return this.httpClient.get(this.baseUrl + 'library/name-exists?name=' + name);\r\n }\r\n\r\n listDirectories(rootPath: string) {\r\n let query = '';\r\n if (rootPath !== undefined && rootPath.length > 0) {\r\n query = '?path=' + encodeURIComponent(rootPath);\r\n }\r\n\r\n return this.httpClient.get(this.baseUrl + 'library/list' + query);\r\n }\r\n\r\n getJumpBar(libraryId: number) {\r\n return this.httpClient.get(this.baseUrl + 'library/jump-bar?libraryId=' + libraryId);\r\n }\r\n\r\n getLibrary(libraryId: number) {\r\n return this.httpClient.get(this.baseUrl + 'library?libraryId=' + libraryId);\r\n }\r\n\r\n getLibraries() {\r\n return this.httpClient.get(this.baseUrl + 'library/libraries');\r\n }\r\n\r\n updateLibrariesForMember(username: string, selectedLibraries: Library[]) {\r\n return this.httpClient.post(this.baseUrl + 'library/grant-access', {username, selectedLibraries});\r\n }\r\n\r\n scan(libraryId: number, force = false) {\r\n return this.httpClient.post(this.baseUrl + 'library/scan?libraryId=' + libraryId + '&force=' + force, {});\r\n }\r\n\r\n scanMultipleLibraries(libraryIds: Array, force = false) {\r\n return this.httpClient.post(this.baseUrl + 'library/scan-multiple', {ids: libraryIds, force: force});\r\n }\r\n\r\n analyze(libraryId: number) {\r\n return this.httpClient.post(this.baseUrl + 'library/analyze?libraryId=' + libraryId, {});\r\n }\r\n\r\n refreshMetadata(libraryId: number, forceUpdate = false, forceColorscape = false) {\r\n return this.httpClient.post(this.baseUrl + `library/refresh-metadata?libraryId=${libraryId}&force=${forceUpdate}&forceColorscape=${forceColorscape}`, {});\r\n }\r\n\r\n refreshMetadataMultipleLibraries(libraryIds: Array, force = false, forceColorscape = false) {\r\n return this.httpClient.post(this.baseUrl + 'library/refresh-metadata-multiple?forceColorscape=' + forceColorscape, {ids: libraryIds, force: force});\r\n }\r\n\r\n analyzeFilesMultipleLibraries(libraryIds: Array) {\r\n return this.httpClient.post(this.baseUrl + 'library/analyze-multiple', {ids: libraryIds, force: false});\r\n }\r\n\r\n copySettingsFromLibrary(sourceLibraryId: number, targetLibraryIds: Array, includeType: boolean) {\r\n return this.httpClient.post(this.baseUrl + 'library/copy-settings-from', {sourceLibraryId, targetLibraryIds, includeType});\r\n }\r\n\r\n create(model: {name: string, type: number, folders: string[]}) {\r\n return this.httpClient.post(this.baseUrl + 'library/create', model);\r\n }\r\n\r\n delete(libraryId: number) {\r\n return this.httpClient.delete(this.baseUrl + 'library/delete?libraryId=' + libraryId, {});\r\n }\r\n\r\n deleteMultiple(libraryIds: Array) {\r\n if (libraryIds.length === 0) {\r\n return of();\r\n }\r\n return this.httpClient.delete(this.baseUrl + 'library/delete-multiple?libraryIds=' + libraryIds.join(','), {});\r\n }\r\n\r\n update(model: {name: string, folders: string[], id: number}) {\r\n return this.httpClient.post(this.baseUrl + 'library/update', model);\r\n }\r\n\r\n getLibraryType(libraryId: number) {\r\n if (this.libraryTypes != undefined && this.libraryTypes.hasOwnProperty(libraryId)) {\r\n return of(this.libraryTypes[libraryId]);\r\n }\r\n return this.httpClient.get(this.baseUrl + 'library/type?libraryId=' + libraryId).pipe(map(l => {\r\n if (this.libraryTypes === undefined) {\r\n this.libraryTypes = {};\r\n }\r\n\r\n this.libraryTypes[libraryId] = l;\r\n return this.libraryTypes[libraryId];\r\n }));\r\n }\r\n}\r\n"], "mappings": "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", "names": ["LibraryService", "constructor", "httpClient", "messageHub", "destroyRef", "baseUrl", "environment", "apiUrl", "libraryNames", "undefined", "libraryTypes", "messages$", "pipe", "takeUntilDestroyed", "filter", "e", "event", "EVENTS", "LibraryModified", "tap", "console", "log", "subscribe", "getLibraryNames", "of", "get", "map", "libraries", "forEach", "lib", "id", "name", "getLibraryName", "libraryId", "hasOwnProperty", "l", "libraryNameExists", "listDirectories", "rootPath", "query", "length", "encodeURIComponent", "getJumpBar", "getLibrary", "getLibraries", "updateLibrariesForMember", "username", "selectedLibraries", "post", "scan", "force", "scanMultipleLibraries", "libraryIds", "ids", "analyze", "refreshMetadata", "forceUpdate", "forceColorscape", "refreshMetadataMultipleLibraries", "analyzeFilesMultipleLibraries", "copySettingsFromLibrary", "sourceLibraryId", "targetLibraryIds", "includeType", "create", "model", "delete", "deleteMultiple", "join", "update", "getLibraryType", "\u0275\u0275inject", "HttpClient", "MessageHubService", "DestroyRef", "factory", "\u0275fac", "providedIn"] }