replace failureRetry/failureNoRetry webhook response with failure (#462)
* refactor: ♻️ replace failureRetry/failureNoRetry webhook response with failure * build: 👷 add changeset * refactor: ♻️ address feedback
This commit is contained in:
parent
842b7b9cdb
commit
72adeb3b13
6 changed files with 21 additions and 21 deletions
5
.changeset/hot-numbers-hide.md
Normal file
5
.changeset/hot-numbers-hide.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
"saleor-app-taxes": minor
|
||||
---
|
||||
|
||||
Changed behavior of failed webhooks. The app will now return status 500 if the operation failed. Previously, it returned status 200 with an error message in the response body.
|
|
@ -13,14 +13,9 @@ export class WebhookResponse {
|
|||
this.logger = createLogger({ event: "WebhookResponse" });
|
||||
}
|
||||
|
||||
failureNoRetry(error: string) {
|
||||
this.logger.debug({ error }, "failureNoRetry called with:");
|
||||
return this.res.status(200).json({ success: false, error });
|
||||
}
|
||||
|
||||
failureRetry(error: string) {
|
||||
this.logger.error({ error }, "failureRetry called with:");
|
||||
return this.res.status(500).json({ success: false, error });
|
||||
failure(error: string) {
|
||||
this.logger.debug({ error }, "failure called with:");
|
||||
return this.res.status(500).json({ error });
|
||||
}
|
||||
|
||||
success(data?: any) {
|
||||
|
|
|
@ -48,7 +48,7 @@ export default checkoutCalculateTaxesSyncWebhook.createHandler(async (req, res,
|
|||
logger.info("Payload validated succesfully");
|
||||
} catch (error) {
|
||||
logger.info("Returning no data");
|
||||
return webhookResponse.failureNoRetry("Payload is invalid");
|
||||
return webhookResponse.failure("Payload is invalid");
|
||||
}
|
||||
|
||||
try {
|
||||
|
@ -58,7 +58,7 @@ export default checkoutCalculateTaxesSyncWebhook.createHandler(async (req, res,
|
|||
|
||||
if (!activeTaxProvider.ok) {
|
||||
logger.info("Returning no data");
|
||||
return webhookResponse.failureNoRetry(activeTaxProvider.error);
|
||||
return webhookResponse.failure(activeTaxProvider.error);
|
||||
}
|
||||
|
||||
logger.info({ activeTaxProvider }, "Fetched activeTaxProvider");
|
||||
|
@ -69,6 +69,6 @@ export default checkoutCalculateTaxesSyncWebhook.createHandler(async (req, res,
|
|||
return webhookResponse.success(ctx.buildResponse(calculatedTaxes));
|
||||
} catch (error) {
|
||||
logger.error({ error });
|
||||
return webhookResponse.failureRetry("Error while calculating taxes");
|
||||
return webhookResponse.failure("Error while calculating taxes");
|
||||
}
|
||||
});
|
||||
|
|
|
@ -48,7 +48,7 @@ export default orderCalculateTaxesSyncWebhook.createHandler(async (req, res, ctx
|
|||
logger.info("Payload validated succesfully");
|
||||
} catch (error) {
|
||||
logger.info("Returning no data");
|
||||
return webhookResponse.failureNoRetry("Payload is invalid");
|
||||
return webhookResponse.failure("Payload is invalid");
|
||||
}
|
||||
|
||||
try {
|
||||
|
@ -58,7 +58,7 @@ export default orderCalculateTaxesSyncWebhook.createHandler(async (req, res, ctx
|
|||
|
||||
if (!activeTaxProvider.ok) {
|
||||
logger.info("Returning no data");
|
||||
return webhookResponse.failureNoRetry(activeTaxProvider.error);
|
||||
return webhookResponse.failure(activeTaxProvider.error);
|
||||
}
|
||||
|
||||
logger.info({ activeTaxProvider }, "Fetched activeTaxProvider");
|
||||
|
@ -69,6 +69,6 @@ export default orderCalculateTaxesSyncWebhook.createHandler(async (req, res, ctx
|
|||
return webhookResponse.success(ctx.buildResponse(calculatedTaxes));
|
||||
} catch (error) {
|
||||
logger.error({ error });
|
||||
return webhookResponse.failureRetry("Error while calculating taxes");
|
||||
return webhookResponse.failure("Error while calculating taxes");
|
||||
}
|
||||
});
|
||||
|
|
|
@ -78,7 +78,7 @@ export default orderCreatedAsyncWebhook.createHandler(async (req, res, ctx) => {
|
|||
|
||||
if (!activeTaxProvider.ok) {
|
||||
logger.info("Returning no data");
|
||||
return webhookResponse.failureNoRetry(activeTaxProvider.error);
|
||||
return webhookResponse.failure(activeTaxProvider.error);
|
||||
}
|
||||
|
||||
logger.info({ activeTaxProvider }, "Fetched activeTaxProvider");
|
||||
|
@ -86,11 +86,11 @@ export default orderCreatedAsyncWebhook.createHandler(async (req, res, ctx) => {
|
|||
|
||||
// todo: figure out what fields are needed and add validation
|
||||
if (!payload.order) {
|
||||
return webhookResponse.failureNoRetry("Insufficient order data");
|
||||
return webhookResponse.failure("Insufficient order data");
|
||||
}
|
||||
|
||||
if (payload.order.status === OrderStatus.Fulfilled) {
|
||||
return webhookResponse.failureNoRetry("Skipping fulfilled order to prevent duplication");
|
||||
return webhookResponse.failure("Skipping fulfilled order to prevent duplication");
|
||||
}
|
||||
|
||||
const createdOrder = await taxProvider.createOrder(payload.order);
|
||||
|
@ -104,6 +104,6 @@ export default orderCreatedAsyncWebhook.createHandler(async (req, res, ctx) => {
|
|||
return webhookResponse.success();
|
||||
} catch (error) {
|
||||
logger.error({ error });
|
||||
return webhookResponse.failureRetry("Error while creating order in tax provider");
|
||||
return webhookResponse.failure("Error while creating order in tax provider");
|
||||
}
|
||||
});
|
||||
|
|
|
@ -40,7 +40,7 @@ export default orderFulfilledAsyncWebhook.createHandler(async (req, res, ctx) =>
|
|||
|
||||
if (!activeTaxProvider.ok) {
|
||||
logger.info("Returning no data");
|
||||
return webhookResponse.failureNoRetry(activeTaxProvider.error);
|
||||
return webhookResponse.failure(activeTaxProvider.error);
|
||||
}
|
||||
|
||||
logger.info({ activeTaxProvider }, "Fetched activeTaxProvider");
|
||||
|
@ -48,7 +48,7 @@ export default orderFulfilledAsyncWebhook.createHandler(async (req, res, ctx) =>
|
|||
|
||||
// todo: figure out what fields are needed and add validation
|
||||
if (!payload.order) {
|
||||
return webhookResponse.failureNoRetry("Insufficient order data");
|
||||
return webhookResponse.failure("Insufficient order data");
|
||||
}
|
||||
const fulfilledOrder = await taxProvider.fulfillOrder(payload.order);
|
||||
|
||||
|
@ -56,6 +56,6 @@ export default orderFulfilledAsyncWebhook.createHandler(async (req, res, ctx) =>
|
|||
|
||||
return webhookResponse.success();
|
||||
} catch (error) {
|
||||
return webhookResponse.failureRetry("Error while fulfilling tax provider order");
|
||||
return webhookResponse.failure("Error while fulfilling tax provider order");
|
||||
}
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue