Попытка использовать метод every
javascript, если у любого indexID
есть комбинация firstFillCounter
и refillCounter
, он должен вернуть retvalue
true, его бросок undefined
Любая идея, что будет лучше?
main.ts
private arrayMatch(data) {
const isCombined = this.validateOrder(data);
if (isCombined) {
return Promise.reject(this.errorHandler(request, "First and Refill cant be combined"));
}
return isCombined;
}
private validateOrder(rxDetails) {
let isCombined: boolean = false;
isCombined = rxDetails.every( (o: any) => {
this.isCombinedFirstandRefill(o.rxInfos);
});
return isCombined;
}
private isCombinedFirstandRefill(rxInfos) {
let retVlaue: boolean = false;
let firstFillCounter: number = 0;
let refillCounter: number = 0;
for (const rx of rxInfos) {
if (rx.firstFillIndicator === "Y" && rx.acceptDigitalFirstFill === "Y") {
firstFillCounter++;
} else {
refillCounter++;
}
}
if (refillCounter > 1 && firstFillCounter > 1) {
retVlaue = true;
return retVlaue;
}
return retVlaue;
}
это должно возвращать true и считать неправильный запрос.
const data = [{
indexID: 1,
rxInfos: [{
firstFillIndicator: "Y",
acceptDigitalFirstFill: "Y",
rxNumber: "1512"
},
{
firstFillIndicator: "Y",
acceptDigitalFirstFill: "N",
rxNumber: "16021"
}
]
}]
это действительно так, оно должно возвращать false из isCombinedFirstandRefill
const data1 = [{
indexID: 2,
rxInfos: [{
firstFillIndicator: "Y",
acceptDigitalFirstFill: "N",
rxNumber: "1512"
},
{
firstFillIndicator: "N",
acceptDigitalFirstFill: "N",
rxNumber: "16021"
}
]
}
];