@Ace_Viral

Нужно при создании роли создавать данные в подчиненных таблицах, как это сделать?

Использую TypeOrm на NestJS
У меня есть таблица user_role я пишу endpoint для создания роли
async create(createUserRoleDto: CreateUserRoleDto): Promise<UserRole> {
    const userRole = this.userRolesRepository.create(createUserRoleDto);
    await this.userRolesRepository.save(userRole);
    return this.findOne({ id: userRole.id });
  }
@Entity()
export class UserRole extends CommonEntity {
  @Column({ type: 'varchar', unique: true })
  title: string;

  @Column({ type: 'varchar', unique: true })
  code: string;

  @Column({ type: 'varchar', nullable: true })
  description: string;

  @ManyToMany(() => UserRight, (userRight) => userRight.id)
  @JoinTable()
  rights: UserRight[];
}

@Entity()
export class UserRight extends CommonEntity {
  @Column({ type: 'varchar', unique: true })
  title: string;

  @Column({ type: 'boolean', default: true })
  create: boolean;

  @Column({ type: 'boolean', default: true })
  read: boolean;

  @Column({ type: 'boolean', default: true })
  write: boolean;

  @Column({ type: 'boolean', default: true })
  delete: boolean;

  @ManyToOne(() => ProjectModule)
  module: ProjectModule;
}


у меня есть таблицы user_role user_right - права роли
есть user_role_rights_user_right это взаимоотношение этих таблиц связь многим-ко-многим
также есть project_module это фиксированная таблица она создается в миграциях и представлять собой модули и наименование контроллера
в user_right пишутся права (create read write delete) и moduleId
например у нас есть 5 модулей
с id 1 - 5
при создании роли id: 1 Admin
появляется 5 записей в таблице user_right
1 create:false read:false .... moduleId: 1
...
5 create:false read:false .... moduleId: 5

и также создается их связь
userRoleId: 1 userRightId: 1
...
userRoleId: 1 userRightId: 5

желательно все это сделать с помощью typeOrm у меня получилось сделать так что если в body передавать массив userRightId в виде [1,2,3..,5]
то все создается верно
но мне нужно создавать новые userRights потому что иначе две роли будут относится к одним правам что не верно
помогите пожалуйста
  • Вопрос задан
  • 50 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы