|
|
@@ -1,5 +1,6 @@
|
|
|
import { createRoute, OpenAPIHono, extendZodWithOpenApi } from '@hono/zod-openapi';
|
|
|
-import { z } from '@hono/zod-openapi';
|
|
|
+import { z } from 'zod';
|
|
|
+import type { ZodError } from 'zod';
|
|
|
import { ObjectLiteral } from 'typeorm';
|
|
|
import { CrudOptions } from '../services/generic-crud.service';
|
|
|
import { ErrorSchema } from '@d8d/shared-utils';
|
|
|
@@ -313,17 +314,19 @@ export function createCrudRoutes<
|
|
|
}, 200);
|
|
|
} catch (validationError) {
|
|
|
if (validationError instanceof z.ZodError) {
|
|
|
+ const zodError = validationError as ZodError;
|
|
|
return c.json({
|
|
|
code: 400,
|
|
|
message: '参数验证失败',
|
|
|
- errors: validationError.errors || validationError.message
|
|
|
+ errors: (zodError as any).errors || validationError.message
|
|
|
}, 400);
|
|
|
}
|
|
|
throw validationError;
|
|
|
}
|
|
|
} catch (error) {
|
|
|
if (error instanceof z.ZodError) {
|
|
|
- return c.json({ code: 400, message: '参数验证失败', errors: error.errors || error.message }, 400);
|
|
|
+ const zodError = error as ZodError;
|
|
|
+ return c.json({ code: 400, message: '参数验证失败', errors: (zodError as any).errors || error.message }, 400);
|
|
|
}
|
|
|
return c.json({
|
|
|
code: 500,
|
|
|
@@ -360,7 +363,8 @@ export function createCrudRoutes<
|
|
|
return c.json(await parseWithAwait(getSchema, result), 201);
|
|
|
} catch (error) {
|
|
|
if (error instanceof z.ZodError) {
|
|
|
- return c.json({ code: 400, message: '参数验证失败', errors: error.errors || error.message }, 400);
|
|
|
+ const zodError = error as ZodError;
|
|
|
+ return c.json({ code: 400, message: '参数验证失败', errors: (zodError as any).errors || error.message }, 400);
|
|
|
}
|
|
|
|
|
|
// 处理数据库唯一约束错误
|
|
|
@@ -427,7 +431,8 @@ export function createCrudRoutes<
|
|
|
return c.json(await parseWithAwait(getSchema, result), 200);
|
|
|
} catch (error) {
|
|
|
if (error instanceof z.ZodError) {
|
|
|
- return c.json({ code: 400, message: '参数验证失败', errors: error.errors || error.message }, 400);
|
|
|
+ const zodError = error as ZodError;
|
|
|
+ return c.json({ code: 400, message: '参数验证失败', errors: (zodError as any).errors || error.message }, 400);
|
|
|
}
|
|
|
if (error instanceof PermissionError) {
|
|
|
// GET操作中,权限错误应该返回404而不是403
|
|
|
@@ -474,7 +479,8 @@ export function createCrudRoutes<
|
|
|
return c.json(await parseWithAwait(getSchema, result), 200);
|
|
|
} catch (error) {
|
|
|
if (error instanceof z.ZodError) {
|
|
|
- return c.json({ code: 400, message: '参数验证失败', errors: error.errors || error.message }, 400);
|
|
|
+ const zodError = error as ZodError;
|
|
|
+ return c.json({ code: 400, message: '参数验证失败', errors: (zodError as any).errors || error.message }, 400);
|
|
|
}
|
|
|
|
|
|
// 处理权限错误,返回403状态码
|
|
|
@@ -524,7 +530,8 @@ export function createCrudRoutes<
|
|
|
return c.body(null, 204);
|
|
|
} catch (error) {
|
|
|
if (error instanceof z.ZodError) {
|
|
|
- return c.json({ code: 400, message: '参数验证失败', errors: error.errors || error.message }, 400);
|
|
|
+ const zodError = error as ZodError;
|
|
|
+ return c.json({ code: 400, message: '参数验证失败', errors: (zodError as any).errors || error.message }, 400);
|
|
|
}
|
|
|
|
|
|
// 处理权限错误,返回403状态码
|
|
|
@@ -609,7 +616,8 @@ export function createCrudRoutes<
|
|
|
}, 200);
|
|
|
} catch (error) {
|
|
|
if (error instanceof z.ZodError) {
|
|
|
- return c.json({ code: 400, message: '参数验证失败', errors: error.errors || error.message }, 400);
|
|
|
+ const zodError = error as ZodError;
|
|
|
+ return c.json({ code: 400, message: '参数验证失败', errors: (zodError as any).errors || error.message }, 400);
|
|
|
}
|
|
|
|
|
|
// 处理权限错误,返回403状态码
|
|
|
@@ -670,7 +678,8 @@ export function createCrudRoutes<
|
|
|
return c.json(await parseWithAwait(getSchema, result), 200);
|
|
|
} catch (error) {
|
|
|
if (error instanceof z.ZodError) {
|
|
|
- return c.json({ code: 400, message: '参数验证失败', errors: error.errors || error.message }, 400);
|
|
|
+ const zodError = error as ZodError;
|
|
|
+ return c.json({ code: 400, message: '参数验证失败', errors: (zodError as any).errors || error.message }, 400);
|
|
|
}
|
|
|
if (error instanceof PermissionError) {
|
|
|
return c.json({ code: 403, message: error.message }, 403);
|