{ "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 this.libraryNames = 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').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').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 getLibraries() {\n return this.httpClient.get(this.baseUrl + 'library');\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", "subscribe", "getLibraryNames", "of", "get", "map", "libraries", "forEach", "lib", "id", "name", "getLibraryName", "libraryId", "hasOwnProperty", "l", "libraryNameExists", "listDirectories", "rootPath", "query", "length", "encodeURIComponent", "getJumpBar", "getLibraries", "updateLibrariesForMember", "username", "selectedLibraries", "post", "scan", "force", "analyze", "refreshMetadata", "forceUpdate", "create", "model", "delete", "update", "getLibraryType", "\u0275\u0275inject", "HttpClient", "MessageHubService", "DestroyRef", "factory", "\u0275fac", "providedIn", "_LibraryService"] }