Zum Hauptinhalt springen

Interface: OrdersUpdateSupplier

This is the caller side of the contract.

Remarks

  1. The processUpdateRequest method converts the raw http request into an PatchOrdersRequest
  2. The PatchOrdersRequest is processed by the other system which returns the OrderDto for the patched order
  3. The provideUpdatedOrder method converts the OrderDto to a response that is suitable for the requesting system.

Methods

processUpdateRequest

processUpdateRequest(request): Promise<{ fields?: [{ field?: string; operation?: PatchOperation.Remove; } | { field?: string ; operation?: Append ; value?: unknown } | { field?: string ; operation?: Set ; value?: unknown }, ...(({ field?: string; operation?: PatchOperation.Remove; }) | Object | Object)[]] ; filters?: [{ field?: string ; operation?: FilterOperation ; value?: unknown }, ...Object[]] }>

Handle the incoming request and transform it to a QueryOrdersRequest.

Parameters

NameTypeDescription
requestObjectThe raw http request to process.
request.body?string-
request.headers?Record<string, string>-
request.method?string-
request.url?string-

Returns

Promise<{ fields?: [{ field?: string; operation?: PatchOperation.Remove; } | { field?: string ; operation?: Append ; value?: unknown } | { field?: string ; operation?: Set ; value?: unknown }, ...(({ field?: string; operation?: PatchOperation.Remove; }) | Object | Object)[]] ; filters?: [{ field?: string ; operation?: FilterOperation ; value?: unknown }, ...Object[]] }>

The PatchOrdersRequest

Example

Raw http request:

POST /order_id=1234
Content-Type: application/json

{
"state": 1,
"customer_update": {
"name": "John"
}
}

PatchOrdersRequest:

{
filters: [
{field: 'id', operation: FilterOperation.Equal, value: enforce<OrderDto["id"]>('1234')}
],
fields: [
{field: 'status', operation: PatchOperation.Set, value: enforce<OrderDto["status"]>('PROCESSING')},
{field: 'deliveryAddress.firstName', operation: PatchOperation.Set, value: enforce<AddressDto["firstName"]>('John')},
{field: 'invoiceAddress.firstName', operation: PatchOperation.Set, value: enforce<AddressDto["firstName"]>('John')},
],
}

Defined in

src/contracts/patch-orders/handler/orders-update-supplier.ts:50


provideUpdatedOrders

provideUpdatedOrders(orders): Promise<{ body?: string ; headers?: Record<string, string> ; statusCode?: number }>

Convert the updated orders to valid http response.

Parameters

NameTypeDescription
orders{ attributeValues?: Record<string, unknown> = ZAttributeValues; customer?: { id?: string; mailAddress?: string; phoneNumber?: string; vatId?: string; attributeValues?: Record<string, unknown>; } ; deliveryAddress?: { id?: string; company?: string; firstName?: string; surname?: string; line2?: string; street?: string; houseNumber?: string; zipCode?: string; city?: string; countryCode?: string; state?: string; attributeValues?: Record<...>; } ; id?: string ; invoiceAddress?: { id?: string; company?: string; firstName?: string; surname?: string; line2?: string; street?: string; houseNumber?: string; zipCode?: string; city?: string; countryCode?: string; state?: string; attributeValues?: Record<...>; } ; items?: { id?: string; name?: string; description?: string; sku?: string; amount?: number; singleNetPrice?: { value?: number; divisor?: number; currencyCode?: string; }; singleGrossPrice?: { value?: number; divisor?: number; currencyCode?: string; }; taxRate?: number; attributeValues?: Record<...>; }[] ; orderDate?: string = ZDateTimeString; orderNumber?: string ; paymentStatus?: "OPEN" | "IN_PROGRESS" | "PARTIALLY_PAID" | "PAID" | "PARTIALLY_REFUNDED" | "REFUNDED" = ZPaymentStatus; shipments?: { id?: string; date?: string; sourceCountryCode?: string; method?: string; netPrice?: { value?: number; divisor?: number; currencyCode?: string; }; grossPrice?: { value?: number; divisor?: number; currencyCode?: string; }; taxRate?: number; attributeValues?: Record<...>; }[] ; status?: "OPEN" | "CONFIRMED" | "PROCESSING" | "CANCELED" | "COMPLETED" = ZOrderStatus; transactions?: { id?: string; date?: string; type?: "PAYMENT" | "REFUND"; method?: string; amount?: { value?: number; divisor?: number; currencyCode?: string; }; attributeValues?: Record<string, unknown>; }[] }[]The updated orders.

Returns

Promise<{ body?: string ; headers?: Record<string, string> ; statusCode?: number }>

Defined in

src/contracts/patch-orders/handler/orders-update-supplier.ts:57