|
|
@@ -1,6 +1,6 @@
|
|
|
import { createRoute, OpenAPIHono } from '@hono/zod-openapi';
|
|
|
import { z } from '@hono/zod-openapi';
|
|
|
-import { AppDataSource, ErrorSchema, ZodErrorSchema, parseWithAwait } from '@d8d/shared-utils';
|
|
|
+import { AppDataSource, ErrorSchema, ZodErrorSchema, parseWithAwait, createZodErrorResponse } from '@d8d/shared-utils';
|
|
|
import { authMiddleware } from '@d8d/auth-module';
|
|
|
import { AuthContext } from '@d8d/shared-types';
|
|
|
import { SalaryService } from '../services/salary.service';
|
|
|
@@ -256,27 +256,7 @@ const app = new OpenAPIHono<AuthContext>()
|
|
|
return c.json(await parseWithAwait(SalaryLevelSchema, result), 200);
|
|
|
} catch (error) {
|
|
|
if (error instanceof z.ZodError) {
|
|
|
- return c.json({
|
|
|
- code: 400,
|
|
|
- message: '参数错误',
|
|
|
- errors: error.issues.map(issue => {
|
|
|
- const mappedIssue: any = {
|
|
|
- code: issue.code,
|
|
|
- path: issue.path,
|
|
|
- message: issue.message
|
|
|
- };
|
|
|
-
|
|
|
- // 可选字段,使用类型断言
|
|
|
- if ('expected' in issue) mappedIssue.expected = issue.expected as string;
|
|
|
- if ('received' in issue) mappedIssue.received = issue.received as string;
|
|
|
- if ('origin' in issue) mappedIssue.origin = issue.origin as string;
|
|
|
- if ('minimum' in issue) mappedIssue.minimum = issue.minimum as number;
|
|
|
- if ('maximum' in issue) mappedIssue.maximum = issue.maximum as number;
|
|
|
- if ('inclusive' in issue) mappedIssue.inclusive = issue.inclusive as boolean;
|
|
|
-
|
|
|
- return mappedIssue;
|
|
|
- })
|
|
|
- }, 400);
|
|
|
+ return c.json(createZodErrorResponse(error), 400);
|
|
|
}
|
|
|
|
|
|
// 处理区域重复错误
|
|
|
@@ -325,27 +305,7 @@ const app = new OpenAPIHono<AuthContext>()
|
|
|
return c.json(validatedResult, 200);
|
|
|
} catch (error) {
|
|
|
if (error instanceof z.ZodError) {
|
|
|
- return c.json({
|
|
|
- code: 400,
|
|
|
- message: '参数错误',
|
|
|
- errors: error.issues.map(issue => {
|
|
|
- const mappedIssue: any = {
|
|
|
- code: issue.code,
|
|
|
- path: issue.path,
|
|
|
- message: issue.message
|
|
|
- };
|
|
|
-
|
|
|
- // 可选字段,使用类型断言
|
|
|
- if ('expected' in issue) mappedIssue.expected = issue.expected as string;
|
|
|
- if ('received' in issue) mappedIssue.received = issue.received as string;
|
|
|
- if ('origin' in issue) mappedIssue.origin = issue.origin as string;
|
|
|
- if ('minimum' in issue) mappedIssue.minimum = issue.minimum as number;
|
|
|
- if ('maximum' in issue) mappedIssue.maximum = issue.maximum as number;
|
|
|
- if ('inclusive' in issue) mappedIssue.inclusive = issue.inclusive as boolean;
|
|
|
-
|
|
|
- return mappedIssue;
|
|
|
- })
|
|
|
- }, 400);
|
|
|
+ return c.json(createZodErrorResponse(error), 400);
|
|
|
}
|
|
|
|
|
|
// 处理区域重复错误
|
|
|
@@ -400,27 +360,7 @@ const app = new OpenAPIHono<AuthContext>()
|
|
|
return c.json({ success }, 200);
|
|
|
} catch (error) {
|
|
|
if (error instanceof z.ZodError) {
|
|
|
- return c.json({
|
|
|
- code: 400,
|
|
|
- message: '参数错误',
|
|
|
- errors: error.issues.map(issue => {
|
|
|
- const mappedIssue: any = {
|
|
|
- code: issue.code,
|
|
|
- path: issue.path,
|
|
|
- message: issue.message
|
|
|
- };
|
|
|
-
|
|
|
- // 可选字段,使用类型断言
|
|
|
- if ('expected' in issue) mappedIssue.expected = issue.expected as string;
|
|
|
- if ('received' in issue) mappedIssue.received = issue.received as string;
|
|
|
- if ('origin' in issue) mappedIssue.origin = issue.origin as string;
|
|
|
- if ('minimum' in issue) mappedIssue.minimum = issue.minimum as number;
|
|
|
- if ('maximum' in issue) mappedIssue.maximum = issue.maximum as number;
|
|
|
- if ('inclusive' in issue) mappedIssue.inclusive = issue.inclusive as boolean;
|
|
|
-
|
|
|
- return mappedIssue;
|
|
|
- })
|
|
|
- }, 400);
|
|
|
+ return c.json(createZodErrorResponse(error), 400);
|
|
|
}
|
|
|
|
|
|
return c.json({
|
|
|
@@ -451,27 +391,7 @@ const app = new OpenAPIHono<AuthContext>()
|
|
|
return c.json({ data: validatedData, total: result.total }, 200);
|
|
|
} catch (error) {
|
|
|
if (error instanceof z.ZodError) {
|
|
|
- return c.json({
|
|
|
- code: 400,
|
|
|
- message: '参数错误',
|
|
|
- errors: error.issues.map(issue => {
|
|
|
- const mappedIssue: any = {
|
|
|
- code: issue.code,
|
|
|
- path: issue.path,
|
|
|
- message: issue.message
|
|
|
- };
|
|
|
-
|
|
|
- // 可选字段,使用类型断言
|
|
|
- if ('expected' in issue) mappedIssue.expected = issue.expected as string;
|
|
|
- if ('received' in issue) mappedIssue.received = issue.received as string;
|
|
|
- if ('origin' in issue) mappedIssue.origin = issue.origin as string;
|
|
|
- if ('minimum' in issue) mappedIssue.minimum = issue.minimum as number;
|
|
|
- if ('maximum' in issue) mappedIssue.maximum = issue.maximum as number;
|
|
|
- if ('inclusive' in issue) mappedIssue.inclusive = issue.inclusive as boolean;
|
|
|
-
|
|
|
- return mappedIssue;
|
|
|
- })
|
|
|
- }, 400);
|
|
|
+ return c.json(createZodErrorResponse(error), 400);
|
|
|
}
|
|
|
|
|
|
return c.json({
|
|
|
@@ -496,27 +416,7 @@ const app = new OpenAPIHono<AuthContext>()
|
|
|
return c.json(validatedResult, 200);
|
|
|
} catch (error) {
|
|
|
if (error instanceof z.ZodError) {
|
|
|
- return c.json({
|
|
|
- code: 400,
|
|
|
- message: '参数错误',
|
|
|
- errors: error.issues.map(issue => {
|
|
|
- const mappedIssue: any = {
|
|
|
- code: issue.code,
|
|
|
- path: issue.path,
|
|
|
- message: issue.message
|
|
|
- };
|
|
|
-
|
|
|
- // 可选字段,使用类型断言
|
|
|
- if ('expected' in issue) mappedIssue.expected = issue.expected as string;
|
|
|
- if ('received' in issue) mappedIssue.received = issue.received as string;
|
|
|
- if ('origin' in issue) mappedIssue.origin = issue.origin as string;
|
|
|
- if ('minimum' in issue) mappedIssue.minimum = issue.minimum as number;
|
|
|
- if ('maximum' in issue) mappedIssue.maximum = issue.maximum as number;
|
|
|
- if ('inclusive' in issue) mappedIssue.inclusive = issue.inclusive as boolean;
|
|
|
-
|
|
|
- return mappedIssue;
|
|
|
- })
|
|
|
- }, 400);
|
|
|
+ return c.json(createZodErrorResponse(error), 400);
|
|
|
}
|
|
|
|
|
|
return c.json({
|
|
|
@@ -541,27 +441,7 @@ const app = new OpenAPIHono<AuthContext>()
|
|
|
return c.json(validatedResult, 200);
|
|
|
} catch (error) {
|
|
|
if (error instanceof z.ZodError) {
|
|
|
- return c.json({
|
|
|
- code: 400,
|
|
|
- message: '参数错误',
|
|
|
- errors: error.issues.map(issue => {
|
|
|
- const mappedIssue: any = {
|
|
|
- code: issue.code,
|
|
|
- path: issue.path,
|
|
|
- message: issue.message
|
|
|
- };
|
|
|
-
|
|
|
- // 可选字段,使用类型断言
|
|
|
- if ('expected' in issue) mappedIssue.expected = issue.expected as string;
|
|
|
- if ('received' in issue) mappedIssue.received = issue.received as string;
|
|
|
- if ('origin' in issue) mappedIssue.origin = issue.origin as string;
|
|
|
- if ('minimum' in issue) mappedIssue.minimum = issue.minimum as number;
|
|
|
- if ('maximum' in issue) mappedIssue.maximum = issue.maximum as number;
|
|
|
- if ('inclusive' in issue) mappedIssue.inclusive = issue.inclusive as boolean;
|
|
|
-
|
|
|
- return mappedIssue;
|
|
|
- })
|
|
|
- }, 400);
|
|
|
+ return c.json(createZodErrorResponse(error), 400);
|
|
|
}
|
|
|
|
|
|
if (error instanceof Error && error.message.includes('该省份城市的薪资记录不存在')) {
|