Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | 385x 56x 22x 1x 1x 1x 1x | import { Address } from 'ish-core/models/address/address.model';
import { Attribute } from 'ish-core/models/attribute/attribute.model';
import { BasketApproval } from 'ish-core/models/basket-approval/basket-approval.model';
import { BasketInfo } from 'ish-core/models/basket-info/basket-info.model';
import { BasketTotal } from 'ish-core/models/basket-total/basket-total.model';
import { BasketValidationResultType } from 'ish-core/models/basket-validation/basket-validation.model';
import { CustomFields } from 'ish-core/models/custom-field/custom-field.model';
import { LineItem, LineItemView } from 'ish-core/models/line-item/line-item.model';
import { Payment } from 'ish-core/models/payment/payment.model';
import { Recurrence } from 'ish-core/models/recurrence/recurrence.model';
import { ShippingMethod } from 'ish-core/models/shipping-method/shipping-method.model';
export interface AbstractBasket<T> {
id: string;
purchaseCurrency?: string;
dynamicMessages?: string[];
invoiceToAddress?: Address;
commonShipToAddress?: Address;
commonShippingMethod?: ShippingMethod;
customerNo?: string;
email?: string;
lineItems?: T[];
payment?: Payment;
costCenter?: string;
promotionCodes?: string[];
totals: BasketTotal;
totalProductQuantity?: number;
bucketId?: string;
infos?: BasketInfo[];
approval?: BasketApproval;
attributes?: Attribute[];
taxationId?: string;
user?: {
companyName?: string;
companyName2?: string;
firstName: string;
lastName: string;
};
externalOrderReference?: string;
messageToMerchant?: string;
recurrence?: Recurrence;
customFields?: CustomFields;
}
export type Basket = AbstractBasket<LineItem>;
export type BasketView = AbstractBasket<LineItemView>;
export const createBasketView = (
basket: Basket,
validationResults: BasketValidationResultType,
basketInfo: BasketInfo[]
): BasketView =>
basket && {
...basket,
lineItems: basket.lineItems
? basket.lineItems
.map(li => ({
...li,
validationError:
validationResults && !validationResults.valid && validationResults.errors
? validationResults.errors.find(error => error.parameters && error.parameters.lineItemId === li.id)
: undefined,
info:
basketInfo?.length && basketInfo[0].causes
? basketInfo[0].causes.find(cause => cause.parameters && cause.parameters.lineItemId === li.id)
: undefined,
}))
.sort(comparePosition)
: [],
};
/* Sort basket line items by position as long as the REST request returns them unsorted */
function comparePosition(a: LineItem, b: LineItem) {
Iif (a.position < b.position) {
return -1;
} else Iif (a.position < b.position) {
return 1;
}
return 0;
}
|