|
@@ -13,13 +13,13 @@ export function createCrudRoutes<
|
|
|
GetSchema extends z.ZodSchema = z.ZodSchema,
|
|
GetSchema extends z.ZodSchema = z.ZodSchema,
|
|
|
ListSchema extends z.ZodSchema = z.ZodSchema
|
|
ListSchema extends z.ZodSchema = z.ZodSchema
|
|
|
>(options: CrudOptions<T, CreateSchema, UpdateSchema, GetSchema, ListSchema>) {
|
|
>(options: CrudOptions<T, CreateSchema, UpdateSchema, GetSchema, ListSchema>) {
|
|
|
- const { entity, createSchema, updateSchema, getSchema, listSchema, searchFields, relations, middleware = [] } = options;
|
|
|
|
|
|
|
+ const { entity, createSchema, updateSchema, getSchema, listSchema, searchFields, relations, middleware = [], userTracking } = options;
|
|
|
|
|
|
|
|
// 创建CRUD服务实例
|
|
// 创建CRUD服务实例
|
|
|
// 抽象类不能直接实例化,需要创建具体实现类
|
|
// 抽象类不能直接实例化,需要创建具体实现类
|
|
|
class ConcreteCrudService extends GenericCrudService<T> {
|
|
class ConcreteCrudService extends GenericCrudService<T> {
|
|
|
constructor() {
|
|
constructor() {
|
|
|
- super(AppDataSource, entity);
|
|
|
|
|
|
|
+ super(AppDataSource, entity, { userTracking });
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
const crudService = new ConcreteCrudService();
|
|
const crudService = new ConcreteCrudService();
|
|
@@ -269,7 +269,8 @@ export function createCrudRoutes<
|
|
|
.openapi(createRouteDef, async (c: any) => {
|
|
.openapi(createRouteDef, async (c: any) => {
|
|
|
try {
|
|
try {
|
|
|
const data = c.req.valid('json');
|
|
const data = c.req.valid('json');
|
|
|
- const result = await crudService.create(data);
|
|
|
|
|
|
|
+ const user = c.get('user');
|
|
|
|
|
+ const result = await crudService.create(data, user?.id);
|
|
|
return c.json(result, 201);
|
|
return c.json(result, 201);
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
|
if (error instanceof z.ZodError) {
|
|
if (error instanceof z.ZodError) {
|
|
@@ -305,7 +306,8 @@ export function createCrudRoutes<
|
|
|
try {
|
|
try {
|
|
|
const { id } = c.req.valid('param');
|
|
const { id } = c.req.valid('param');
|
|
|
const data = c.req.valid('json');
|
|
const data = c.req.valid('json');
|
|
|
- const result = await crudService.update(id, data);
|
|
|
|
|
|
|
+ const user = c.get('user');
|
|
|
|
|
+ const result = await crudService.update(id, data, user?.id);
|
|
|
|
|
|
|
|
if (!result) {
|
|
if (!result) {
|
|
|
return c.json({ code: 404, message: '资源不存在' }, 404);
|
|
return c.json({ code: 404, message: '资源不存在' }, 404);
|