From c0859f73a45b42710f3fde92902b40b96c0d71aa Mon Sep 17 00:00:00 2001 From: Bosn Date: Mon, 7 May 2018 11:30:50 +0800 Subject: [PATCH] fix module cache bug --- src/models/bo/module.ts | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/models/bo/module.ts b/src/models/bo/module.ts index e373ed5..243a323 100644 --- a/src/models/bo/module.ts +++ b/src/models/bo/module.ts @@ -1,8 +1,30 @@ -import { Table, Column, Model, HasMany, AutoIncrement, PrimaryKey, AllowNull, DataType, Default, BelongsTo, ForeignKey } from 'sequelize-typescript' +import { Table, Column, Model, HasMany, AutoIncrement, PrimaryKey, AllowNull, DataType, Default, BelongsTo, ForeignKey, BeforeCreate, BeforeUpdate, BeforeDelete, BeforeBulkCreate, BeforeBulkDelete, BeforeBulkUpdate } from 'sequelize-typescript' import { User, Repository, Interface } from '../' +import RedisService, { CACHE_KEY } from '../../service/redis'; @Table({ paranoid: true, freezeTableName: false, timestamps: true }) export default class Module extends Model { +/** hooks */ + @BeforeCreate + @BeforeUpdate + @BeforeDelete + static async deleteCache(instance: Interface) { + await RedisService.delCache(CACHE_KEY.REPOSITORY_GET, instance.repositoryId) + } + + @BeforeBulkCreate + @BeforeBulkUpdate + @BeforeBulkDelete + static async bulkDeleteCache(options: any) { + let id: number = options && options.attributes && options.attributes.id + if (!id) { + id = options.where && +options.where.id + } + if (id) { + const mod = await Module.findById(id) + await RedisService.delCache(CACHE_KEY.REPOSITORY_GET, mod.repositoryId) + } + } @AutoIncrement @PrimaryKey