-
Notifications
You must be signed in to change notification settings - Fork 5.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Generate sync webhook payloads in the dataloaders #16086
base: main
Are you sure you want to change the base?
Conversation
8e92da7
to
6bdd611
Compare
a770d48
to
dba54d1
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tested this PR with the Avatax app and different tax configurations.
The same query that causes the recursion error (get 100 checkouts with totalPrice while AvaTax App is configured) is no longer causing a recursion error. ❤️
I have explored the checkout and webhooks areas to ensure that nothing breaks.
Unfortunately, it doesn't solve the other issue of how we can observe recursion error (Taxes are 0 when calling updateDeliveryMethod while the AvaTax App is configured and there is a custom app with a checkout updated webhook with the totalPrice field). Still, this wasn't the main goal of this fix.
dba54d1
to
a165f62
Compare
a165f62
to
2f9b6f1
Compare
Here is the report for f41ff55 (saleor:PE-282-generate-sync-payload-in-dataloaders) Found 21 differences! (click me)
# saleor.graphql.accountbenchmark account
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
addresses for federation query count 9 9 2
customers query 51 51 0
delete staff members 40 40 0
query staff user 22 22 3
staff create 22 22 3
staff update groups and permissions 35 35 5
users for federation query count 8 8 3
# saleor.graphql.accountbenchmark permission group
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
groups for federation query count 3 3 0
permission group create 24 24 0
permission group delete 29 29 3
permission group query 14 14 0
permission group update 43 43 2
permission group update remove users with manage staff 35 35 3
# saleor.graphql.appbenchmarks app extensions
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
app extensions 25 25 10
app extensions with filter[filter0] 24 24 10
app extensions with filter[filter1] 12 12 2
app extensions with filter[filter2] 24 24 10
app extensions with filter[filter3] 12 12 2
# saleor.graphql.appbenchmarks apps
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
apps for federation query count 9 9 3
apps with tokens and webhooks 9 9 0
# saleor.graphql.attributebenchmark attribute
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
attribute translation 6 6 0
attribute value translation 20 20 0
query attribute 6 6 0
query attributes 8 8 0
# saleor.graphql.channelbenchmark channel
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
channels query 5 5 0
# saleor.graphql.channelmutations channel update
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
channel update mutation remove warehouse 39 39 6
# saleor.graphql.checkoutbenchmark checkout mutations
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
- add billing address to checkout 65 67 7
- add checkout lines 91 93 16
- add checkout lines catalogue discount applies 189 191 16
- add checkout lines gift discount applies 153 155 24
- add checkout lines multiple catalogue discount applies 204 206 21
- add checkout lines order discount applies 167 169 19
- add checkout lines with external shipping 174 176 72
- add checkout lines with reservations 191 195 71
- add delivery to checkout 82 84 14
- add shipping to checkout 83 85 14
- checkout email update 44 46 3
checkout payment charge 60 60 17
- checkout shipping address update 77 79 8
- checkout voucher code 88 90 13
complete checkout 246 246 82
complete checkout preorder 241 241 83
complete checkout with digital line 284 284 98
complete checkout with out of stock webhook 248 248 82
complete checkout with single line 248 248 82
- create checkout 69 71 5
- create checkout with gift promotion 106 108 14
- create checkout with order promotion 91 93 5
- create checkout with reservations 157 161 31
customer complete checkout 259 259 88
customer complete checkout for cc 234 234 78
- update checkout lines 84 86 15
- update checkout lines with reservations 197 201 82
# saleor.graphql.checkoutbenchmark checkouts
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
staff multiple checkouts 6 6 0
# saleor.graphql.checkoutbenchmark homepage
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
- user checkout details 55 57 5
- user checkout details with tax app 81 86 30
# saleor.graphql.discountbenchmark promotion create
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
promotion create 23 23 1
promotion create order promotion 37 37 7
# saleor.graphql.discountbenchmark promotion delete
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
gift promotion delete 25 25 1
promotion delete 30 30 1
# saleor.graphql.discountbenchmark promotion rule create
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
promotion rule create 23 23 1
promotion rule create gift 134 134 7
# saleor.graphql.discountbenchmark promotion rule delete
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
promotion rule delete 23 23 0
# saleor.graphql.discountbenchmark promotion rule update
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
promotion rule update 38 38 0
# saleor.graphql.discountbenchmark promotion update
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
promotion update 16 16 0
# saleor.graphql.discountbenchmark promotions
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
promotions querytest promotions query 9 9 0
# saleor.graphql.discountbenchmark sales
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
sales query with channel slug 9 9 0
sales query without channel slug 7 7 0
# saleor.graphql.discountbenchmark voucher code bulk delete
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
voucher code bulk delete queries 20 20 2
# saleor.graphql.discountbenchmark vouchers
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
vouchers query with channel slug 20 20 0
vouchers query withot channel slug 19 19 0
# saleor.graphql.giftcardbenchmark gift card mutations
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
create never expiry gift card 27 27 4
gift card bulk activate by staff 15 15 3
update gift card 35 35 4
# saleor.graphql.giftcardbenchmark gift card queries
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
filter gift cards by products 14 14 3
filter gift cards by tags 12 12 3
filter gift cards by used by user 13 13 3
query gift card details 14 14 3
query gift cards 12 12 3
# saleor.graphql.orderbenchmark fulfillment
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
fulfillment query 6 6 0
# saleor.graphql.orderbenchmark fulfillment refund and return products
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
fulfillment refund products order lines 61 61 0
fulfillment return products order lines 103 103 7
# saleor.graphql.orderbenchmark order
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
staff multiple draft orders 7 7 0
staff multiple orders 7 7 0
staff order details 57 57 7
user order details 54 54 8
# saleor.graphql.orderbenchmark order bulk create
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
order bulk create 20 20 2
# saleor.graphql.orderbenchmark order fulfill
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
order fulfill 18 18 0
order fulfill with gift cards 18 18 0
# saleor.graphql.orderbenchmark order lines create
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
order lines create 95 95 17
order lines create variants on promotion 154 154 22
# saleor.graphql.pagebenchmark page type
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
page types for federation query count 3 3 0
query page type 18 18 6
query page types 25 25 12
# saleor.graphql.paymentbenchmark payment transactions
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
payment transactions 54 54 20
# saleor.graphql.productbenchmark category
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
categories children 4 4 0
categories for federation query count 3 3 0
category delete 48 48 4
category view 28 28 1
# saleor.graphql.productbenchmark collection
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
collection add products 22 22 5
collection bulk delete 27 27 3
collection view 7 7 0
collections for federation query count 4 4 0
create collection 37 37 5
delete collection 40 40 5
remove products from collection 19 19 5
retrieve collection channel listings 5 5 0
# saleor.graphql.productbenchmark homepage
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
report product sales 10 10 3
retrieve product list 4 4 0
# saleor.graphql.productbenchmark product
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
filter products by attributes 7 7 0
filter products by boolean attributes 14 14 0
filter products by gift card 12 12 1
filter products by numeric attributes 13 13 0
product create 48 48 3
product details 41 41 1
product translations 5 5 0
products for federation query count 6 6 1
products media for federation query count 5 5 0
products types for federation query count 2 2 0
retrieve channel listings 21 21 0
retrieve product attributes 8 8 0
retrieve product images 4 4 0
retrieve product media 4 4 0
retrive products with product types and attributes 7 7 0
update product 71 71 5
# saleor.graphql.productbenchmark product variant channel listing update
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
variant channel listing update 35 35 3
# saleor.graphql.productbenchmark variant
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
product variant bulk create 45 45 1
product variant create 61 61 3
products variants for federation query count 6 6 1
retrieve variant list 34 34 1
update product variant 64 64 7
# saleor.graphql.productbenchmark variant stocks
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
product variants stocks create 28 28 4
product variants stocks create with single webhook called 27 27 4
product variants stocks delete by id 29 29 4
product variants stocks delete by sku 29 29 4
product variants stocks delete with out of stock webhook many calls 25 25 3
product variants stocks update by sku 27 27 4
product variants stocks update byid 27 27 4
query product variants stocks 10 10 0
# saleor.graphql.producttest product sorting attributes
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
sort product not having attribute data 20 20 0
# saleor.graphql.shippingbenchmark shipping methods
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
vouchers query with channel slug 7 7 0
vouchers query without channel slug 7 7 0
# saleor.graphql.shippingbenchmark shipping zones
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
shipping zones query 6 6 0
# saleor.graphql.shopbenchmark homepage
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
retrieve shop 2 2 0
# saleor.graphql.warehousebenchmark stock bulk update
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
stocks bulk update queries count 31 31 5
# saleor.graphql.warehousebenchmark stocks
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
stocks query 5 5 0
# saleor.graphql.webhookbenchmark webhook events
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
webhooks 6 6 0
# saleor.orderbenchmark fetch order prices
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
fetch order prices catalogue discount 51 51 7
fetch order prices multiple catalogue discounts 113 113 21
# saleor.ordertest fetch
test name left count right count duplicate count
------------------------------------------------------------------------ ----------- ----------- ---------------
fetch draft order lines info 21 21 1
|
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #16086 +/- ##
========================================
Coverage 94.10% 94.11%
========================================
Files 937 938 +1
Lines 73081 73181 +100
Branches 8654 8671 +17
========================================
+ Hits 68776 68871 +95
+ Misses 2739 2738 -1
- Partials 1566 1572 +6 ☔ View full report in Codecov by Sentry. |
2f9b6f1
to
f41ff55
Compare
results, app_id=app_id, subscription_query=subscription_query | ||
) -> Union[Promise[Optional[dict[str, Any]]], Optional[dict[str, Any]]]: | ||
if hasattr(results, "errors"): | ||
logger.warning( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just noting the codecov complains here.
I want to merge this change because generating sync webhook payloads in the dataloaders.
TODO:
In separate PR.
Impact
Docs
Pull Request Checklist
ADDED_IN_X
,PREVIEW_FEATURE
, etc.)