GitHub

DaffProductFacade

import { DaffProductFacade } from '@daffodil/product/state'

A facade for getting state about a particular product.

@Injectable()
class DaffProductFacade<<T extends DaffProduct = DaffProduct>>  implements DaffProductFacadeInterface<T> {
  getProduct(id: T["id"]): Observable<T>
  getPrice(id: T["id"]): Observable<number>
  hasDiscount(id: T["id"]): Observable<boolean>
  getDiscountAmount(id: T["id"]): Observable<number>
  getDiscountedPrice(id: T["id"]): Observable<number>
  getDiscountPercent(id: T["id"]): Observable<number>
  isOutOfStock(id: T["id"]): Observable<boolean>
  dispatch(action: Action<string>): void
}

() Methods

getProduct
Observable<T>

Get a product.

Parameters
Parameterid: T["id"]
Description
getPrice
Observable<number>

Get the original price for a product.

Parameters
Parameterid: T["id"]
Description
hasDiscount
Observable<boolean>

Whether a particular product has a discount.

Parameters
Parameterid: T["id"]
Description
getDiscountAmount
Observable<number>

Get the discount amount of a product.

Parameters
Parameterid: T["id"]
Description
getDiscountedPrice
Observable<number>

Get the discounted price for a product.

Parameters
Parameterid: T["id"]
Description
getDiscountPercent
Observable<number>

Get the discount percent of a product.

Parameters
Parameterid: T["id"]
Description
isOutOfStock
Observable<boolean>

Whether a product is out of stock.

Parameters
Parameterid: T["id"]
Description
dispatch
void
Parameters
Parameteraction: Action
Description