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