Skip to content

Commit

Permalink
apply suggestions
Browse files Browse the repository at this point in the history
  • Loading branch information
likui628 committed Oct 4, 2024
1 parent 8e2e4b2 commit a4f8d05
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 25 deletions.
12 changes: 6 additions & 6 deletions src/controllers/auth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ export const logout = asyncHandler(async (req: Request, res: Response) => {
export const refresh = asyncHandler(async (req: Request, res: Response) => {
const cookies = req.cookies
if (!cookies?.refreshToken) {
res.jsonFail(401, 'Unauthorized')
res.jsonFail(401, 'Refresh token not found')
}
const refreshToken = cookies.refreshToken as string
res.clearCookie('refreshToken', {
Expand All @@ -67,14 +67,14 @@ export const refresh = asyncHandler(async (req: Request, res: Response) => {

const tokenInfo = await tokenService.verifyToken(refreshToken)
if (!tokenInfo) {
res.jsonFail(401, 'Unauthorized')
res.jsonFail(401, 'Invalid refresh token')
}

const user = await userService.getUserById(tokenInfo.userId)
if (!user) {
res.jsonFail(401, 'Unauthorized')
res.jsonFail(401, 'User not found')
} else {
const token = await handleTokens(user!, res)
res.jsonSuccess<string>(token, 200)
}

const token = await handleTokens(user!, res)
res.jsonSuccess<string>(token, 200)
})
20 changes: 2 additions & 18 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,9 @@ import app from './app'
import env from './config/env'
import { logger } from './config/logger'

import './types/custom-express'

const port = env.PORT || 5000
app.listen(port, () => {
logger.info(`Listening to port ${port}`)
})

import { Role, User } from '@prisma/client'

declare module 'express-serve-static-core' {
interface CustomUser extends Express.User {
id?: User['id']
username?: User['name']
role?: Role
}
interface Request {
user?: CustomUser
}

interface Response {
jsonSuccess: <T>(data: T, statusCode?: number, message?: string) => void
jsonFail: (code: number, message?: string) => void
}
}
7 changes: 6 additions & 1 deletion src/middlewares/response.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,16 @@ export const responseMiddleware = (
})
}

res.jsonFail = (code, message = 'Fail'): void => {
res.jsonFail = (
code,
message = 'An error occurred',
error?: unknown,
): void => {
res.status(code)
res.json({
code,
message,
error,
})
}

Expand Down
21 changes: 21 additions & 0 deletions src/types/custom-express.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { Role } from '@prisma/client'

declare global {
// eslint-disable-next-line @typescript-eslint/no-namespace
namespace Express {
interface User {
id: string
username: string
role: Role
}

interface Request {
user?: User
}

interface Response {
jsonSuccess<T>(data: T, code?: number, message?: string): void
jsonFail(code: number, message?: string, error?: unknown): void
}
}
}

0 comments on commit a4f8d05

Please sign in to comment.