import { PackageValidator } from './packaging-validator'; import { ConfigService } from '@arrow/bom/config'; import { PackagingFilterOption } from '../buying-options.interfaces'; import { PackageTypeRestriction } from '../../ORM/types/custom/row.interface'; export class ArrowPackageValidator extends PackageValidator { constructor(configService: ConfigService) { super(configService); } validate( typeOfPackagesSelected: Array, packageRestrictions: PackageTypeRestriction ): boolean { if ( !this.configService.isArrowcom() || (packageRestrictions !== undefined && typeOfPackagesSelected === null) ) { throw new Error('parameters are not complete'); } let matches: number = 0; for (let i = 0; i < typeOfPackagesSelected.length; i++) { if ( packageRestrictions.restrictionGroups.filter(p => p.indexOf(+typeOfPackagesSelected[i]) !== -1 ).length >= 1 ) { matches++; } } return matches < 2; } }