@hedhog/admin 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. package/dist/admin.module.d.ts.map +1 -1
  2. package/dist/admin.module.js +1 -0
  3. package/dist/admin.module.js.map +1 -1
  4. package/dist/permission/guards/permission.guard.d.ts +1 -1
  5. package/dist/permission/guards/permission.guard.d.ts.map +1 -1
  6. package/dist/permission/guards/permission.guard.js +4 -0
  7. package/dist/permission/guards/permission.guard.js.map +1 -1
  8. package/package.json +1 -1
  9. package/src/migrations/migrate-04.ts +1 -536
  10. package/src/migrations/migrate-05.ts +48 -0
  11. package/src/migrations/migrate-06.ts +71 -0
  12. package/src/migrations/migrate-07.ts +118 -0
  13. package/src/migrations/migrate-08.ts +69 -0
  14. package/src/migrations/migrate-09.ts +91 -0
  15. package/src/migrations/migrate-10.ts +129 -0
  16. package/src/migrations/migrate-11.ts +54 -0
  17. package/src/migrations/migrate-12.ts +55 -0
  18. package/dist/auth/migrations/index.d.ts +0 -6
  19. package/dist/auth/migrations/index.d.ts.map +0 -1
  20. package/dist/auth/migrations/index.js +0 -121
  21. package/dist/auth/migrations/index.js.map +0 -1
  22. package/dist/menu/migrations/index.d.ts +0 -7
  23. package/dist/menu/migrations/index.d.ts.map +0 -1
  24. package/dist/menu/migrations/index.js +0 -101
  25. package/dist/menu/migrations/index.js.map +0 -1
  26. package/dist/permission/migrations/index.d.ts +0 -6
  27. package/dist/permission/migrations/index.d.ts.map +0 -1
  28. package/dist/permission/migrations/index.js +0 -520
  29. package/dist/permission/migrations/index.js.map +0 -1
  30. package/dist/screen/migrations/index.d.ts +0 -6
  31. package/dist/screen/migrations/index.d.ts.map +0 -1
  32. package/dist/screen/migrations/index.js +0 -40
  33. package/dist/screen/migrations/index.js.map +0 -1
  34. package/dist/user/user.service.spec.d.ts +0 -2
  35. package/dist/user/user.service.spec.d.ts.map +0 -1
  36. package/dist/user/user.service.spec.js +0 -17
  37. package/dist/user/user.service.spec.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"admin.module.d.ts","sourceRoot":"","sources":["../src/admin.module.ts"],"names":[],"mappings":"AASA,qBAWa,WAAW;CAAG"}
1
+ {"version":3,"file":"admin.module.d.ts","sourceRoot":"","sources":["../src/admin.module.ts"],"names":[],"mappings":"AASA,qBAYa,WAAW;CAAG"}
@@ -29,6 +29,7 @@ exports.AdminModule = AdminModule = __decorate([
29
29
  (0, common_1.forwardRef)(() => screen_module_1.ScreenModule),
30
30
  (0, common_1.forwardRef)(() => user_module_1.UserModule),
31
31
  ],
32
+ exports: [user_module_1.UserModule, auth_module_1.AuthModule, permission_module_1.PermissionModule, menu_module_1.MenuModule, screen_module_1.ScreenModule],
32
33
  })
33
34
  ], AdminModule);
34
35
  //# sourceMappingURL=admin.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin.module.js","sourceRoot":"","sources":["../src/admin.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA8C;AAC9C,mDAAsD;AACtD,2CAAoD;AACpD,oDAAgD;AAChD,oDAAgD;AAChD,sEAAkE;AAClE,0DAAsD;AACtD,oDAAgD;AAazC,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,kCAAW;sBAAX,WAAW;IAXvB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;YAC5B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;YAC5B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,6BAAgB,CAAC;YAClC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,oCAAgB,CAAC;YAClC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,qBAAY,CAAC;YAC9B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,4BAAY,CAAC;YAC9B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;SAC7B;KACF,CAAC;GACW,WAAW,CAAG"}
1
+ {"version":3,"file":"admin.module.js","sourceRoot":"","sources":["../src/admin.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA8C;AAC9C,mDAAsD;AACtD,2CAAoD;AACpD,oDAAgD;AAChD,oDAAgD;AAChD,sEAAkE;AAClE,0DAAsD;AACtD,oDAAgD;AAczC,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,kCAAW;sBAAX,WAAW;IAZvB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;YAC5B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;YAC5B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,6BAAgB,CAAC;YAClC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,oCAAgB,CAAC;YAClC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,qBAAY,CAAC;YAC9B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,4BAAY,CAAC;YAC9B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;SAC7B;QACD,OAAO,EAAE,CAAC,wBAAU,EAAE,wBAAU,EAAE,oCAAgB,EAAE,wBAAU,EAAE,4BAAY,CAAC;KAC9E,CAAC;GACW,WAAW,CAAG"}
@@ -3,7 +3,7 @@ import { Reflector } from '@nestjs/core';
3
3
  import { PrismaService } from '@hedhog/prisma';
4
4
  export declare class PermissionGuard implements CanActivate {
5
5
  private reflector;
6
- private prisma;
6
+ private readonly prisma;
7
7
  constructor(reflector: Reflector, prisma: PrismaService);
8
8
  canActivate(context: ExecutionContext): Promise<boolean>;
9
9
  private extractTokenFromHeader;
@@ -1 +1 @@
1
- {"version":3,"file":"permission.guard.d.ts","sourceRoot":"","sources":["../../../src/permission/guards/permission.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAIjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,qBACa,eAAgB,YAAW,WAAW;IAE/C,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM;gBADN,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,aAAa;IAGzB,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAgF9D,OAAO,CAAC,sBAAsB;CAI/B"}
1
+ {"version":3,"file":"permission.guard.d.ts","sourceRoot":"","sources":["../../../src/permission/guards/permission.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAMjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,qBACa,eAAgB,YAAW,WAAW;IAE/C,OAAO,CAAC,SAAS;IAEjB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFf,SAAS,EAAE,SAAS,EAEX,MAAM,EAAE,aAAa;IAGlC,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAgF9D,OAAO,CAAC,sBAAsB;CAI/B"}
@@ -8,6 +8,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  exports.PermissionGuard = void 0;
13
16
  const common_1 = require("@nestjs/common");
@@ -93,6 +96,7 @@ let PermissionGuard = class PermissionGuard {
93
96
  exports.PermissionGuard = PermissionGuard;
94
97
  exports.PermissionGuard = PermissionGuard = __decorate([
95
98
  (0, common_1.Injectable)(),
99
+ __param(1, (0, common_1.Inject)((0, common_1.forwardRef)(() => prisma_1.PrismaService))),
96
100
  __metadata("design:paramtypes", [core_1.Reflector,
97
101
  prisma_1.PrismaService])
98
102
  ], PermissionGuard);
@@ -1 +1 @@
1
- {"version":3,"file":"permission.guard.js","sourceRoot":"","sources":["../../../src/permission/guards/permission.guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permission.guard.js","sourceRoot":"","sources":["../../../src/permission/guards/permission.guard.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hedhog/admin",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -1,12 +1,6 @@
1
1
  import { idColumn, timestampColumn } from '@hedhog/utils';
2
2
 
3
- import {
4
- MigrationInterface,
5
- QueryRunner,
6
- Table,
7
- TableForeignKey,
8
- TableUnique,
9
- } from 'typeorm';
3
+ import { MigrationInterface, QueryRunner, Table, TableUnique } from 'typeorm';
10
4
 
11
5
  export class Migrate implements MigrationInterface {
12
6
  async up(queryRunner: QueryRunner) {
@@ -37,537 +31,8 @@ export class Migrate implements MigrationInterface {
37
31
  name: 'unique_routes',
38
32
  }),
39
33
  );
40
-
41
- await queryRunner.createTable(
42
- new Table({
43
- name: 'roles',
44
- columns: [
45
- idColumn(),
46
- {
47
- name: 'name',
48
- type: 'varchar',
49
- isNullable: false,
50
- },
51
- {
52
- name: 'description',
53
- type: 'varchar',
54
- },
55
- timestampColumn(),
56
- timestampColumn('updated_at'),
57
- ],
58
- }),
59
- );
60
-
61
- await queryRunner.createTable(
62
- new Table({
63
- name: 'role_menus',
64
- columns: [
65
- {
66
- name: 'role_id',
67
- type: 'int',
68
- isPrimary: true,
69
- unsigned: true,
70
- },
71
- {
72
- name: 'menu_id',
73
- type: 'int',
74
- isPrimary: true,
75
- unsigned: true,
76
- },
77
- timestampColumn(),
78
- timestampColumn('updated_at'),
79
- ],
80
- }),
81
- );
82
-
83
- await queryRunner.createForeignKeys('role_menus', [
84
- new TableForeignKey({
85
- columnNames: ['role_id'],
86
- referencedColumnNames: ['id'],
87
- referencedTableName: 'roles',
88
- onDelete: 'CASCADE',
89
- name: 'fk_role_menus_roles',
90
- }),
91
- new TableForeignKey({
92
- columnNames: ['menu_id'],
93
- referencedColumnNames: ['id'],
94
- referencedTableName: 'menus',
95
- onDelete: 'CASCADE',
96
- name: 'fk_role_menus_menus',
97
- }),
98
- ]);
99
-
100
- await queryRunner.createTable(
101
- new Table({
102
- name: 'role_screens',
103
- columns: [
104
- {
105
- name: 'role_id',
106
- type: 'int',
107
- isPrimary: true,
108
- unsigned: true,
109
- },
110
- {
111
- name: 'screen_id',
112
- type: 'int',
113
- isPrimary: true,
114
- unsigned: true,
115
- },
116
- timestampColumn(),
117
- timestampColumn('updated_at'),
118
- ],
119
- }),
120
- );
121
-
122
- await queryRunner.createForeignKeys('role_screens', [
123
- new TableForeignKey({
124
- columnNames: ['role_id'],
125
- referencedColumnNames: ['id'],
126
- referencedTableName: 'roles',
127
- onDelete: 'CASCADE',
128
- name: 'fk_role_screens_roles',
129
- }),
130
- new TableForeignKey({
131
- columnNames: ['screen_id'],
132
- referencedColumnNames: ['id'],
133
- referencedTableName: 'screens',
134
- onDelete: 'CASCADE',
135
- name: 'fk_role_screens_screens',
136
- }),
137
- ]);
138
-
139
- await queryRunner.createTable(
140
- new Table({
141
- name: 'role_users',
142
- columns: [
143
- {
144
- name: 'role_id',
145
- type: 'int',
146
- isPrimary: true,
147
- unsigned: true,
148
- },
149
- {
150
- name: 'user_id',
151
- type: 'int',
152
- isPrimary: true,
153
- unsigned: true,
154
- },
155
- timestampColumn(),
156
- timestampColumn('updated_at'),
157
- ],
158
- }),
159
- );
160
-
161
- await queryRunner.createForeignKeys('role_users', [
162
- new TableForeignKey({
163
- columnNames: ['role_id'],
164
- referencedColumnNames: ['id'],
165
- referencedTableName: 'roles',
166
- onDelete: 'CASCADE',
167
- name: 'fk_role_users_roles',
168
- }),
169
-
170
- new TableForeignKey({
171
- columnNames: ['user_id'],
172
- referencedColumnNames: ['id'],
173
- referencedTableName: 'users',
174
- onDelete: 'CASCADE',
175
- name: 'fk_role_users_users',
176
- }),
177
- ]);
178
-
179
- await queryRunner.createTable(
180
- new Table({
181
- name: 'role_routes',
182
- columns: [
183
- {
184
- name: 'role_id',
185
- type: 'int',
186
- isPrimary: true,
187
- unsigned: true,
188
- },
189
- {
190
- name: 'route_id',
191
- type: 'int',
192
- isPrimary: true,
193
- unsigned: true,
194
- },
195
- timestampColumn(),
196
- timestampColumn('updated_at'),
197
- ],
198
- }),
199
- );
200
-
201
- await queryRunner.createForeignKeys('role_routes', [
202
- new TableForeignKey({
203
- columnNames: ['role_id'],
204
- referencedColumnNames: ['id'],
205
- referencedTableName: 'roles',
206
- onDelete: 'CASCADE',
207
- name: 'fk_role_routes_roles',
208
- }),
209
- new TableForeignKey({
210
- columnNames: ['route_id'],
211
- referencedColumnNames: ['id'],
212
- referencedTableName: 'routes',
213
- onDelete: 'CASCADE',
214
- name: 'fk_role_routes_routes',
215
- }),
216
- ]);
217
-
218
- await queryRunner.manager
219
- .createQueryBuilder()
220
- .insert()
221
- .into('routes', ['url', 'method'])
222
- .values([
223
- {
224
- url: '/auth/verify',
225
- method: 'GET',
226
- },
227
- {
228
- url: '/menus',
229
- method: 'GET',
230
- },
231
- {
232
- url: '/menus/system',
233
- method: 'GET',
234
- },
235
- {
236
- url: '/menus/:menuId',
237
- method: 'GET',
238
- },
239
- {
240
- url: '/menus',
241
- method: 'POST',
242
- },
243
- {
244
- url: '/menus/:menuId',
245
- method: 'PATCH',
246
- },
247
- {
248
- url: '/menus',
249
- method: 'DELETE',
250
- },
251
- {
252
- url: '/menus/order',
253
- method: 'PATCH',
254
- },
255
- {
256
- url: '/permissions',
257
- method: 'GET',
258
- },
259
- {
260
- url: '/permissions/:permissionId',
261
- method: 'GET',
262
- },
263
- {
264
- url: '/permissions',
265
- method: 'POST',
266
- },
267
- {
268
- url: '/permissions/:permissionId',
269
- method: 'PATCH',
270
- },
271
- {
272
- url: '/permissions',
273
- method: 'DELETE',
274
- },
275
- {
276
- url: '/screens',
277
- method: 'GET',
278
- },
279
- {
280
- url: '/screens/:screenId',
281
- method: 'GET',
282
- },
283
- {
284
- url: '/screens',
285
- method: 'POST',
286
- },
287
- {
288
- url: '/screens/:screenId',
289
- method: 'PATCH',
290
- },
291
- {
292
- url: '/screens',
293
- method: 'DELETE',
294
- },
295
- {
296
- url: '/settings',
297
- method: 'GET',
298
- },
299
- {
300
- url: '/settings/:settingId',
301
- method: 'GET',
302
- },
303
- {
304
- url: '/settings',
305
- method: 'POST',
306
- },
307
- {
308
- url: '/settings/:settingId',
309
- method: 'PATCH',
310
- },
311
- {
312
- url: '/settings',
313
- method: 'DELETE',
314
- },
315
- {
316
- url: '/users',
317
- method: 'GET',
318
- },
319
- {
320
- url: '/users/:userId',
321
- method: 'GET',
322
- },
323
- {
324
- url: '/users',
325
- method: 'POST',
326
- },
327
- {
328
- url: '/users/:userId',
329
- method: 'PATCH',
330
- },
331
- {
332
- url: '/users',
333
- method: 'DELETE',
334
- },
335
- ])
336
- .execute();
337
-
338
- await queryRunner.manager
339
- .createQueryBuilder()
340
- .insert()
341
- .into('roles', ['id', 'name', 'description'])
342
- .values([
343
- {
344
- id: 1,
345
- name: 'Administrator',
346
- description: 'System administrator',
347
- },
348
- {
349
- id: 2,
350
- name: 'Screen Manager',
351
- description: 'Screen manager',
352
- },
353
- ])
354
- .execute();
355
-
356
- const routes = await queryRunner.manager
357
- .createQueryBuilder()
358
- .select()
359
- .from('routes', 'r')
360
- .execute();
361
-
362
- for (const route of routes) {
363
- await queryRunner.manager
364
- .createQueryBuilder()
365
- .insert()
366
- .into('role_routes')
367
- .values({
368
- role_id: 1,
369
- route_id: route.id,
370
- })
371
- .execute();
372
- }
373
-
374
- const menus = await queryRunner.manager
375
- .createQueryBuilder()
376
- .select()
377
- .from('menus', 'm')
378
- .execute();
379
-
380
- for (const menu of menus) {
381
- await queryRunner.manager
382
- .createQueryBuilder()
383
- .insert()
384
- .into('role_menus')
385
- .values({
386
- role_id: 1,
387
- menu_id: menu.id,
388
- });
389
- }
390
-
391
- const routesScreens = await queryRunner.manager
392
- .createQueryBuilder()
393
- .select()
394
- .from('routes', 's')
395
- .where('s.url LIKE :url', { url: '/screens%' })
396
- .execute();
397
-
398
- for (const route of routesScreens) {
399
- await queryRunner.manager
400
- .createQueryBuilder()
401
- .insert()
402
- .into('role_routes')
403
- .values({
404
- role_id: 2,
405
- route_id: route.id,
406
- })
407
- .execute();
408
- }
409
-
410
- await queryRunner.createTable(
411
- new Table({
412
- name: 'route_screens',
413
- columns: [
414
- {
415
- name: 'route_id',
416
- type: 'int',
417
- unsigned: true,
418
- isPrimary: true,
419
- },
420
- {
421
- name: 'screen_id',
422
- type: 'int',
423
- unsigned: true,
424
- isPrimary: true,
425
- },
426
- timestampColumn(),
427
- timestampColumn('updated_at'),
428
- ],
429
- }),
430
- );
431
-
432
- await queryRunner.createForeignKeys('route_screens', [
433
- new TableForeignKey({
434
- columnNames: ['route_id'],
435
- referencedColumnNames: ['id'],
436
- referencedTableName: 'routes',
437
- onDelete: 'CASCADE',
438
- name: 'fk_route_screens_routes',
439
- }),
440
- new TableForeignKey({
441
- columnNames: ['screen_id'],
442
- referencedColumnNames: ['id'],
443
- referencedTableName: 'screens',
444
- onDelete: 'CASCADE',
445
- name: 'fk_route_screens_screens',
446
- }),
447
- ]);
448
-
449
- const screens = await queryRunner.manager
450
- .createQueryBuilder()
451
- .insert()
452
- .into('screens', ['name', 'slug', 'description', 'icon'])
453
- .values([
454
- {
455
- name: 'Users',
456
- slug: '/management/users',
457
- description: 'Check all users registered in the system.',
458
- icon: 'users',
459
- },
460
- {
461
- name: 'Roles',
462
- slug: '/management/roles',
463
- description: 'Check all roles registered in the system.',
464
- icon: 'circles',
465
- },
466
- {
467
- name: 'Screens',
468
- slug: '/management/screens',
469
- description: 'Check all screens registered in the system.',
470
- icon: 'monitor',
471
- },
472
- {
473
- name: 'Menus',
474
- slug: '/management/menus',
475
- description: 'Check all menus registered in the system.',
476
- icon: 'menu',
477
- },
478
- ])
479
- .returning('id')
480
- .execute();
481
-
482
- for (const screen of screens.raw) {
483
- await queryRunner.manager
484
- .createQueryBuilder()
485
- .insert()
486
- .into('role_screens')
487
- .values({
488
- role_id: 1,
489
- screen_id: screen.id,
490
- })
491
- .execute();
492
- }
493
-
494
- const screenIdScreen = await queryRunner.manager
495
- .createQueryBuilder()
496
- .select()
497
- .from('screens', 's')
498
- .where('slug = :slug', { slug: '/management/screens' })
499
- .execute();
500
- const screenIdRole = await queryRunner.manager
501
- .createQueryBuilder()
502
- .select()
503
- .from('screens', 's')
504
- .where('slug = :slug', { slug: '/management/roles' })
505
- .execute();
506
- const screenIdUser = await queryRunner.manager
507
- .createQueryBuilder()
508
- .select()
509
- .from('screens', 's')
510
- .where('slug = :slug', { slug: '/management/users' })
511
- .execute();
512
- const screenIdMenu = await queryRunner.manager
513
- .createQueryBuilder()
514
- .select()
515
- .from('screens', 's')
516
- .where('slug = :slug', { slug: '/management/menus' })
517
- .execute();
518
-
519
- for (const { url, screendId } of [
520
- { url: '/screens%', screendId: screenIdScreen[0].id },
521
- { url: '/roles%', screendId: screenIdRole[0].id },
522
- { url: '/users%', screendId: screenIdUser[0].id },
523
- { url: '/menus%', screendId: screenIdMenu[0].id },
524
- ]) {
525
- const routesScreens = await queryRunner.manager
526
- .createQueryBuilder()
527
- .select()
528
- .from('routes', 's')
529
- .where('s.url LIKE :url', { url })
530
- .execute();
531
-
532
- for (const route of routesScreens) {
533
- console.log({
534
- route_id: route.id,
535
- screen_id: screendId,
536
- });
537
-
538
- await queryRunner.manager
539
- .createQueryBuilder()
540
- .insert()
541
- .into('route_screens')
542
- .values({
543
- route_id: route.id,
544
- screen_id: screendId,
545
- })
546
- .execute();
547
- }
548
- }
549
34
  }
550
35
  async down(queryRunner: QueryRunner) {
551
- for (const slug of [
552
- '/management/users',
553
- '/management/roles',
554
- '/management/screens',
555
- '/management/menus',
556
- ]) {
557
- await queryRunner.manager
558
- .createQueryBuilder()
559
- .delete()
560
- .from('screens')
561
- .where('slug = :slug', { slug })
562
- .execute();
563
- }
564
-
565
- await queryRunner.dropTable('role_routes');
566
- await queryRunner.dropTable('role_screens');
567
- await queryRunner.dropTable('role_users');
568
- await queryRunner.dropTable('role_menus');
569
- await queryRunner.dropTable('roles');
570
- await queryRunner.dropTable('route_screens');
571
36
  await queryRunner.dropTable('routes');
572
37
  }
573
38
  }
@@ -0,0 +1,48 @@
1
+ import { idColumn, timestampColumn } from '@hedhog/utils';
2
+ import { MigrationInterface, QueryRunner, Table } from 'typeorm';
3
+
4
+ export class Migrate implements MigrationInterface {
5
+ async up(queryRunner: QueryRunner) {
6
+ await queryRunner.createTable(
7
+ new Table({
8
+ name: 'roles',
9
+ columns: [
10
+ idColumn(),
11
+ {
12
+ name: 'name',
13
+ type: 'varchar',
14
+ isNullable: false,
15
+ },
16
+ {
17
+ name: 'description',
18
+ type: 'varchar',
19
+ },
20
+ timestampColumn(),
21
+ timestampColumn('updated_at'),
22
+ ],
23
+ }),
24
+ );
25
+
26
+ await queryRunner.manager
27
+ .createQueryBuilder()
28
+ .insert()
29
+ .into('roles', ['id', 'name', 'description'])
30
+ .values([
31
+ {
32
+ id: 1,
33
+ name: 'Administrator',
34
+ description: 'System administrator',
35
+ },
36
+ {
37
+ id: 2,
38
+ name: 'Screen Manager',
39
+ description: 'Screen manager',
40
+ },
41
+ ])
42
+ .execute();
43
+ }
44
+
45
+ async down(queryRunner: QueryRunner) {
46
+ await queryRunner.dropTable('roles');
47
+ }
48
+ }