File tree Expand file tree Collapse file tree 8 files changed +121
-0
lines changed
Expand file tree Collapse file tree 8 files changed +121
-0
lines changed Original file line number Diff line number Diff line change @@ -17,6 +17,7 @@ import { UploadModule } from './upload/upload.module';
1717import { AuthModule } from './auth/auth.module' ;
1818import { UserModule } from './user/user.module' ;
1919import { WorkspaceModule } from './workspace/workspace.module' ;
20+ import { RoleModule } from './role/role.module' ;
2021
2122@Module ( {
2223 imports : [
@@ -46,6 +47,7 @@ import { WorkspaceModule } from './workspace/workspace.module';
4647 AuthModule ,
4748 UserModule ,
4849 WorkspaceModule ,
50+ RoleModule ,
4951 ] ,
5052 controllers : [ AppController ] ,
5153 providers : [ AppService ] ,
Original file line number Diff line number Diff line change 1+ import { Test , TestingModule } from '@nestjs/testing' ;
2+ import { RoleController } from './role.controller' ;
3+
4+ describe ( 'RoleController' , ( ) => {
5+ let controller : RoleController ;
6+
7+ beforeEach ( async ( ) => {
8+ const module : TestingModule = await Test . createTestingModule ( {
9+ controllers : [ RoleController ] ,
10+ } ) . compile ( ) ;
11+
12+ controller = module . get < RoleController > ( RoleController ) ;
13+ } ) ;
14+
15+ it ( 'should be defined' , ( ) => {
16+ expect ( controller ) . toBeDefined ( ) ;
17+ } ) ;
18+ } ) ;
Original file line number Diff line number Diff line change 1+ import { Controller } from '@nestjs/common' ;
2+ import { RoleService } from './role.service' ;
3+
4+ @Controller ( 'role' )
5+ export class RoleController {
6+ constructor ( private readonly roleService : RoleService ) { }
7+ }
Original file line number Diff line number Diff line change 1+ import {
2+ Column ,
3+ Entity ,
4+ ManyToOne ,
5+ PrimaryColumn ,
6+ CreateDateColumn ,
7+ } from 'typeorm' ;
8+ import { User } from '../user/user.entity' ;
9+ import { Workspace } from '../workspace/workspace.entity' ;
10+
11+ @Entity ( )
12+ export class Role {
13+ @PrimaryColumn ( )
14+ workspaceId : number ;
15+
16+ @PrimaryColumn ( )
17+ userId : number ;
18+
19+ @ManyToOne ( ( ) => Workspace , ( workspace ) => workspace . id , {
20+ onDelete : 'CASCADE' ,
21+ } )
22+ workspace : Workspace ;
23+
24+ @ManyToOne ( ( ) => User , ( user ) => user . id , { onDelete : 'CASCADE' } )
25+ user : User ;
26+
27+ @Column ( { type : 'enum' , enum : [ 'owner' , 'guest' ] } )
28+ role : 'owner' | 'guest' ;
29+
30+ @CreateDateColumn ( )
31+ createdAt : Date ;
32+ }
Original file line number Diff line number Diff line change 1+ import { Module , forwardRef } from '@nestjs/common' ;
2+ import { RoleService } from './role.service' ;
3+ import { RoleController } from './role.controller' ;
4+ import { TypeOrmModule } from '@nestjs/typeorm' ;
5+ import { Role } from './role.entity' ;
6+ import { RoleRepository } from './role.repository' ;
7+ import { UserModule } from '../user/user.module' ;
8+ import { WorkspaceModule } from '../workspace/workspace.module' ;
9+
10+ @Module ( {
11+ imports : [
12+ TypeOrmModule . forFeature ( [ Role ] ) ,
13+ forwardRef ( ( ) => UserModule ) ,
14+ forwardRef ( ( ) => WorkspaceModule ) ,
15+ ] ,
16+ controllers : [ RoleController ] ,
17+ providers : [ RoleService , RoleRepository ] ,
18+ exports : [ RoleService , RoleRepository ] ,
19+ } )
20+ export class RoleModule { }
Original file line number Diff line number Diff line change 1+ import { Injectable } from '@nestjs/common' ;
2+ import { DataSource , Repository } from 'typeorm' ;
3+ import { Role } from './role.entity' ;
4+ import { InjectDataSource } from '@nestjs/typeorm' ;
5+
6+ @Injectable ( )
7+ export class RoleRepository extends Repository < Role > {
8+ constructor ( @InjectDataSource ( ) private dataSource : DataSource ) {
9+ super ( Role , dataSource . createEntityManager ( ) ) ;
10+ }
11+ }
Original file line number Diff line number Diff line change 1+ import { Test , TestingModule } from '@nestjs/testing' ;
2+ import { RoleService } from './role.service' ;
3+
4+ describe ( 'RoleService' , ( ) => {
5+ let service : RoleService ;
6+
7+ beforeEach ( async ( ) => {
8+ const module : TestingModule = await Test . createTestingModule ( {
9+ providers : [ RoleService ] ,
10+ } ) . compile ( ) ;
11+
12+ service = module . get < RoleService > ( RoleService ) ;
13+ } ) ;
14+
15+ it ( 'should be defined' , ( ) => {
16+ expect ( service ) . toBeDefined ( ) ;
17+ } ) ;
18+ } ) ;
Original file line number Diff line number Diff line change 1+ import { Injectable } from '@nestjs/common' ;
2+ import { RoleRepository } from './role.repository' ;
3+ import { UserRepository } from '../user/user.repository' ;
4+ import { WorkspaceRepository } from '../workspace/workspace.repository' ;
5+
6+ @Injectable ( )
7+ export class RoleService {
8+ constructor (
9+ private readonly roleRepository : RoleRepository ,
10+ private readonly workspaceRepository : WorkspaceRepository ,
11+ private readonly userRepository : UserRepository ,
12+ ) { }
13+ }
You can’t perform that action at this time.
0 commit comments