From c3736d0a753ca1921f6b71c023e9229979667bc2 Mon Sep 17 00:00:00 2001 From: ShubhamPalriwala Date: Sat, 19 Mar 2022 23:27:48 +0530 Subject: [PATCH] init: sequelize hooks --- models/relations.ts | 9 +++++++++ test/api/basketItemApiSpec.ts | 8 ++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/models/relations.ts b/models/relations.ts index 0fa08a17f2b..8dd52bbaa65 100644 --- a/models/relations.ts +++ b/models/relations.ts @@ -136,6 +136,15 @@ const relationsInit = (_sequelize: Sequelize) => { name: 'UserId' } }) + + BasketItemModel.addHook('beforeUpdate', 'dontUpdateId', (basketItem:any, options) => { // TODO: any + if(basketItem.dataValues.BasketId!=basketItem._previousDataValues.BasketId){ + return Promise.reject(new Error("null: `BasketId` cannot be updated due `dontUpdateId` constraint")); + } + if(basketItem.dataValues.ProductId!=basketItem._previousDataValues.ProductId){ + return Promise.reject(new Error("null: `ProductId` cannot be updated due `dontUpdateId` constraint")); + } + }); } export { relationsInit } diff --git a/test/api/basketItemApiSpec.ts b/test/api/basketItemApiSpec.ts index 655733e5373..824c235e78c 100644 --- a/test/api/basketItemApiSpec.ts +++ b/test/api/basketItemApiSpec.ts @@ -157,8 +157,8 @@ describe('/api/BasketItems/:id', () => { BasketId: 42 } }) - .expect('status', 400) - .expect('json', { message: 'null: `BasketId` cannot be updated due `noUpdate` constraint', errors: [{ field: 'BasketId', message: '`BasketId` cannot be updated due `noUpdate` constraint' }] }) + .expect('status', 500) + .expect('json', { message: 'internal error', errors: ["null: `BasketId` cannot be updated due `dontUpdateId` constraint"] }) }) }) @@ -201,8 +201,8 @@ describe('/api/BasketItems/:id', () => { ProductId: 42 } }) - .expect('status', 400) - .expect('json', { message: 'null: `ProductId` cannot be updated due `noUpdate` constraint', errors: [{ field: 'ProductId', message: '`ProductId` cannot be updated due `noUpdate` constraint' }] }) + .expect('status', 500) + .expect('json', { message: 'internal error', errors: ["null: `ProductId` cannot be updated due `dontUpdateId` constraint"] }) }) })