diff --git a/.changeset/happy-llamas-breathe.md b/.changeset/happy-llamas-breathe.md new file mode 100644 index 0000000000..e7ad715440 --- /dev/null +++ b/.changeset/happy-llamas-breathe.md @@ -0,0 +1,5 @@ +--- +"@medusajs/link-modules": patch +--- + +Recreate dismissed link diff --git a/integration-tests/modules/__tests__/link-modules/index.ts b/integration-tests/modules/__tests__/link-modules/index.ts index 6d3b2f9715..2fdeb56dcf 100644 --- a/integration-tests/modules/__tests__/link-modules/index.ts +++ b/integration-tests/modules/__tests__/link-modules/index.ts @@ -238,6 +238,35 @@ medusaIntegrationTestRunner({ }), ]) }) + + it("Should dismiss the link of a given pair of keys and recreate it", async function () { + await links.linkServiceName.create("123", "abc", { + extra_field: 333, + another_field: "value**", + }) + + await links.linkServiceName.dismiss("123", "abc") + + const values = await links.linkServiceName.list() + + expect(values).toHaveLength(0) + + await links.linkServiceName.create("123", "abc", { + another_field: "changed", + }) + + const values2 = await links.linkServiceName.list() + + expect(values2).toEqual([ + expect.objectContaining({ + product_id: "123", + inventory_item_id: "abc", + extra_field: 333, + another_field: "changed", + deleted_at: null, + }), + ]) + }) }) }, }) diff --git a/packages/link-modules/src/repositories/link.ts b/packages/link-modules/src/repositories/link.ts index ee64ccf500..04ff247fcc 100644 --- a/packages/link-modules/src/repositories/link.ts +++ b/packages/link-modules/src/repositories/link.ts @@ -37,6 +37,7 @@ export function getLinkRepository(model: EntitySchema) { link.id, this.joinerConfig_.databaseConfig?.idPrefix ?? "link" ) + link.deleted_at = null return manager.create(model, link) }) diff --git a/packages/link-modules/src/utils/generate-entity.ts b/packages/link-modules/src/utils/generate-entity.ts index 19f49a96fc..8b5b9fc3e5 100644 --- a/packages/link-modules/src/utils/generate-entity.ts +++ b/packages/link-modules/src/utils/generate-entity.ts @@ -84,6 +84,13 @@ export function generateEntity( filters: { [SoftDeletableFilterKey]: mikroOrmSoftDeletableFilterOptions, }, + hooks: { + beforeUpdate: [ + (args) => { + args.entity.updated_at = new Date() + }, + ], + }, indexes: [ { properties: ["id"],