@@ -12,6 +12,8 @@ import type { NextFunction, Response } from 'express'
1212import { prisma } from '@/prisma'
1313import { BadRequest , NotFound } from 'http-errors'
1414
15+ import { redis } from '@/config'
16+
1517class CardController {
1618 add = async (
1719 {
@@ -22,7 +24,8 @@ class CardController {
2224 next : NextFunction
2325 ) => {
2426 const column = await prisma . column . findFirst ( {
25- where : { id : params . columnId }
27+ where : { id : params . columnId } ,
28+ select : { id : true , boardId : true , board : { select : { userId : true } } }
2629 } )
2730
2831 if ( ! column ) return next ( NotFound ( 'Column not found' ) )
@@ -33,6 +36,8 @@ class CardController {
3336 data : { ...body , columnId : column . id , order : newOrder }
3437 } )
3538
39+ await redis . del ( `board:${ column . boardId } :user:${ column . board . userId } ` )
40+
3641 res . json ( newCard )
3742 }
3843
@@ -46,11 +51,20 @@ class CardController {
4651 ) => {
4752 const updatedCard = await prisma . card . updateIgnoreNotFound ( {
4853 where : { id : params . cardId } ,
49- data : body
54+ data : body ,
55+ select : {
56+ column : {
57+ select : { boardId : true , board : { select : { userId : true } } }
58+ }
59+ }
5060 } )
5161
5262 if ( ! updatedCard ) return next ( NotFound ( 'Card not found' ) )
5363
64+ await redis . del (
65+ `board:${ updatedCard . column . boardId } :user:${ updatedCard . column . board . userId } `
66+ )
67+
5468 res . json ( updatedCard )
5569 }
5670
@@ -63,7 +77,8 @@ class CardController {
6377 next : NextFunction
6478 ) => {
6579 const column = await prisma . column . findFirst ( {
66- where : { id : params . columnId }
80+ where : { id : params . columnId } ,
81+ select : { id : true , boardId : true , board : { select : { userId : true } } }
6782 } )
6883
6984 if ( ! column ) return next ( NotFound ( 'Column not found' ) )
@@ -77,6 +92,9 @@ class CardController {
7792
7893 try {
7994 const updatedCards = await prisma . $transaction ( transaction )
95+
96+ await redis . del ( `board:${ column . boardId } :user:${ column . board . userId } ` )
97+
8098 res . json ( updatedCards )
8199 } catch {
82100 return next ( BadRequest ( 'Invalid order' ) )
@@ -89,7 +107,8 @@ class CardController {
89107 next : NextFunction
90108 ) => {
91109 const column = await prisma . column . findFirst ( {
92- where : { id : params . newColumnId }
110+ where : { id : params . newColumnId } ,
111+ select : { id : true , boardId : true , board : { select : { userId : true } } }
93112 } )
94113
95114 if ( ! column ) return next ( NotFound ( 'Column not found' ) )
@@ -103,6 +122,8 @@ class CardController {
103122
104123 if ( ! updatedCard ) return next ( NotFound ( 'Card not found' ) )
105124
125+ await redis . del ( `board:${ column . boardId } :user:${ column . board . userId } ` )
126+
106127 res . json ( updatedCard )
107128 }
108129
@@ -112,12 +133,21 @@ class CardController {
112133 next : NextFunction
113134 ) => {
114135 const deletedCard = await prisma . card . deleteIgnoreNotFound ( {
115- where : { id : params . cardId }
136+ where : { id : params . cardId } ,
137+ select : {
138+ column : {
139+ select : { boardId : true , board : { select : { userId : true } } }
140+ }
141+ }
116142 } )
117143
118144 if ( ! deletedCard ) return next ( NotFound ( 'Card not found' ) )
119145
120- res . status ( 204 ) . send ( )
146+ await redis . del (
147+ `board:${ deletedCard . column . boardId } :user:${ deletedCard . column . board . userId } `
148+ )
149+
150+ res . sendStatus ( 204 )
121151 }
122152
123153 private getNewCardOrder = async ( columnId : string ) => {
0 commit comments