mirror of
https://github.com/hexastack/hexabot
synced 2025-06-26 18:27:28 +00:00
feat: implement dynamic create DTO for Menu
This commit is contained in:
parent
635687536b
commit
43c56ab2dd
@ -16,6 +16,7 @@ import {
|
|||||||
ValidateIf,
|
ValidateIf,
|
||||||
} from 'class-validator';
|
} from 'class-validator';
|
||||||
|
|
||||||
|
import { DtoConfig } from '@/utils/types/dto.types';
|
||||||
import { IsObjectId } from '@/utils/validation-rules/is-object-id';
|
import { IsObjectId } from '@/utils/validation-rules/is-object-id';
|
||||||
|
|
||||||
import { MenuType } from '../schemas/types/menu';
|
import { MenuType } from '../schemas/types/menu';
|
||||||
@ -53,3 +54,7 @@ export class MenuCreateDto {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class MenuQueryDto extends PartialType(MenuCreateDto) {}
|
export class MenuQueryDto extends PartialType(MenuCreateDto) {}
|
||||||
|
|
||||||
|
export type MenuDTOMapActions = DtoConfig<{
|
||||||
|
create: MenuCreateDto;
|
||||||
|
}>;
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import { Model } from 'mongoose';
|
|||||||
|
|
||||||
import { BaseRepository } from '@/utils/generics/base-repository';
|
import { BaseRepository } from '@/utils/generics/base-repository';
|
||||||
|
|
||||||
|
import { MenuDTOMapActions } from '../dto/menu.dto';
|
||||||
import {
|
import {
|
||||||
Menu,
|
Menu,
|
||||||
MENU_POPULATE,
|
MENU_POPULATE,
|
||||||
@ -26,7 +27,8 @@ import { MenuType } from '../schemas/types/menu';
|
|||||||
export class MenuRepository extends BaseRepository<
|
export class MenuRepository extends BaseRepository<
|
||||||
Menu,
|
Menu,
|
||||||
MenuPopulate,
|
MenuPopulate,
|
||||||
MenuFull
|
MenuFull,
|
||||||
|
MenuDTOMapActions
|
||||||
> {
|
> {
|
||||||
constructor(
|
constructor(
|
||||||
readonly eventEmitter: EventEmitter2,
|
readonly eventEmitter: EventEmitter2,
|
||||||
|
|||||||
@ -20,13 +20,18 @@ import { MENU_CACHE_KEY } from '@/utils/constants/cache';
|
|||||||
import { Cacheable } from '@/utils/decorators/cacheable.decorator';
|
import { Cacheable } from '@/utils/decorators/cacheable.decorator';
|
||||||
import { BaseService } from '@/utils/generics/base-service';
|
import { BaseService } from '@/utils/generics/base-service';
|
||||||
|
|
||||||
import { MenuCreateDto } from '../dto/menu.dto';
|
import { MenuCreateDto, MenuDTOMapActions } from '../dto/menu.dto';
|
||||||
import { MenuRepository } from '../repositories/menu.repository';
|
import { MenuRepository } from '../repositories/menu.repository';
|
||||||
import { Menu, MenuFull, MenuPopulate } from '../schemas/menu.schema';
|
import { Menu, MenuFull, MenuPopulate } from '../schemas/menu.schema';
|
||||||
import { AnyMenu, MenuTree, MenuType } from '../schemas/types/menu';
|
import { AnyMenu, MenuTree, MenuType } from '../schemas/types/menu';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class MenuService extends BaseService<Menu, MenuPopulate, MenuFull> {
|
export class MenuService extends BaseService<
|
||||||
|
Menu,
|
||||||
|
MenuPopulate,
|
||||||
|
MenuFull,
|
||||||
|
MenuDTOMapActions
|
||||||
|
> {
|
||||||
private RootSymbol: symbol = Symbol('RootMenu');
|
private RootSymbol: symbol = Symbol('RootMenu');
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user