@firfi/voila-sdk 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -3
- package/dist/src/domain/schemas/index.d.ts +1 -0
- package/dist/src/domain/schemas/index.d.ts.map +1 -1
- package/dist/src/domain/schemas/index.js +1 -0
- package/dist/src/domain/schemas/index.js.map +1 -1
- package/dist/src/domain/schemas/order-details.d.ts +2623 -0
- package/dist/src/domain/schemas/order-details.d.ts.map +1 -0
- package/dist/src/domain/schemas/order-details.js +148 -0
- package/dist/src/domain/schemas/order-details.js.map +1 -0
- package/dist/src/domain/schemas/order-history.d.ts +237 -60
- package/dist/src/domain/schemas/order-history.d.ts.map +1 -1
- package/dist/src/domain/schemas/order-history.js +17 -12
- package/dist/src/domain/schemas/order-history.js.map +1 -1
- package/dist/src/domain/schemas/slot.d.ts +4 -4
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/voila/order-details.d.ts +22 -0
- package/dist/src/voila/order-details.d.ts.map +1 -0
- package/dist/src/voila/order-details.js +267 -0
- package/dist/src/voila/order-details.js.map +1 -0
- package/dist/src/voila/order-history.d.ts +9 -5
- package/dist/src/voila/order-history.d.ts.map +1 -1
- package/dist/src/voila/order-history.js +23 -5
- package/dist/src/voila/order-history.js.map +1 -1
- package/dist/src/voila/order-urls.d.ts +10 -0
- package/dist/src/voila/order-urls.d.ts.map +1 -1
- package/dist/src/voila/order-urls.js +12 -1
- package/dist/src/voila/order-urls.js.map +1 -1
- package/package.json +1 -1
|
@@ -171,9 +171,9 @@ export declare const RawSlotDayMappingSchema: Schema.Schema<{
|
|
|
171
171
|
}, never>;
|
|
172
172
|
export type RawSlotDayMapping = Schema.Schema.Type<typeof RawSlotDayMappingSchema>;
|
|
173
173
|
export declare const RawSlotCarrierSchema: Schema.Schema<{
|
|
174
|
+
readonly carrierId?: string;
|
|
174
175
|
readonly title?: string;
|
|
175
176
|
readonly carrierDetails?: readonly unknown[];
|
|
176
|
-
readonly carrierId?: string;
|
|
177
177
|
readonly carrierName?: string;
|
|
178
178
|
readonly daysMapping?: readonly ({
|
|
179
179
|
readonly day: string;
|
|
@@ -240,9 +240,9 @@ export declare const RawSlotCarrierSchema: Schema.Schema<{
|
|
|
240
240
|
} & {
|
|
241
241
|
readonly [x: string]: unknown;
|
|
242
242
|
}, {
|
|
243
|
+
readonly carrierId?: string;
|
|
243
244
|
readonly title?: string;
|
|
244
245
|
readonly carrierDetails?: readonly unknown[];
|
|
245
|
-
readonly carrierId?: string;
|
|
246
246
|
readonly carrierName?: string;
|
|
247
247
|
readonly daysMapping?: readonly ({
|
|
248
248
|
readonly day: string;
|
|
@@ -312,9 +312,9 @@ export declare const RawSlotCarrierSchema: Schema.Schema<{
|
|
|
312
312
|
export type RawSlotCarrier = Schema.Schema.Type<typeof RawSlotCarrierSchema>;
|
|
313
313
|
export declare const RawSlotListingResponseSchema: Schema.Schema<{
|
|
314
314
|
readonly carriers: readonly ({
|
|
315
|
+
readonly carrierId?: string;
|
|
315
316
|
readonly title?: string;
|
|
316
317
|
readonly carrierDetails?: readonly unknown[];
|
|
317
|
-
readonly carrierId?: string;
|
|
318
318
|
readonly carrierName?: string;
|
|
319
319
|
readonly daysMapping?: readonly ({
|
|
320
320
|
readonly day: string;
|
|
@@ -390,9 +390,9 @@ export declare const RawSlotListingResponseSchema: Schema.Schema<{
|
|
|
390
390
|
readonly [x: string]: unknown;
|
|
391
391
|
}, {
|
|
392
392
|
readonly carriers: readonly ({
|
|
393
|
+
readonly carrierId?: string;
|
|
393
394
|
readonly title?: string;
|
|
394
395
|
readonly carrierDetails?: readonly unknown[];
|
|
395
|
-
readonly carrierId?: string;
|
|
396
396
|
readonly carrierName?: string;
|
|
397
397
|
readonly daysMapping?: readonly ({
|
|
398
398
|
readonly day: string;
|
package/dist/src/index.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export * from "./voila/guest-bootstrap.js";
|
|
|
16
16
|
export * from "./voila/headers.js";
|
|
17
17
|
export * from "./voila/http-client.js";
|
|
18
18
|
export * from "./voila/initial-state.js";
|
|
19
|
+
export * from "./voila/order-details.js";
|
|
19
20
|
export * from "./voila/order-history.js";
|
|
20
21
|
export * from "./voila/order-urls.js";
|
|
21
22
|
export * from "./voila/session-health.js";
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,mBAAmB,CAAA;AACjC,cAAc,2BAA2B,CAAA;AACzC,cAAc,kCAAkC,CAAA;AAChD,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,0BAA0B,CAAA;AACxC,cAAc,kCAAkC,CAAA;AAChD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,mBAAmB,CAAA;AACjC,cAAc,2BAA2B,CAAA;AACzC,cAAc,kCAAkC,CAAA;AAChD,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,0BAA0B,CAAA;AACxC,cAAc,kCAAkC,CAAA;AAChD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA"}
|
package/dist/src/index.js
CHANGED
|
@@ -16,6 +16,7 @@ export * from "./voila/guest-bootstrap.js";
|
|
|
16
16
|
export * from "./voila/headers.js";
|
|
17
17
|
export * from "./voila/http-client.js";
|
|
18
18
|
export * from "./voila/initial-state.js";
|
|
19
|
+
export * from "./voila/order-details.js";
|
|
19
20
|
export * from "./voila/order-history.js";
|
|
20
21
|
export * from "./voila/order-urls.js";
|
|
21
22
|
export * from "./voila/session-health.js";
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,mBAAmB,CAAA;AACjC,cAAc,2BAA2B,CAAA;AACzC,cAAc,kCAAkC,CAAA;AAChD,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,0BAA0B,CAAA;AACxC,cAAc,kCAAkC,CAAA;AAChD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,mBAAmB,CAAA;AACjC,cAAc,2BAA2B,CAAA;AACzC,cAAc,kCAAkC,CAAA;AAChD,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,0BAA0B,CAAA;AACxC,cAAc,kCAAkC,CAAA;AAChD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Either } from "effect";
|
|
2
|
+
import { type NormalizedCompletedOrderItemsResult, type NormalizedOrderDetailsResult, type RawDecoratedOrderResponse, type SessionSnapshot } from "../domain/schemas/index.js";
|
|
3
|
+
import type { VoilaJsonResult, VoilaSdkError, VoilaTransport } from "./http-client.js";
|
|
4
|
+
import { type GetCompletedOrdersError } from "./order-history.js";
|
|
5
|
+
import type { OrderDetailsRequestError } from "./order-urls.js";
|
|
6
|
+
import type { CookieJarPort } from "./session-snapshot.js";
|
|
7
|
+
export type OrderDetailsUnavailableError = {
|
|
8
|
+
readonly _tag: "OrderDetailsUnavailable";
|
|
9
|
+
readonly message: string;
|
|
10
|
+
};
|
|
11
|
+
export type CompletedOrderItemsInputInvalidError = {
|
|
12
|
+
readonly _tag: "CompletedOrderItemsInputInvalid";
|
|
13
|
+
readonly message: string;
|
|
14
|
+
};
|
|
15
|
+
export type GetOrderDetailsError = OrderDetailsRequestError | OrderDetailsUnavailableError | VoilaSdkError;
|
|
16
|
+
export type GetCompletedOrderItemsError = CompletedOrderItemsInputInvalidError | GetCompletedOrdersError | GetOrderDetailsError;
|
|
17
|
+
export type GetOrderDetailsResult = VoilaJsonResult<NormalizedOrderDetailsResult>;
|
|
18
|
+
export type GetCompletedOrderItemsResult = VoilaJsonResult<NormalizedCompletedOrderItemsResult>;
|
|
19
|
+
export declare const normalizeOrderDetailsResponse: (response: RawDecoratedOrderResponse, orderId: string) => Either.Either<NormalizedOrderDetailsResult, OrderDetailsUnavailableError>;
|
|
20
|
+
export declare const getOrderDetails: (session: SessionSnapshot, input: unknown, transport: VoilaTransport, cookieJarPort?: CookieJarPort) => Promise<Either.Either<GetOrderDetailsResult, GetOrderDetailsError>>;
|
|
21
|
+
export declare const getCompletedOrderItems: (session: SessionSnapshot, input: unknown, transport: VoilaTransport, cookieJarPort?: CookieJarPort) => Promise<Either.Either<GetCompletedOrderItemsResult, GetCompletedOrderItemsError>>;
|
|
22
|
+
//# sourceMappingURL=order-details.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"order-details.d.ts","sourceRoot":"","sources":["../../../src/voila/order-details.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAG/B,OAAO,EAML,KAAK,mCAAmC,EACxC,KAAK,4BAA4B,EAIjC,KAAK,yBAAyB,EAM9B,KAAK,eAAe,EACrB,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtF,OAAO,EAAsB,KAAK,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AACrF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAE1D,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAA;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,oCAAoC,GAAG;IACjD,QAAQ,CAAC,IAAI,EAAE,iCAAiC,CAAA;IAChD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,wBAAwB,GAAG,4BAA4B,GAAG,aAAa,CAAA;AAE1G,MAAM,MAAM,2BAA2B,GACnC,oCAAoC,GACpC,uBAAuB,GACvB,oBAAoB,CAAA;AAExB,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC,4BAA4B,CAAC,CAAA;AACjF,MAAM,MAAM,4BAA4B,GAAG,eAAe,CAAC,mCAAmC,CAAC,CAAA;AAgJ/F,eAAO,MAAM,6BAA6B,GACxC,UAAU,yBAAyB,EACnC,SAAS,MAAM,KACd,MAAM,CAAC,MAAM,CAAC,4BAA4B,EAAE,4BAA4B,CAsB1E,CAAA;AA2GD,eAAO,MAAM,eAAe,GAC1B,SAAS,eAAe,EACxB,OAAO,OAAO,EACd,WAAW,cAAc,EACzB,gBAAgB,aAAa,KAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,oBAAoB,CAAC,CAuBpE,CAAA;AAWD,eAAO,MAAM,sBAAsB,GACjC,SAAS,eAAe,EACxB,OAAO,OAAO,EACd,WAAW,cAAc,EACzB,gBAAgB,aAAa,KAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,4BAA4B,EAAE,2BAA2B,CAAC,CA0ElF,CAAA"}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
import { Either } from "effect";
|
|
2
|
+
import { parseUnknown } from "../domain/parse.js";
|
|
3
|
+
import { CompletedOrderItemsInputSchema, RawDecoratedOrderResponseSchema } from "../domain/schemas/index.js";
|
|
4
|
+
import { requestVoilaJson } from "./http-client.js";
|
|
5
|
+
import { getCompletedOrders } from "./order-history.js";
|
|
6
|
+
import { makeOrderDetailsRequest } from "./order-urls.js";
|
|
7
|
+
const receivedKind = "received";
|
|
8
|
+
const substitutedKind = "substituted";
|
|
9
|
+
const missingKind = "missing";
|
|
10
|
+
const returnedKind = "returned";
|
|
11
|
+
const atRiskKind = "atRisk";
|
|
12
|
+
const decimalRadix = 10;
|
|
13
|
+
const centsPerUnit = 100;
|
|
14
|
+
const firstOrder = 0;
|
|
15
|
+
const inputInvalid = () => ({
|
|
16
|
+
_tag: "CompletedOrderItemsInputInvalid",
|
|
17
|
+
message: "Completed order items request input does not match the SDK schema"
|
|
18
|
+
});
|
|
19
|
+
const orderDetailsUnavailable = () => ({
|
|
20
|
+
_tag: "OrderDetailsUnavailable",
|
|
21
|
+
message: "Voila decorated order details are unavailable for the requested order"
|
|
22
|
+
});
|
|
23
|
+
const firstRecordValue = (record) => {
|
|
24
|
+
for (const value of Object.values(record)) {
|
|
25
|
+
return value;
|
|
26
|
+
}
|
|
27
|
+
return undefined;
|
|
28
|
+
};
|
|
29
|
+
const resolveProduct = (reference, products) => {
|
|
30
|
+
if (reference === undefined) {
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
return typeof reference === "string" ? products[reference] : reference;
|
|
34
|
+
};
|
|
35
|
+
const productIdFor = (item, product) => product?.productId ?? item.productId;
|
|
36
|
+
const quantityFor = (item) => item.quantity ?? 1;
|
|
37
|
+
const unitPriceFor = (item, product) => item.price ?? product?.price?.current;
|
|
38
|
+
const makeNormalizedItem = (item, groupKind, products, substitutionForProductId, substitutionRole) => {
|
|
39
|
+
const product = resolveProduct(item.product, products);
|
|
40
|
+
const productId = productIdFor(item, product);
|
|
41
|
+
const totalPrice = item.finalPrice ?? item.totalPrice;
|
|
42
|
+
const unitPrice = unitPriceFor(item, product);
|
|
43
|
+
const isInCurrentCatalog = item.isInCurrentCatalog ?? product?.isInCurrentCatalog;
|
|
44
|
+
const sellerId = product?.sellerId ?? product?.seller?.id;
|
|
45
|
+
const sellerName = product?.sellerName ?? product?.seller?.name;
|
|
46
|
+
return {
|
|
47
|
+
groupKind,
|
|
48
|
+
quantity: quantityFor(item),
|
|
49
|
+
...(product?.brand === undefined ? {} : { brand: product.brand }),
|
|
50
|
+
...(isInCurrentCatalog === undefined ? {} : { isInCurrentCatalog }),
|
|
51
|
+
...(product?.name === undefined ? {} : { name: product.name }),
|
|
52
|
+
...(productId === undefined ? {} : { productId }),
|
|
53
|
+
...(product?.retailerProductId === undefined ? {} : { retailerProductId: product.retailerProductId }),
|
|
54
|
+
...(item.sample === undefined ? {} : { sample: item.sample }),
|
|
55
|
+
...(sellerId === undefined ? {} : { sellerId }),
|
|
56
|
+
...(sellerName === undefined ? {} : { sellerName }),
|
|
57
|
+
...(substitutionForProductId === undefined ? {} : { substitutionForProductId }),
|
|
58
|
+
...(substitutionRole === undefined ? {} : { substitutionRole }),
|
|
59
|
+
...(totalPrice === undefined ? {} : { totalPrice }),
|
|
60
|
+
...(unitPrice === undefined ? {} : { unitPrice })
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
const normalizePlainGroup = (kind, items, products) => ({
|
|
64
|
+
items: (items ?? []).map((item) => makeNormalizedItem(item, kind, products)),
|
|
65
|
+
kind
|
|
66
|
+
});
|
|
67
|
+
const normalizeSubstitutionGroup = (items, products) => ({
|
|
68
|
+
items: (items ?? []).flatMap((item) => {
|
|
69
|
+
const requested = makeNormalizedItem(item, substitutedKind, products, undefined, "requested");
|
|
70
|
+
const substitutes = (item.substitutes ?? []).map((substitute) => makeNormalizedItem(substitute, substitutedKind, products, requested.productId, "substitute"));
|
|
71
|
+
return [requested, ...substitutes];
|
|
72
|
+
}),
|
|
73
|
+
kind: substitutedKind
|
|
74
|
+
});
|
|
75
|
+
const normalizeItemGroups = (order, products) => [
|
|
76
|
+
normalizePlainGroup(receivedKind, order.items, products),
|
|
77
|
+
normalizeSubstitutionGroup(order.substitutedItems, products),
|
|
78
|
+
normalizePlainGroup(missingKind, order.missingItems, products),
|
|
79
|
+
normalizePlainGroup(returnedKind, order.returnedItems, products),
|
|
80
|
+
normalizePlainGroup(atRiskKind, order.itemsOnCheckout, products)
|
|
81
|
+
].filter((group) => group.items.length > 0);
|
|
82
|
+
const datesFor = (order) => order.slot?.start === undefined && order.slot?.end === undefined && order.slot?.timeZone === undefined
|
|
83
|
+
? {}
|
|
84
|
+
: {
|
|
85
|
+
dates: {
|
|
86
|
+
...(order.slot.start === undefined ? {} : { deliveryStartDate: order.slot.start }),
|
|
87
|
+
...(order.slot.end === undefined ? {} : { deliveryEndDate: order.slot.end }),
|
|
88
|
+
...(order.slot.timeZone === undefined ? {} : { timeZoneId: order.slot.timeZone })
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
export const normalizeOrderDetailsResponse = (response, orderId) => {
|
|
92
|
+
const order = response.entities.order[orderId] ?? firstRecordValue(response.entities.order);
|
|
93
|
+
if (order === undefined) {
|
|
94
|
+
return Either.left(orderDetailsUnavailable());
|
|
95
|
+
}
|
|
96
|
+
const products = response.entities.product ?? {};
|
|
97
|
+
const itemGroups = normalizeItemGroups(order, products);
|
|
98
|
+
const items = itemGroups.flatMap((group) => group.items);
|
|
99
|
+
return Either.right({
|
|
100
|
+
...datesFor(order),
|
|
101
|
+
itemGroups,
|
|
102
|
+
items,
|
|
103
|
+
orderId: order.orderId,
|
|
104
|
+
...(order.orderReference === undefined ? {} : { orderReference: order.orderReference }),
|
|
105
|
+
...(order.prices?.total === undefined ? {} : { orderTotals: { totalPrice: order.prices.total } }),
|
|
106
|
+
...(order.region?.regionId === undefined ? {} : { regionId: order.region.regionId }),
|
|
107
|
+
...(order.region?.retailerRegionId === undefined ? {} : { retailerRegionId: order.region.retailerRegionId }),
|
|
108
|
+
...(order.status === undefined ? {} : { status: order.status })
|
|
109
|
+
});
|
|
110
|
+
};
|
|
111
|
+
const parseCents = (money) => {
|
|
112
|
+
const match = /^([0-9]+)(?:\.([0-9]{1,2}))?$/.exec(money.amount);
|
|
113
|
+
const whole = match?.[1];
|
|
114
|
+
if (whole === undefined) {
|
|
115
|
+
return undefined;
|
|
116
|
+
}
|
|
117
|
+
const fractional = match?.[2] ?? "";
|
|
118
|
+
const centsText = fractional.length === 1 ? `${fractional}0` : fractional.padEnd(2, "0");
|
|
119
|
+
return (Number.parseInt(whole, decimalRadix) * centsPerUnit) + Number.parseInt(centsText, decimalRadix);
|
|
120
|
+
};
|
|
121
|
+
const formatCents = (cents) => {
|
|
122
|
+
const whole = Math.trunc(cents / centsPerUnit);
|
|
123
|
+
const fractional = `${cents % centsPerUnit}`.padStart(2, "0");
|
|
124
|
+
return `${whole}.${fractional}`;
|
|
125
|
+
};
|
|
126
|
+
const datePart = (value) => {
|
|
127
|
+
if (value === undefined || value.length < "yyyy-mm-dd".length) {
|
|
128
|
+
return undefined;
|
|
129
|
+
}
|
|
130
|
+
return value.slice(0, "yyyy-mm-dd".length);
|
|
131
|
+
};
|
|
132
|
+
const isInRange = (order, input) => {
|
|
133
|
+
const deliveredAt = datePart(order.dates.deliveryEndDate);
|
|
134
|
+
if (deliveredAt === undefined) {
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
if (input.fromDate !== undefined && deliveredAt < input.fromDate) {
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
return input.toDate === undefined || deliveredAt <= input.toDate;
|
|
141
|
+
};
|
|
142
|
+
const itemKeyFor = (item) => item.productId ?? item.retailerProductId ?? item.name ?? "unknown-product";
|
|
143
|
+
const aggregateItem = (aggregate, item, order) => {
|
|
144
|
+
const orderIds = new Set(aggregate?.orderIds ?? []);
|
|
145
|
+
orderIds.add(order.orderId);
|
|
146
|
+
const cents = item.totalPrice === undefined ? undefined : parseCents(item.totalPrice);
|
|
147
|
+
const nextSpend = aggregate?.spendCents === undefined || cents === undefined
|
|
148
|
+
|| aggregate.spendCurrency !== item.totalPrice?.currency
|
|
149
|
+
? undefined
|
|
150
|
+
: aggregate.spendCents + cents;
|
|
151
|
+
const initialSpend = aggregate === undefined && cents !== undefined && item.totalPrice !== undefined
|
|
152
|
+
? cents
|
|
153
|
+
: nextSpend;
|
|
154
|
+
const brand = item.brand ?? aggregate?.brand;
|
|
155
|
+
const name = item.name ?? aggregate?.name;
|
|
156
|
+
const productId = item.productId ?? aggregate?.productId;
|
|
157
|
+
const retailerProductId = item.retailerProductId ?? aggregate?.retailerProductId;
|
|
158
|
+
const spendCurrency = item.totalPrice?.currency ?? aggregate?.spendCurrency;
|
|
159
|
+
const lastOrderId = aggregate?.lastOrderId ?? order.orderId;
|
|
160
|
+
const lastOrderedAt = aggregate?.lastOrderedAt ?? order.dates.deliveryEndDate;
|
|
161
|
+
return {
|
|
162
|
+
itemKey: itemKeyFor(item),
|
|
163
|
+
orderIds,
|
|
164
|
+
totalQuantity: (aggregate?.totalQuantity ?? 0) + item.quantity,
|
|
165
|
+
...(brand === undefined ? {} : { brand }),
|
|
166
|
+
lastOrderId,
|
|
167
|
+
lastOrderedAt,
|
|
168
|
+
...(name === undefined ? {} : { name }),
|
|
169
|
+
...(productId === undefined ? {} : { productId }),
|
|
170
|
+
...(retailerProductId === undefined ? {} : { retailerProductId }),
|
|
171
|
+
...(initialSpend === undefined ? {} : { spendCents: initialSpend }),
|
|
172
|
+
...(spendCurrency === undefined ? {} : { spendCurrency })
|
|
173
|
+
};
|
|
174
|
+
};
|
|
175
|
+
const toCompletedOrderItem = (aggregate) => ({
|
|
176
|
+
itemKey: aggregate.itemKey,
|
|
177
|
+
orderCount: aggregate.orderIds.size,
|
|
178
|
+
orderIds: Array.from(aggregate.orderIds),
|
|
179
|
+
totalQuantity: aggregate.totalQuantity,
|
|
180
|
+
...(aggregate.brand === undefined ? {} : { brand: aggregate.brand }),
|
|
181
|
+
lastOrderId: aggregate.lastOrderId,
|
|
182
|
+
lastOrderedAt: aggregate.lastOrderedAt,
|
|
183
|
+
...(aggregate.name === undefined ? {} : { name: aggregate.name }),
|
|
184
|
+
...(aggregate.productId === undefined ? {} : { productId: aggregate.productId }),
|
|
185
|
+
...(aggregate.retailerProductId === undefined ? {} : { retailerProductId: aggregate.retailerProductId }),
|
|
186
|
+
...(aggregate.spendCents === undefined || aggregate.spendCurrency === undefined
|
|
187
|
+
? {}
|
|
188
|
+
: {
|
|
189
|
+
totalSpend: {
|
|
190
|
+
amount: formatCents(aggregate.spendCents),
|
|
191
|
+
currency: aggregate.spendCurrency
|
|
192
|
+
}
|
|
193
|
+
})
|
|
194
|
+
});
|
|
195
|
+
export const getOrderDetails = async (session, input, transport, cookieJarPort) => {
|
|
196
|
+
const request = makeOrderDetailsRequest(input);
|
|
197
|
+
if (Either.isLeft(request)) {
|
|
198
|
+
return Either.left(request.left);
|
|
199
|
+
}
|
|
200
|
+
const response = await requestVoilaJson(RawDecoratedOrderResponseSchema, session, request.right, transport, cookieJarPort);
|
|
201
|
+
return Either.flatMap(response, (result) => Either.map(normalizeOrderDetailsResponse(result.value, request.right.orderId), (value) => ({
|
|
202
|
+
session: result.session,
|
|
203
|
+
value
|
|
204
|
+
})));
|
|
205
|
+
};
|
|
206
|
+
const makeOrderPageInput = (input, pageToken, remainingOrders) => ({
|
|
207
|
+
pageSize: Math.min(input.pageSize ?? input.maxOrders, remainingOrders),
|
|
208
|
+
...(pageToken === undefined ? {} : { pageToken })
|
|
209
|
+
});
|
|
210
|
+
export const getCompletedOrderItems = async (session, input, transport, cookieJarPort) => {
|
|
211
|
+
const parsed = Either.mapLeft(parseUnknown(CompletedOrderItemsInputSchema, input), inputInvalid);
|
|
212
|
+
if (Either.isLeft(parsed)) {
|
|
213
|
+
return Either.left(parsed.left);
|
|
214
|
+
}
|
|
215
|
+
const matchingOrders = [];
|
|
216
|
+
let currentSession = session;
|
|
217
|
+
let ordersScanned = 0;
|
|
218
|
+
let pageToken = parsed.right.pageToken;
|
|
219
|
+
let pagination = {
|
|
220
|
+
hasNextPage: false
|
|
221
|
+
};
|
|
222
|
+
do {
|
|
223
|
+
const ordersResult = await getCompletedOrders(currentSession, makeOrderPageInput(parsed.right, pageToken, parsed.right.maxOrders - matchingOrders.length), transport, cookieJarPort);
|
|
224
|
+
if (Either.isLeft(ordersResult)) {
|
|
225
|
+
return Either.left(ordersResult.left);
|
|
226
|
+
}
|
|
227
|
+
currentSession = ordersResult.right.session;
|
|
228
|
+
pagination = ordersResult.right.value.pagination;
|
|
229
|
+
ordersScanned += ordersResult.right.value.orders.length;
|
|
230
|
+
for (const order of ordersResult.right.value.orders) {
|
|
231
|
+
if (matchingOrders.length < parsed.right.maxOrders && isInRange(order, parsed.right)) {
|
|
232
|
+
matchingOrders.push(order);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
if (pagination.nextPageToken === pageToken) {
|
|
236
|
+
pageToken = undefined;
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
pageToken = pagination.nextPageToken;
|
|
240
|
+
}
|
|
241
|
+
} while (matchingOrders.length < parsed.right.maxOrders && pagination.hasNextPage && pageToken !== undefined);
|
|
242
|
+
const aggregates = new Map();
|
|
243
|
+
for (const order of matchingOrders.slice(firstOrder, parsed.right.maxOrders)) {
|
|
244
|
+
const details = await getOrderDetails(currentSession, { orderId: order.orderId }, transport, cookieJarPort);
|
|
245
|
+
if (Either.isLeft(details)) {
|
|
246
|
+
return Either.left(details.left);
|
|
247
|
+
}
|
|
248
|
+
currentSession = details.right.session;
|
|
249
|
+
for (const item of details.right.value.items.filter((detailItem) => detailItem.groupKind === receivedKind)) {
|
|
250
|
+
const key = itemKeyFor(item);
|
|
251
|
+
aggregates.set(key, aggregateItem(aggregates.get(key), item, order));
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
const items = Array.from(aggregates.values()).map(toCompletedOrderItem)
|
|
255
|
+
.sort((left, right) => right.totalQuantity - left.totalQuantity || left.itemKey.localeCompare(right.itemKey));
|
|
256
|
+
return Either.right({
|
|
257
|
+
session: currentSession,
|
|
258
|
+
value: {
|
|
259
|
+
itemCount: items.length,
|
|
260
|
+
items,
|
|
261
|
+
ordersMatched: matchingOrders.length,
|
|
262
|
+
ordersScanned,
|
|
263
|
+
pagination
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
};
|
|
267
|
+
//# sourceMappingURL=order-details.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"order-details.js","sourceRoot":"","sources":["../../../src/voila/order-details.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import { Either } from "effect";
|
|
2
|
-
import { type NormalizedCompletedOrdersResult, type
|
|
2
|
+
import { type NormalizedCompletedOrdersResult, type RawCompletedOrdersConnection, type SessionSnapshot } from "../domain/schemas/index.js";
|
|
3
3
|
import type { VoilaJsonResult, VoilaSdkError, VoilaTransport } from "./http-client.js";
|
|
4
4
|
import type { CompletedOrdersRequestError } from "./order-urls.js";
|
|
5
5
|
import type { CookieJarPort } from "./session-snapshot.js";
|
|
6
|
-
export type
|
|
7
|
-
readonly _tag: "
|
|
6
|
+
export type CompletedOrdersGraphqlError = {
|
|
7
|
+
readonly _tag: "CompletedOrdersGraphqlError";
|
|
8
8
|
readonly message: string;
|
|
9
9
|
};
|
|
10
|
-
export type
|
|
10
|
+
export type CompletedOrdersUnavailableError = {
|
|
11
|
+
readonly _tag: "CompletedOrdersUnavailable";
|
|
12
|
+
readonly message: string;
|
|
13
|
+
};
|
|
14
|
+
export type GetCompletedOrdersError = CompletedOrdersGraphqlError | CompletedOrdersRequestError | CompletedOrdersUnavailableError | VoilaSdkError;
|
|
11
15
|
export type GetCompletedOrdersResult = VoilaJsonResult<NormalizedCompletedOrdersResult>;
|
|
12
|
-
export declare const normalizeCompletedOrdersResponse: (
|
|
16
|
+
export declare const normalizeCompletedOrdersResponse: (connection: RawCompletedOrdersConnection) => NormalizedCompletedOrdersResult;
|
|
13
17
|
export declare const getCompletedOrders: (session: SessionSnapshot, input: unknown, transport: VoilaTransport, cookieJarPort?: CookieJarPort) => Promise<Either.Either<GetCompletedOrdersResult, GetCompletedOrdersError>>;
|
|
14
18
|
//# sourceMappingURL=order-history.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order-history.d.ts","sourceRoot":"","sources":["../../../src/voila/order-history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAEL,KAAK,+BAA+B,EAEpC,KAAK,
|
|
1
|
+
{"version":3,"file":"order-history.d.ts","sourceRoot":"","sources":["../../../src/voila/order-history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAEL,KAAK,+BAA+B,EAEpC,KAAK,4BAA4B,EAIjC,KAAK,eAAe,EACrB,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAElE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAE1D,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,CAAC,IAAI,EAAE,6BAA6B,CAAA;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG;IAC5C,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAA;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAC/B,2BAA2B,GAC3B,2BAA2B,GAC3B,+BAA+B,GAC/B,aAAa,CAAA;AAEjB,MAAM,MAAM,wBAAwB,GAAG,eAAe,CAAC,+BAA+B,CAAC,CAAA;AA2DvF,eAAO,MAAM,gCAAgC,GAC3C,YAAY,4BAA4B,KACvC,+BAeF,CAAA;AA8BD,eAAO,MAAM,kBAAkB,GAC7B,SAAS,eAAe,EACxB,OAAO,OAAO,EACd,WAAW,cAAc,EACzB,gBAAgB,aAAa,KAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,uBAAuB,CAAC,CAuB1E,CAAA"}
|
|
@@ -56,8 +56,7 @@ const normalizeCompletedOrder = (order) => ({
|
|
|
56
56
|
retailerRegionId: order.region.retailerRegionId,
|
|
57
57
|
status: order.status
|
|
58
58
|
});
|
|
59
|
-
export const normalizeCompletedOrdersResponse = (
|
|
60
|
-
const connection = response.data.completedOrders;
|
|
59
|
+
export const normalizeCompletedOrdersResponse = (connection) => {
|
|
61
60
|
const orders = connection.edges.flatMap((edge) => edge?.node === undefined || edge.node === null
|
|
62
61
|
? []
|
|
63
62
|
: [normalizeCompletedOrder(edge.node)]);
|
|
@@ -70,15 +69,34 @@ export const normalizeCompletedOrdersResponse = (response) => {
|
|
|
70
69
|
}
|
|
71
70
|
};
|
|
72
71
|
};
|
|
72
|
+
const graphqlError = () => ({
|
|
73
|
+
_tag: "CompletedOrdersGraphqlError",
|
|
74
|
+
message: "Voila completed orders returned a GraphQL error; account login may be required"
|
|
75
|
+
});
|
|
76
|
+
const completedOrdersUnavailable = () => ({
|
|
77
|
+
_tag: "CompletedOrdersUnavailable",
|
|
78
|
+
message: "Voila completed orders are unavailable for the current session"
|
|
79
|
+
});
|
|
80
|
+
const getCompletedOrdersConnection = (response) => {
|
|
81
|
+
if (response.errors !== undefined && response.errors.length > 0) {
|
|
82
|
+
return Either.left(graphqlError());
|
|
83
|
+
}
|
|
84
|
+
if (response.data === undefined
|
|
85
|
+
|| response.data === null
|
|
86
|
+
|| response.data.completedOrders === null) {
|
|
87
|
+
return Either.left(completedOrdersUnavailable());
|
|
88
|
+
}
|
|
89
|
+
return Either.right(response.data.completedOrders);
|
|
90
|
+
};
|
|
73
91
|
export const getCompletedOrders = async (session, input, transport, cookieJarPort) => {
|
|
74
92
|
const request = makeCompletedOrdersRequest(input);
|
|
75
93
|
if (Either.isLeft(request)) {
|
|
76
94
|
return Either.left(request.left);
|
|
77
95
|
}
|
|
78
96
|
const response = await requestVoilaJson(RawCompletedOrdersGraphqlResponseSchema, session, request.right, transport, cookieJarPort);
|
|
79
|
-
return Either.
|
|
97
|
+
return Either.flatMap(response, (result) => Either.map(getCompletedOrdersConnection(result.value), (connection) => ({
|
|
80
98
|
session: result.session,
|
|
81
|
-
value: normalizeCompletedOrdersResponse(
|
|
82
|
-
}));
|
|
99
|
+
value: normalizeCompletedOrdersResponse(connection)
|
|
100
|
+
})));
|
|
83
101
|
};
|
|
84
102
|
//# sourceMappingURL=order-history.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order-history.js","sourceRoot":"","sources":["../../../src/voila/order-history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,
|
|
1
|
+
{"version":3,"file":"order-history.js","sourceRoot":"","sources":["../../../src/voila/order-history.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,5 +9,15 @@ export type CompletedOrdersRequestError = {
|
|
|
9
9
|
readonly _tag: "CompletedOrdersInputInvalid";
|
|
10
10
|
readonly message: string;
|
|
11
11
|
};
|
|
12
|
+
export interface OrderDetailsRequest {
|
|
13
|
+
readonly method: "GET";
|
|
14
|
+
readonly orderId: string;
|
|
15
|
+
readonly url: URL;
|
|
16
|
+
}
|
|
17
|
+
export type OrderDetailsRequestError = {
|
|
18
|
+
readonly _tag: "OrderDetailsInputInvalid";
|
|
19
|
+
readonly message: string;
|
|
20
|
+
};
|
|
12
21
|
export declare const makeCompletedOrdersRequest: (input?: unknown) => Either.Either<CompletedOrdersRequest, CompletedOrdersRequestError>;
|
|
22
|
+
export declare const makeOrderDetailsRequest: (input: unknown) => Either.Either<OrderDetailsRequest, OrderDetailsRequestError>;
|
|
13
23
|
//# sourceMappingURL=order-urls.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order-urls.d.ts","sourceRoot":"","sources":["../../../src/voila/order-urls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"order-urls.d.ts","sourceRoot":"","sources":["../../../src/voila/order-urls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAc/B,eAAO,MAAM,sBAAsB,mnCAuDjC,CAAA;AAEF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;CAClB;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,CAAC,IAAI,EAAE,6BAA6B,CAAA;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;CAClB;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAA;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,CAAA;AAiBD,eAAO,MAAM,0BAA0B,GACrC,QAAO,OAAY,KAClB,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,2BAA2B,CAYjE,CAAA;AAKH,eAAO,MAAM,uBAAuB,GAClC,OAAO,OAAO,KACb,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,wBAAwB,CAQ3D,CAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Either } from "effect";
|
|
2
2
|
import { parseUnknown } from "../domain/parse.js";
|
|
3
|
-
import { CompletedOrdersInputSchema } from "../domain/schemas/index.js";
|
|
3
|
+
import { CompletedOrdersInputSchema, OrderDetailsInputSchema } from "../domain/schemas/index.js";
|
|
4
4
|
import { VOILA_BASE_URL } from "./urls.js";
|
|
5
5
|
const COMPLETED_ORDERS_GRAPHQL_PATH = "/graphql";
|
|
6
|
+
const ORDER_PATH_PREFIX = "/api/order/v6/orders/";
|
|
6
7
|
export const COMPLETED_ORDERS_QUERY = `query GetCompletedOrders($first: Int!, $after: String) {
|
|
7
8
|
completedOrders(first: $first, after: $after) {
|
|
8
9
|
retentionPeriod
|
|
@@ -63,6 +64,10 @@ const completedOrdersInputInvalid = () => ({
|
|
|
63
64
|
_tag: "CompletedOrdersInputInvalid",
|
|
64
65
|
message: "Completed orders request input does not match the SDK schema"
|
|
65
66
|
});
|
|
67
|
+
const orderDetailsInputInvalid = () => ({
|
|
68
|
+
_tag: "OrderDetailsInputInvalid",
|
|
69
|
+
message: "Order details request input does not match the SDK schema"
|
|
70
|
+
});
|
|
66
71
|
const makeVariables = (input) => ({
|
|
67
72
|
...(input.pageToken === undefined ? {} : { after: input.pageToken }),
|
|
68
73
|
first: input.pageSize
|
|
@@ -76,4 +81,10 @@ export const makeCompletedOrdersRequest = (input = {}) => Either.map(Either.mapL
|
|
|
76
81
|
method: "POST",
|
|
77
82
|
url: new URL(COMPLETED_ORDERS_GRAPHQL_PATH, VOILA_BASE_URL)
|
|
78
83
|
}));
|
|
84
|
+
const makeOrderDetailsUrl = (input) => new URL(`${ORDER_PATH_PREFIX}${encodeURIComponent(input.orderId)}/decorated`, VOILA_BASE_URL);
|
|
85
|
+
export const makeOrderDetailsRequest = (input) => Either.map(Either.mapLeft(parseUnknown(OrderDetailsInputSchema, input), orderDetailsInputInvalid), (orderDetailsInput) => ({
|
|
86
|
+
method: "GET",
|
|
87
|
+
orderId: orderDetailsInput.orderId,
|
|
88
|
+
url: makeOrderDetailsUrl(orderDetailsInput)
|
|
89
|
+
}));
|
|
79
90
|
//# sourceMappingURL=order-urls.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order-urls.js","sourceRoot":"","sources":["../../../src/voila/order-urls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"order-urls.js","sourceRoot":"","sources":["../../../src/voila/order-urls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAEL,0BAA0B,EAE1B,uBAAuB,EACxB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE1C,MAAM,6BAA6B,GAAG,UAAU,CAAA;AAChD,MAAM,iBAAiB,GAAG,uBAAuB,CAAA;AAEjD,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuDpC,CAAA;AAwBF,MAAM,2BAA2B,GAAG,GAAgC,EAAE,CAAC,CAAC;IACtE,IAAI,EAAE,6BAA6B;IACnC,OAAO,EAAE,8DAA8D;CACxE,CAAC,CAAA;AAEF,MAAM,wBAAwB,GAAG,GAA6B,EAAE,CAAC,CAAC;IAChE,IAAI,EAAE,0BAA0B;IAChC,OAAO,EAAE,2DAA2D;CACrE,CAAC,CAAA;AAEF,MAAM,aAAa,GAAG,CAAC,KAA2B,EAAE,EAAE,CAAC,CAAC;IACtD,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IACpE,KAAK,EAAE,KAAK,CAAC,QAAQ;CACtB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,QAAiB,EAAE,EACiD,EAAE,CACtE,MAAM,CAAC,GAAG,CACR,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,0BAA0B,EAAE,KAAK,CAAC,EAAE,2BAA2B,CAAC,EAC5F,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IACzB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;QACnB,aAAa,EAAE,oBAAoB;QACnC,KAAK,EAAE,sBAAsB;QAC7B,SAAS,EAAE,aAAa,CAAC,oBAAoB,CAAC;KAC/C,CAAC;IACF,MAAM,EAAE,MAAM;IACd,GAAG,EAAE,IAAI,GAAG,CAAC,6BAA6B,EAAE,cAAc,CAAC;CAC5D,CAAC,CACH,CAAA;AAEH,MAAM,mBAAmB,GAAG,CAAC,KAAwB,EAAO,EAAE,CAC5D,IAAI,GAAG,CAAC,GAAG,iBAAiB,GAAG,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC,CAAA;AAE/F,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,KAAc,EACgD,EAAE,CAChE,MAAM,CAAC,GAAG,CACR,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,uBAAuB,EAAE,KAAK,CAAC,EAAE,wBAAwB,CAAC,EACtF,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACtB,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,iBAAiB,CAAC,OAAO;IAClC,GAAG,EAAE,mBAAmB,CAAC,iBAAiB,CAAC;CAC5C,CAAC,CACH,CAAA"}
|