public isShipperOptedIn()

in src/client/src/analytics_client/opt_in_config.ts [42:69]


  public isShipperOptedIn(shipperName: ShipperName, eventType?: EventType): boolean {
    if (!this.isOptedIn()) {
      return false;
    }

    // In case of not provided a specific shipper consent, we assume opted-in
    const isShipperGloballyOptedIn: boolean =
      (this.optInConfig.global.shippers && this.optInConfig.global.shippers[shipperName]) ?? true;

    if (!isShipperGloballyOptedIn) {
      return false;
    }

    if (eventType) {
      if (!this.isEventTypeOptedIn(eventType)) {
        return false;
      }

      const eventTypeOptInConfig = this.optInConfig.event_types && this.optInConfig.event_types[eventType];
      // In case of not provided a specific eventType-level shipper consent, we assume opted-in
      const isEventTypeShipperOptedIn: boolean =
        (eventTypeOptInConfig?.shippers && eventTypeOptInConfig.shippers[shipperName]) ?? true;

      return isEventTypeShipperOptedIn;
    } else {
      return isShipperGloballyOptedIn;
    }
  }