Skip to content

Commit 536e8a2

Browse files
committed
fix: prevent transaction to throw an error
1 parent ad155e3 commit 536e8a2

File tree

3 files changed

+17
-9
lines changed

3 files changed

+17
-9
lines changed

app/app.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import type { NextFunction, Request, Response } from 'express'
22

33
import express from 'express'
4-
import cors from 'cors'
54
import logger from 'morgan'
65
import swaggerUi from 'swagger-ui-express'
76

@@ -34,7 +33,7 @@ app.listen(Number(process.env.PORT) || 5432, () => {
3433
const appRouter = express.Router()
3534

3635
app.use(logger('dev'))
37-
app.use(cors({ origin: process.env.ALLOWED_ORIGINS }))
36+
// app.use(cors({ origin: process.env.ALLOWED_ORIGINS }))
3837
app.use(express.json())
3938
app.disable('x-powered-by')
4039

app/routes/api/board.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,7 @@ boardRouter.get(
3232
const board = await prisma.board.findFirst({
3333
where: { id: params.boardId, userId: user.id },
3434
include: {
35-
columns: {
36-
include: { cards: { orderBy: { order: 'asc' } } }
37-
}
35+
columns: { include: { cards: { orderBy: { order: 'asc' } } } }
3836
}
3937
})
4038

app/routes/api/card.ts

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,16 +79,27 @@ cardRouter.patch(
7979
'/:columnId/order',
8080
validateRequestParams(ColumnParamsSchema),
8181
validateRequestBody(UpdateCardOrderSchema),
82-
async ({ params, body }, res) => {
82+
async ({ params, body }, res, next) => {
83+
const column = await prisma.column.findFirst({
84+
where: { id: params.columnId }
85+
})
86+
87+
if (!column) {
88+
return next(createHttpError(404, 'Column not found'))
89+
}
90+
8391
const transaction = body.ids.map((id, order) =>
8492
prisma.card.update({
8593
where: { id },
8694
data: { order, columnId: params.columnId }
8795
})
8896
)
8997

90-
const updatedCards = await prisma.$transaction(transaction)
91-
92-
res.json(updatedCards)
98+
try {
99+
const updatedCards = await prisma.$transaction(transaction)
100+
res.json(updatedCards)
101+
} catch {
102+
return next(createHttpError(400, 'Invalid order'))
103+
}
93104
}
94105
)

0 commit comments

Comments
 (0)