fix: renew when there's new version available

This commit is contained in:
John Yeo
2025-11-18 11:36:55 +00:00
parent 1d7c490ad4
commit 4e147dec68
4 changed files with 23 additions and 3 deletions

View File

@@ -2,6 +2,7 @@ import {
type AttachBody,
CusProductStatus,
type CustomerData,
cusProductToProduct,
ErrCode,
nullish,
} from "@autumn/shared";
@@ -11,6 +12,7 @@ import { isOneOff } from "@/internal/products/productUtils.js";
import RecaseError from "@/utils/errorUtils.js";
import { notNullish } from "@/utils/genUtils.js";
import type { ExtendedRequest } from "@/utils/models/Request.js";
import { getExistingCusProducts } from "../../../../cusProducts/cusProductUtils/getExistingCusProducts";
const getProductsForAttach = async ({
req,
@@ -93,5 +95,22 @@ export const getCustomerAndProducts = async ({
getProductsForAttach({ req, attachBody }),
]);
if (nullish(attachBody.version)) {
for (let i = 0; i < products.length; i++) {
// Check if customer has active product
const { curSameProduct } = getExistingCusProducts({
product: products[i],
cusProducts: customer.customer_products,
internalEntityId: customer.entity?.internal_id,
});
// console.log(
// `Product ${product.id} (${product.version}), curSameProduct: ${curSameProduct?.product.id} (version: ${curSameProduct?.product.version})`,
// );
if (curSameProduct) {
products[i] = cusProductToProduct({ cusProduct: curSameProduct });
}
}
}
return { customer, products };
};

0
server/src/test.ts Normal file
View File

View File

@@ -1,11 +1,11 @@
import { beforeAll, describe, expect, test } from "bun:test";
import { CusProductStatus } from "@autumn/shared";
import { AutumnCli } from "@tests/cli/AutumnCli.js";
import { compareMainProduct } from "@tests/utils/compare.js";
import ctx from "@tests/utils/testInitUtils/createTestContext.js";
import chalk from "chalk";
import type Stripe from "stripe";
import { AutumnCli } from "tests/cli/AutumnCli.js";
import { products } from "tests/global.js";
import { compareMainProduct } from "tests/utils/compare.js";
import ctx from "tests/utils/testInitUtils/createTestContext.js";
import { createStripeCli } from "@/external/connect/createStripeCli.js";
import { timeout } from "@/utils/genUtils.js";
import { initCustomerV3 } from "@/utils/scriptUtils/testUtils/initCustomerV3.js";

View File

@@ -60,6 +60,7 @@ export * from "./referrals/referralsOpenApi.js";
// Balances
export * from "./balances/check/previousVersions/CheckResponseV0.js";
// export * from "./common/customerData.js";
// Errors
export * from "./errors/index.js";
// Models