@@ -3,7 +3,6 @@ import type {
33 CardParamsSchema ,
44 ColumnParamsSchema ,
55 EditCardSchema ,
6- MoveCardSchema ,
76 UpdateCardOrderSchema
87} from '@/schemas'
98import type { NextFunction , Response } from 'express'
@@ -13,7 +12,7 @@ import type { TypedRequest, TypedRequestParams } from 'zod-express-middleware'
1312import { prisma } from '@/prisma'
1413import { BadRequest , NotFound } from 'http-errors'
1514
16- import { redis } from '@/config'
15+ import { redisClient } from '@/config'
1716
1817class CardController {
1918 add = async (
@@ -26,7 +25,7 @@ class CardController {
2625 ) => {
2726 const column = await prisma . column . findFirst ( {
2827 where : { id : params . columnId } ,
29- select : { id : true , boardId : true , board : { select : { userId : true } } }
28+ include : { board : { select : { userId : true } } }
3029 } )
3130
3231 if ( ! column ) return next ( NotFound ( 'Column not found' ) )
@@ -37,7 +36,7 @@ class CardController {
3736 data : { ...body , columnId : column . id , order : newOrder }
3837 } )
3938
40- await redis . del ( `board:${ column . boardId } :user:${ column . board . userId } ` )
39+ await redisClient . del ( `board:${ column . boardId } :user:${ column . board . userId } ` )
4140
4241 res . json ( newCard )
4342 }
@@ -50,23 +49,28 @@ class CardController {
5049 res : Response ,
5150 next : NextFunction
5251 ) => {
52+ if ( body . columnId ) {
53+ const column = await prisma . column . findFirst ( {
54+ where : { id : body . columnId } ,
55+ include : { board : { select : { userId : true } } }
56+ } )
57+
58+ if ( ! column ) return next ( NotFound ( 'Column not found' ) )
59+ }
60+
5361 const updatedCard = await prisma . card . updateIgnoreNotFound ( {
5462 where : { id : params . cardId } ,
5563 data : body ,
56- select : {
57- column : {
58- select : { boardId : true , board : { select : { userId : true } } }
59- }
60- }
64+ include : { column : { include : { board : { select : { userId : true } } } } }
6165 } )
6266
6367 if ( ! updatedCard ) return next ( NotFound ( 'Card not found' ) )
6468
65- await redis . del (
66- `board: ${ updatedCard . column . boardId } :user: ${ updatedCard . column . board . userId } `
67- )
69+ const { column , ... card } = updatedCard
70+
71+ await redisClient . del ( `board: ${ column . boardId } :user: ${ column . board . userId } ` )
6872
69- res . json ( updatedCard )
73+ res . json ( card )
7074 }
7175
7276 updateOrder = async (
@@ -83,7 +87,7 @@ class CardController {
8387 ) => {
8488 const column = await prisma . column . findFirst ( {
8589 where : { id : params . columnId } ,
86- select : { id : true , boardId : true , board : { select : { userId : true } } }
90+ include : { board : { select : { userId : true } } }
8791 } )
8892
8993 if ( ! column ) return next ( NotFound ( 'Column not found' ) )
@@ -98,57 +102,29 @@ class CardController {
98102 try {
99103 const updatedCards = await prisma . $transaction ( transaction )
100104
101- await redis . del ( `board:${ column . boardId } :user:${ column . board . userId } ` )
105+ await redisClient . del (
106+ `board:${ column . boardId } :user:${ column . board . userId } `
107+ )
102108
103109 res . json ( updatedCards )
104110 } catch {
105111 return next ( BadRequest ( 'Invalid order' ) )
106112 }
107113 }
108114
109- move = async (
110- { params } : TypedRequestParams < typeof MoveCardSchema > ,
111- res : Response ,
112- next : NextFunction
113- ) => {
114- const column = await prisma . column . findFirst ( {
115- where : { id : params . newColumnId } ,
116- select : { id : true , boardId : true , board : { select : { userId : true } } }
117- } )
118-
119- if ( ! column ) return next ( NotFound ( 'Column not found' ) )
120-
121- const newOrder = await this . getNewCardOrder ( column . id )
122-
123- const updatedCard = await prisma . card . updateIgnoreNotFound ( {
124- where : { id : params . cardId } ,
125- data : { columnId : column . id , order : newOrder }
126- } )
127-
128- if ( ! updatedCard ) return next ( NotFound ( 'Card not found' ) )
129-
130- await redis . del ( `board:${ column . boardId } :user:${ column . board . userId } ` )
131-
132- res . json ( updatedCard )
133- }
134-
135115 deleteById = async (
136116 { params } : TypedRequestParams < typeof CardParamsSchema > ,
137117 res : Response ,
138118 next : NextFunction
139119 ) => {
140120 const deletedCard = await prisma . card . deleteIgnoreNotFound ( {
141121 where : { id : params . cardId } ,
142- select : {
143- column : {
144- select : { boardId : true , board : { select : { userId : true } } }
145- }
146- }
122+ include : { column : { include : { board : { select : { userId : true } } } } }
147123 } )
148124
149125 if ( ! deletedCard ) return next ( NotFound ( 'Card not found' ) )
150126
151- await redis . del (
127+ await redisClient . del (
152128 `board:${ deletedCard . column . boardId } :user:${ deletedCard . column . board . userId } `
153129 )
154130
0 commit comments