chore: skipping recase errors in express middleware

This commit is contained in:
John Yeo
2025-11-21 08:09:13 +00:00
parent fd895e9b29
commit 755e541a2d
3 changed files with 20 additions and 6 deletions

View File

@@ -1,5 +1,4 @@
import { ErrCode } from "@autumn/shared";
import RecaseError from "@/utils/errorUtils.js";
import { ErrCode, RecaseError } from "@autumn/shared";
import { redis } from "./initRedis.js";
export const handleAttachRaceCondition = async ({

View File

@@ -1,11 +1,14 @@
import { type AttachConfig, ProrationBehavior } from "@autumn/shared";
import {
type AttachConfig,
ProrationBehavior,
RecaseError,
} from "@autumn/shared";
import type Stripe from "stripe";
import { sanitizeSubItems } from "@/external/stripe/stripeSubUtils/getStripeSubItems.js";
import { createProrationInvoice } from "@/external/stripe/stripeSubUtils/updateStripeSub/createProrationinvoice.js";
import type { AttachParams } from "@/internal/customers/cusProducts/AttachParams.js";
import { freeTrialToStripeTimestamp } from "@/internal/products/free-trials/freeTrialUtils.js";
import { SubService } from "@/internal/subscriptions/SubService.js";
import RecaseError from "@/utils/errorUtils.js";
import { nullish } from "@/utils/genUtils.js";
import type { ItemSet } from "@/utils/models/ItemSet.js";
import type { ExtendedRequest } from "@/utils/models/Request.js";
@@ -102,7 +105,7 @@ export const updateStripeSub2 = async ({
const { curMainProduct } = attachParamToCusProducts({ attachParams });
// 2. Create prorations for single use items
const { invoiceItems, cusEntIds } = await createUsageInvoiceItems({
const { cusEntIds } = await createUsageInvoiceItems({
db,
attachParams,
cusProduct: curMainProduct!,

View File

@@ -1,4 +1,8 @@
import { ErrCode, ProductNotFoundError } from "@autumn/shared";
import {
ErrCode,
ProductNotFoundError,
RecaseError as SharedRecaseError,
} from "@autumn/shared";
import Stripe from "stripe";
import RecaseError from "../errorUtils.js";
@@ -35,6 +39,14 @@ export const handleExpressErrorSkip = ({
}) => {
const originalUrl = req.originalUrl;
if (error instanceof SharedRecaseError) {
req.logger.warn(`${error.message}, path: ${originalUrl}`);
return res.status(error.statusCode).json({
message: error.message,
code: error.code,
});
}
// Handle RecaseError with EntityNotFound code
if (error instanceof RecaseError) {
if (error.code === ErrCode.EntityNotFound) {