{ "version": 3, "sources": ["apps/business-center-client/src/app/core/package.service.ts"], "sourcesContent": ["import { Injectable } from '@angular/core';\nimport { Addon } from '@galaxy/marketplace-apps/v1';\nimport { Observable, combineLatest, of as observableOf, throwError as observableThrowError, of } from 'rxjs';\n// TODO: this is bad, do better - export these from core\nimport {\n PackageService as CorePackageService,\n GetMultiAddonsRequest,\n ListPackagesRequest,\n MarketplacePackagesApiService,\n Package,\n Status,\n} from '@vendasta/marketplace-packages';\nimport { catchError, map, shareReplay, switchMap } from 'rxjs';\nimport { AccountGroupService } from '../account-group/account-group.service';\nimport { ProductService } from './product.service';\n\n@Injectable({ providedIn: 'root' })\nexport class PackageService {\n packages$ = this.agService.currentAccountGroup$.pipe(\n switchMap((accountGroup) => {\n return this.packagesApiService.listPackages(\n new ListPackagesRequest({\n marketId: accountGroup.marketId,\n partnerId: accountGroup.partnerId,\n lmiCategory: 0,\n statuses: [Status.PUBLISHED],\n pageSize: 1000,\n sort: true,\n cursor: 'MA==', // Gross :(\n }),\n );\n }),\n map((resp) => resp.packages),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n constructor(\n private packagesApiService: MarketplacePackagesApiService,\n private agService: AccountGroupService,\n private productService: ProductService,\n private packageService: CorePackageService,\n ) {}\n\n loadAddonsForPackage(pkg: Package): Observable {\n if (!pkg || !pkg.addonKeys || pkg.addonKeys.length <= 0) {\n return observableOf(null);\n }\n const req = new GetMultiAddonsRequest({ addonKeys: pkg.addonKeys });\n return this.productService.activeProducts$.pipe(\n switchMap((products) => {\n return this.packagesApiService.getMultiAddons(req).pipe(\n map((resp) => {\n const addons = resp['addons'] || [];\n const addonsWithProductInfo = addons.map((addon: Addon) => {\n addon = Addon.fromApi(addon);\n if (\n addon.endUserMarketing.faqs &&\n addon.endUserMarketing.faqs.length > 0 &&\n !addon.endUserMarketing.faqs[0].question\n ) {\n addon.endUserMarketing.faqs = [];\n }\n const product = products.find((p) => p.productId === addon.appId);\n if (product) {\n addon.productIcon = product.iconUrl;\n addon.productName = product.name;\n }\n return addon;\n });\n return addonsWithProductInfo;\n }),\n );\n }),\n catchError((err) => {\n err.message = 'Failed to get addons > ' + err.message;\n return observableThrowError(err);\n }),\n );\n }\n\n listByLmiCategories(lmiCategories: number[]): Observable {\n return combineLatest([this.productService.marketplaceProducts$, this.packages$]).pipe(\n map(([products, packages]) => {\n if (!lmiCategories || lmiCategories.length < 1) {\n return packages;\n }\n return packages.filter((pack) => {\n return pack?.products?.some((productId) => {\n return products\n .find((product) => product.productId === productId)\n ?.lmiCategories.some((id) => lmiCategories.indexOf(id) > -1);\n }, false);\n });\n }),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n }\n packageWithId(id: string): Observable {\n return this.packages$.pipe(map((pkgs) => pkgs.find((pkg) => pkg.packageId === id)));\n }\n\n /* Get currently returns a superset of data that list does not return */\n get(id: string): Observable {\n return this.packageService.getMulti([id]).pipe(\n switchMap((packages) => {\n if (!packages || packages.length === 0) {\n return this.packageWithId(id);\n }\n return observableOf(packages[0]);\n }),\n catchError((err) => {\n err.message = 'Failed to get updated package with id: ' + id + ' with error > ' + err.message;\n return this.packageWithId(id);\n }),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n }\n\n getMulti(ids: string[]): Observable {\n if (!ids || ids.length === 0) {\n return of([] as Package[]);\n }\n\n return this.packageService.getMulti(ids).pipe(\n catchError((err) => {\n err.message = 'Failed to get packages with error > ' + err.message;\n return of(undefined);\n }),\n map((packages) => {\n return packages && packages.filter((pkg) => pkg.status === Status.PUBLISHED);\n }),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n }\n}\n"], "mappings": "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", "names": ["PackageService", "init_package_service", "__esmMin", "init_v1", "init_esm", "init_vendasta_marketplace_packages", "constructor", "packagesApiService", "agService", "productService", "packageService", "packages$", "currentAccountGroup$", "pipe", "switchMap", "accountGroup", "listPackages", "ListPackagesRequest", "marketId", "partnerId", "lmiCategory", "statuses", "Status", "PUBLISHED", "pageSize", "sort", "cursor", "map", "resp", "packages", "shareReplay", "bufferSize", "refCount", "loadAddonsForPackage", "pkg", "addonKeys", "length", "observableOf", "req", "GetMultiAddonsRequest", "activeProducts$", "products", "getMultiAddons", "addon", "Addon", "fromApi", "endUserMarketing", "faqs", "question", "product", "find", "p", "productId", "appId", "productIcon", "iconUrl", "productName", "name", "catchError", "err", "message", "observableThrowError", "listByLmiCategories", "lmiCategories", "combineLatest", "marketplaceProducts$", "filter", "pack", "some", "id", "indexOf", "packageWithId", "pkgs", "packageId", "get", "getMulti", "ids", "of", "undefined", "status", "\u0275\u0275inject", "MarketplacePackagesApiService", "AccountGroupService", "ProductService", "factory", "\u0275fac", "providedIn"] }