File

projects/core/src/product/connectors/product/product.connector.ts

Index

Methods

Constructor

constructor(adapter: ProductAdapter)
Parameters :
Name Type Optional
adapter ProductAdapter No

Methods

get
get(productCode: string, scope: string)
Parameters :
Name Type Optional Default value
productCode string No
scope string No ''
Returns : Observable<Product>
getMany
getMany(products: ScopedProductData[])
Parameters :
Name Type Optional
products ScopedProductData[] No
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { Product } from '../../../model/product.model';
import { ProductAdapter } from './product.adapter';
import { ScopedProductData } from './scoped-product-data';

@Injectable({
  providedIn: 'root',
})
export class ProductConnector {
  constructor(protected adapter: ProductAdapter) {}

  get(productCode: string, scope = ''): Observable<Product> {
    return this.adapter.load(productCode, scope);
  }

  getMany(products: ScopedProductData[]): ScopedProductData[] {
    if (!this.adapter.loadMany) {
      return products.map((product) => ({
        ...product,
        data$: this.adapter.load(product.code, product.scope),
      }));
    }

    return this.adapter.loadMany(products);
  }
}

result-matching ""

    No results matching ""