修复接单端过期会话重复请求
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
import assert from 'node:assert/strict'
|
||||
import test from 'node:test'
|
||||
|
||||
import { resolveRouteErrorLogLevel } from './http.js'
|
||||
|
||||
test('expected worker session expiry is debug-level', () => {
|
||||
assert.equal(
|
||||
resolveRouteErrorLogLevel({ statusCode: 401, errorCode: 'worker_auth_expired' }),
|
||||
'debug',
|
||||
)
|
||||
assert.equal(
|
||||
resolveRouteErrorLogLevel({ statusCode: 401, errorCode: 'worker_auth_invalid' }),
|
||||
'warn',
|
||||
)
|
||||
assert.equal(resolveRouteErrorLogLevel({ statusCode: 500, errorCode: 'internal_error' }), 'error')
|
||||
})
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { Request, Response } from 'express'
|
||||
import { logError, logWarn } from './logger.js'
|
||||
import { logDebug, logError, logWarn } from './logger.js'
|
||||
|
||||
const RESPONSE_TIME_ZONE = 'Asia/Shanghai'
|
||||
|
||||
@@ -52,7 +52,8 @@ export function sendRouteError(
|
||||
scope = '[route]',
|
||||
): void {
|
||||
const classification = classifyRouteError(error)
|
||||
const logger = classification.statusCode >= 500 ? logError : logWarn
|
||||
const logLevel = resolveRouteErrorLogLevel(classification)
|
||||
const logger = logLevel === 'error' ? logError : logLevel === 'debug' ? logDebug : logWarn
|
||||
logger(scope, fallbackMessage, {
|
||||
statusCode: classification.statusCode,
|
||||
errorCode: classification.errorCode,
|
||||
@@ -62,6 +63,15 @@ export function sendRouteError(
|
||||
res.status(classification.statusCode).json(buildErrorPayload(error, fallbackMessage))
|
||||
}
|
||||
|
||||
export function resolveRouteErrorLogLevel(classification: {
|
||||
statusCode: number
|
||||
errorCode: string
|
||||
}): 'debug' | 'warn' | 'error' {
|
||||
if (classification.statusCode >= 500) return 'error'
|
||||
if (classification.errorCode === 'worker_auth_expired') return 'debug'
|
||||
return 'warn'
|
||||
}
|
||||
|
||||
export function buildNotFoundPayload(req: Request) {
|
||||
return {
|
||||
code: 1,
|
||||
|
||||
Reference in New Issue
Block a user