From 9c92332d3c832f0d264973699b3cf60f672d5088 Mon Sep 17 00:00:00 2001 From: Jakub Majorek Date: Mon, 27 Sep 2021 16:06:21 +0200 Subject: [PATCH] Add draft order webhook events (#1438) (#1439) --- fragmentTypes.json | 3 + locale/defaultMessages.json | 20 +- schema.graphql | 33 +- src/fragments/types/MetadataFragment.ts | 2 +- src/fragments/types/ProductVariant.ts | 4 +- .../__snapshots__/Stories.test.ts.snap | 768 ++++++++++++++++++ src/types/globalTypes.ts | 6 + src/utils/metadata/types/UpdateMetadata.ts | 2 +- .../metadata/types/UpdatePrivateMetadata.ts | 2 +- .../WebhookEvents/WebhookEvents.tsx | 16 +- 10 files changed, 837 insertions(+), 19 deletions(-) diff --git a/fragmentTypes.json b/fragmentTypes.json index eb27d85ef..8775e5ba3 100644 --- a/fragmentTypes.json +++ b/fragmentTypes.json @@ -311,6 +311,9 @@ { "name": "PageType" }, + { + "name": "Payment" + }, { "name": "Product" }, diff --git a/locale/defaultMessages.json b/locale/defaultMessages.json index a238a31f0..5ac076a6f 100644 --- a/locale/defaultMessages.json +++ b/locale/defaultMessages.json @@ -7782,6 +7782,10 @@ "context": "event", "string": "Product variant deleted" }, + "src_dot_webhooks_dot_components_dot_WebhookEvents_dot_1564545489": { + "context": "event", + "string": "Draft order deleted" + }, "src_dot_webhooks_dot_components_dot_WebhookEvents_dot_1594316266": { "context": "event", "string": "Fulfillment canceled" @@ -7806,10 +7810,6 @@ "context": "event", "string": "Checkout created" }, - "src_dot_webhooks_dot_components_dot_WebhookEvents_dot_2275774954": { - "context": "event", - "string": "Product Variant out of stock" - }, "src_dot_webhooks_dot_components_dot_WebhookEvents_dot_2315238863": { "context": "event", "string": "Product variant out of stock" @@ -7854,10 +7854,18 @@ "context": "event", "string": "Order created" }, + "src_dot_webhooks_dot_components_dot_WebhookEvents_dot_3418398751": { + "context": "event", + "string": "Draft order updated" + }, "src_dot_webhooks_dot_components_dot_WebhookEvents_dot_36047288": { "context": "event", "string": "Translation created" }, + "src_dot_webhooks_dot_components_dot_WebhookEvents_dot_3610454973": { + "context": "event", + "string": "Draft order created" + }, "src_dot_webhooks_dot_components_dot_WebhookEvents_dot_3617444329": { "context": "event", "string": "Order cancelled" @@ -7878,10 +7886,6 @@ "context": "event", "string": "Order fulfilled" }, - "src_dot_webhooks_dot_components_dot_WebhookEvents_dot_3951314810": { - "context": "event", - "string": "Product Variant back in stock" - }, "src_dot_webhooks_dot_components_dot_WebhookEvents_dot_3970234993": { "context": "event", "string": "Customer created" diff --git a/schema.graphql b/schema.graphql index 3f25cc506..474c04136 100644 --- a/schema.graphql +++ b/schema.graphql @@ -75,9 +75,9 @@ enum AccountErrorCode { input AccountInput { firstName: String lastName: String + languageCode: LanguageCodeEnum defaultBillingAddress: AddressInput defaultShippingAddress: AddressInput - languageCode: LanguageCodeEnum } type AccountRegister { @@ -88,10 +88,12 @@ type AccountRegister { } input AccountRegisterInput { + firstName: String + lastName: String + languageCode: LanguageCodeEnum email: String! password: String! redirectUrl: String - languageCode: LanguageCodeEnum metadata: [MetadataInput!] channel: String } @@ -1216,6 +1218,7 @@ type Collection implements Node & ObjectWithMetadata { slug: String! privateMetadata: [MetadataItem]! metadata: [MetadataItem]! + channel: String descriptionJson: JSONString @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `description` field instead.") products(filter: ProductFilterInput, sortBy: ProductOrder, before: String, after: String, first: Int, last: Int): ProductCountableConnection backgroundImage(size: Int): Image @@ -2407,6 +2410,7 @@ enum GiftCardEventsEnum { DEACTIVATED BALANCE_RESET EXPIRY_DATE_UPDATED + TAG_UPDATED SENT_TO_CUSTOMER RESENT NOTE_ADDED @@ -3822,7 +3826,7 @@ type Mutation { orderConfirm(id: ID!): OrderConfirm orderFulfill(input: OrderFulfillInput!, order: ID): OrderFulfill orderFulfillmentCancel(id: ID!, input: FulfillmentCancelInput): FulfillmentCancel - orderFulfillmentApprove(id: ID!, notifyCustomer: Boolean!): FulfillmentApprove + orderFulfillmentApprove(allowStockToBeExceeded: Boolean = false, id: ID!, notifyCustomer: Boolean!): FulfillmentApprove orderFulfillmentUpdateTracking(id: ID!, input: FulfillmentUpdateTrackingInput!): FulfillmentUpdateTracking orderFulfillmentRefundProducts(input: OrderRefundProductsInput!, order: ID!): FulfillmentRefundProducts orderFulfillmentReturnProducts(input: OrderReturnProductsInput!, order: ID!): FulfillmentReturnProducts @@ -4178,6 +4182,7 @@ enum OrderErrorCode { CANNOT_REFUND CANNOT_FULFILL_UNPAID_ORDER CAPTURE_INACTIVE_PAYMENT + GIFT_CARD_LINE NOT_EDITABLE FULFILL_ORDER_LINE GRAPHQL_ERROR @@ -4333,6 +4338,7 @@ type OrderFulfill { input OrderFulfillInput { lines: [OrderFulfillLineInput!]! notifyCustomer: Boolean + allowStockToBeExceeded: Boolean = false } input OrderFulfillLineInput { @@ -4820,7 +4826,7 @@ type PasswordChange { errors: [AccountError!]! } -type Payment implements Node { +type Payment implements Node & ObjectWithMetadata { id: ID! gateway: String! isActive: Boolean! @@ -4831,6 +4837,8 @@ type Payment implements Node { order: Order paymentMethodType: String! customerIpAddress: String + privateMetadata: [MetadataItem]! + metadata: [MetadataItem]! chargeStatus: PaymentChargeStatusEnum! actions: [OrderAction]! total: Money @@ -4919,6 +4927,8 @@ input PaymentInput { token: String amount: PositiveDecimal returnUrl: String + storePaymentMethod: StorePaymentMethodEnum = none + metadata: [MetadataInput!] } type PaymentRefund { @@ -4931,6 +4941,7 @@ type PaymentSource { gateway: String! paymentMethodId: String creditCardInfo: CreditCard + metadata: [MetadataItem]! } type PaymentVoid { @@ -5140,6 +5151,7 @@ type Product implements Node & ObjectWithMetadata { rating: Float privateMetadata: [MetadataItem]! metadata: [MetadataItem]! + channel: String descriptionJson: JSONString @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `description` field instead.") thumbnail(size: Int): Image pricing(address: AddressInput): ProductPricingInfo @@ -5600,6 +5612,7 @@ type ProductVariant implements Node & ObjectWithMetadata { weight: Weight privateMetadata: [MetadataItem]! metadata: [MetadataItem]! + channel: String channelListings: [ProductVariantChannelListing!] pricing(address: AddressInput): VariantPricingInfo attributes(variantSelection: VariantAttributeScope): [SelectedAttribute!]! @@ -6542,6 +6555,12 @@ input StockInput { quantity: Int! } +enum StorePaymentMethodEnum { + ON_SESSION + OFF_SESSION + NONE +} + type TaxType { description: String taxCode: String @@ -7165,6 +7184,9 @@ enum WebhookEventTypeEnum { ORDER_UPDATED ORDER_CANCELLED ORDER_FULFILLED + DRAFT_ORDER_CREATED + DRAFT_ORDER_UPDATED + DRAFT_ORDER_DELETED INVOICE_REQUESTED INVOICE_DELETED INVOICE_SENT @@ -7204,6 +7226,9 @@ enum WebhookSampleEventTypeEnum { ORDER_UPDATED ORDER_CANCELLED ORDER_FULFILLED + DRAFT_ORDER_CREATED + DRAFT_ORDER_UPDATED + DRAFT_ORDER_DELETED INVOICE_REQUESTED INVOICE_DELETED INVOICE_SENT diff --git a/src/fragments/types/MetadataFragment.ts b/src/fragments/types/MetadataFragment.ts index 2bb9c8525..1eb1cf5c2 100644 --- a/src/fragments/types/MetadataFragment.ts +++ b/src/fragments/types/MetadataFragment.ts @@ -20,7 +20,7 @@ export interface MetadataFragment_privateMetadata { } export interface MetadataFragment { - __typename: "App" | "Attribute" | "Category" | "Checkout" | "Collection" | "DigitalContent" | "Fulfillment" | "GiftCard" | "Invoice" | "Menu" | "MenuItem" | "Order" | "Page" | "PageType" | "Product" | "ProductType" | "ProductVariant" | "Sale" | "ShippingMethod" | "ShippingZone" | "User" | "Voucher" | "Warehouse"; + __typename: "App" | "Attribute" | "Category" | "Checkout" | "Collection" | "DigitalContent" | "Fulfillment" | "GiftCard" | "Invoice" | "Menu" | "MenuItem" | "Order" | "Page" | "PageType" | "Payment" | "Product" | "ProductType" | "ProductVariant" | "Sale" | "ShippingMethod" | "ShippingZone" | "User" | "Voucher" | "Warehouse"; metadata: (MetadataFragment_metadata | null)[]; privateMetadata: (MetadataFragment_privateMetadata | null)[]; } diff --git a/src/fragments/types/ProductVariant.ts b/src/fragments/types/ProductVariant.ts index 0823b55e6..53f487ea9 100644 --- a/src/fragments/types/ProductVariant.ts +++ b/src/fragments/types/ProductVariant.ts @@ -5,9 +5,9 @@ import { AttributeInputTypeEnum, AttributeEntityTypeEnum, MeasurementUnitsEnum, ProductMediaType, WeightUnitsEnum } from "./../../types/globalTypes"; -//=== +// ==================================================== // GraphQL fragment: ProductVariant -//=== +// ==================================================== export interface ProductVariant_metadata { __typename: "MetadataItem"; diff --git a/src/storybook/__snapshots__/Stories.test.ts.snap b/src/storybook/__snapshots__/Stories.test.ts.snap index 5cc2421c3..acc8e6924 100644 --- a/src/storybook/__snapshots__/Stories.test.ts.snap +++ b/src/storybook/__snapshots__/Stories.test.ts.snap @@ -25828,6 +25828,114 @@ exports[`Storyshots Views / Apps / Webhooks / Create webhook default 1`] = ` +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +