@hedhog/admin 0.48.9 → 0.48.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/admin.module.d.ts.map +1 -1
  2. package/dist/admin.module.js +3 -1
  3. package/dist/admin.module.js.map +1 -1
  4. package/dist/index.d.ts +1 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +1 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/menu/menu.controller.d.ts +3 -3
  9. package/dist/menu/menu.service.d.ts +3 -3
  10. package/dist/setting/dto/create.dto.d.ts +9 -0
  11. package/dist/setting/dto/create.dto.d.ts.map +1 -0
  12. package/dist/setting/dto/create.dto.js +40 -0
  13. package/dist/setting/dto/create.dto.js.map +1 -0
  14. package/dist/setting/dto/delete.dto.d.ts +4 -0
  15. package/dist/setting/dto/delete.dto.d.ts.map +1 -0
  16. package/dist/setting/dto/delete.dto.js +23 -0
  17. package/dist/setting/dto/delete.dto.js.map +1 -0
  18. package/dist/setting/dto/setting-user.dto.d.ts +4 -0
  19. package/dist/setting/dto/setting-user.dto.d.ts.map +1 -0
  20. package/dist/setting/dto/setting-user.dto.js +21 -0
  21. package/dist/setting/dto/setting-user.dto.js.map +1 -0
  22. package/dist/setting/dto/setting.dto.d.ts +9 -0
  23. package/dist/setting/dto/setting.dto.d.ts.map +1 -0
  24. package/dist/setting/dto/setting.dto.js +34 -0
  25. package/dist/setting/dto/setting.dto.js.map +1 -0
  26. package/dist/setting/dto/update.dto.d.ts +6 -0
  27. package/dist/setting/dto/update.dto.d.ts.map +1 -0
  28. package/dist/setting/dto/update.dto.js +9 -0
  29. package/dist/setting/dto/update.dto.js.map +1 -0
  30. package/dist/setting/setting.controller.d.ts +102 -0
  31. package/dist/setting/setting.controller.d.ts.map +1 -0
  32. package/dist/setting/setting.controller.js +160 -0
  33. package/dist/setting/setting.controller.js.map +1 -0
  34. package/dist/setting/setting.module.d.ts +3 -0
  35. package/dist/setting/setting.module.d.ts.map +1 -0
  36. package/dist/setting/setting.module.js +24 -0
  37. package/dist/setting/setting.module.js.map +1 -0
  38. package/dist/setting/setting.service.d.ts +103 -0
  39. package/dist/setting/setting.service.d.ts.map +1 -0
  40. package/dist/setting/setting.service.js +333 -0
  41. package/dist/setting/setting.service.js.map +1 -0
  42. package/hedhog.yaml +244 -0
  43. package/package.json +2 -1
  44. package/src/admin.module.ts +3 -1
  45. package/src/index.ts +2 -0
  46. package/src/setting/dto/create.dto.ts +21 -0
  47. package/src/setting/dto/delete.dto.ts +8 -0
  48. package/src/setting/dto/setting-user.dto.ts +6 -0
  49. package/src/setting/dto/setting.dto.ts +17 -0
  50. package/src/setting/dto/update.dto.ts +4 -0
  51. package/src/setting/setting.controller.ts +105 -0
  52. package/src/setting/setting.module.ts +11 -0
  53. package/src/setting/setting.service.ts +400 -0
package/hedhog.yaml CHANGED
@@ -343,7 +343,101 @@ data:
343
343
  role:
344
344
  - where:
345
345
  slug: admin
346
+ setting_group:
347
+ - slug: general
348
+ icon: settings
349
+ name:
350
+ en: General
351
+ pt: Geral
352
+ description:
353
+ en: General settings and configurations.
354
+ pt: Configurações e definições gerais.
355
+ relations:
356
+ setting:
357
+ - slug: url
358
+ type: string
359
+ name:
360
+ en: Base URL
361
+ pt: URL Base
362
+ description:
363
+ en: The base URL of the system
364
+ pt: A URL base do sistema
365
+ value: http://localhost:3200
366
+ user_override: false
367
+ - slug: localization
368
+ icon: world
369
+ name:
370
+ en: Localization
371
+ pt: Localização
372
+ description:
373
+ en: Configure the localization setting.
374
+ pt: Configurar as definições de localização.
375
+ relations:
376
+ setting:
377
+ - slug: language
378
+ type: string
379
+ name:
380
+ en: Default Language
381
+ pt: Idioma Padrão
382
+ description:
383
+ en: The system default language, each user can have their own preferred language
384
+ pt:
385
+ O idioma padrão do sistema, cada usuário pode ter o seu próprio idioma
386
+ preferido
387
+ value: en
388
+ user_override: true
389
+ - slug: timezone
390
+ type: string
391
+ name:
392
+ en: Timezone
393
+ pt: Fuso Horário
394
+ description:
395
+ en: The timezone to use
396
+ pt: O fuso horário a utilizar
397
+ value: UTC
398
+ user_override: true
346
399
  menu:
400
+ - url: /management/setting
401
+ icon: settings
402
+ name:
403
+ en: Setting
404
+ pt: Configurações
405
+ slug: /management/setting
406
+ - menu_id:
407
+ where:
408
+ slug: /management
409
+ slug: /settings
410
+ icon: settings
411
+ name:
412
+ en: Settings
413
+ pt: Configurações
414
+ - menu_id:
415
+ where:
416
+ slug: /settings
417
+ name:
418
+ en: Setting Group
419
+ pt: Grupo de Configuração
420
+ icon: settings
421
+ url: /settings/setting-group
422
+ slug: /settings/setting-group
423
+ - menu_id:
424
+ where:
425
+ slug: /settings
426
+ name:
427
+ en: Setting User
428
+ pt: Configuração de Usuário
429
+ icon: user-cog
430
+ url: /settings/setting-user
431
+ slug: /settings/setting-user
432
+ - menu_id:
433
+ where:
434
+ slug: /settings
435
+ name:
436
+ en: Locale
437
+ pt: Locale
438
+ icon: world
439
+ url: /settings/locale
440
+ slug: /settings/locale
347
441
  - url: /
348
442
  icon: dashboard
349
443
  name:
@@ -454,6 +548,48 @@ data:
454
548
  - where:
455
549
  slug: admin
456
550
  screen:
551
+ - slug: /management/setting
552
+ icon: settings
553
+ name:
554
+ en: Setting
555
+ pt: Configurações
556
+ description:
557
+ en: Manage system setting and configurations.
558
+ pt: Gerenciar configurações e definições do sistema.
559
+ relations:
560
+ route:
561
+ - where:
562
+ url:
563
+ like: /setting%
564
+ - name:
565
+ en: Setting Group
566
+ pt: Grupo de Configuração
567
+ slug: /settings/setting-group
568
+ description:
569
+ en: Screen to manage a group of settings
570
+ pt: Tela para gerenciar grupo de configurações
571
+ icon: settings
572
+ - name:
573
+ en: Setting User
574
+ pt: Configuração de Usuário
575
+ slug: /settings/setting-user
576
+ description:
577
+ en: Screen to manage user settings
578
+ pt: Tela para gerenciar configurações de usuário
579
+ icon: user-cog
580
+ - name:
581
+ en: Locale
582
+ pt: Locale
583
+ slug: /settings/locale
584
+ description:
585
+ en: Screen to manage locale
586
+ pt: Tela para gerenciar localização/tradução
587
+ icon: world
588
+ relations:
589
+ route:
590
+ - where:
591
+ url:
592
+ like: /locale%
457
593
  - slug: /management/user
458
594
  icon: user
459
595
  name:
@@ -673,6 +809,114 @@ data:
673
809
  name: pt
674
810
  value: Português
675
811
  tables:
812
+ setting_group:
813
+ columns:
814
+ - type: pk
815
+ - name: icon
816
+ length: 31
817
+ - type: slug
818
+ - type: created_at
819
+ - type: updated_at
820
+ ifNotExists: true
821
+ setting_group_locale:
822
+ columns:
823
+ - name: locale_id
824
+ type: fk
825
+ isPrimary: true
826
+ references:
827
+ table: locale
828
+ column: id
829
+ onDelete: CASCADE
830
+ - name: group_id
831
+ type: fk
832
+ isPrimary: true
833
+ references:
834
+ table: setting_group
835
+ column: id
836
+ onDelete: CASCADE
837
+ - name: name
838
+ length: 63
839
+ - name: description
840
+ length: 255
841
+ isNullable: true
842
+ - type: created_at
843
+ - type: updated_at
844
+ ifNotExists: true
845
+ setting:
846
+ columns:
847
+ - type: pk
848
+ - name: group_id
849
+ type: fk
850
+ references:
851
+ table: setting_group
852
+ column: id
853
+ onDelete: CASCADE
854
+ - type: slug
855
+ - name: type
856
+ type: enum
857
+ enum:
858
+ - string
859
+ - array
860
+ - number
861
+ - boolean
862
+ - json
863
+ default: string
864
+ - name: value
865
+ length: 1023
866
+ isNullable: true
867
+ - name: user_override
868
+ type: boolean
869
+ default: false
870
+ - type: created_at
871
+ - type: updated_at
872
+ ifNotExists: true
873
+ setting_locale:
874
+ columns:
875
+ - name: locale_id
876
+ type: fk
877
+ isPrimary: true
878
+ references:
879
+ table: locale
880
+ column: id
881
+ onDelete: CASCADE
882
+ - name: setting_id
883
+ type: fk
884
+ isPrimary: true
885
+ references:
886
+ table: setting
887
+ column: id
888
+ onDelete: CASCADE
889
+ - name: description
890
+ length: 255
891
+ isNullable: true
892
+ - name: name
893
+ length: 63
894
+ isNullable: true
895
+ - type: created_at
896
+ - type: updated_at
897
+ ifNotExists: true
898
+ setting_user:
899
+ columns:
900
+ - name: user_id
901
+ type: fk
902
+ isPrimary: true
903
+ references:
904
+ table: user
905
+ column: id
906
+ onDelete: CASCADE
907
+ - name: setting_id
908
+ type: fk
909
+ isPrimary: true
910
+ references:
911
+ table: setting
912
+ column: id
913
+ onDelete: CASCADE
914
+ - name: value
915
+ length: 1023
916
+ isNullable: true
917
+ - type: created_at
918
+ - type: updated_at
919
+ ifNotExists: true
676
920
  translation_namespace:
677
921
  columns:
678
922
  - type: pk
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hedhog/admin",
3
- "version": "0.48.9",
3
+ "version": "0.48.11",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -38,6 +38,7 @@
38
38
  },
39
39
  "peerDependencies": {
40
40
  "@hedhog/locale": "latest",
41
+ "@hedhog/mail": "latest",
41
42
  "@hedhog/pagination": "latest",
42
43
  "@hedhog/prisma": "latest",
43
44
  "@hedhog/utils": "latest",
@@ -5,12 +5,13 @@ import { PrismaModule } from '@hedhog/prisma';
5
5
  import { forwardRef, Module } from '@nestjs/common';
6
6
  import { ConfigModule } from '@nestjs/config';
7
7
  import { AuthModule } from './auth/auth.module';
8
- import { DashboardModule } from './dashboard/dashboard.module';
9
8
  import { CoreModule } from './core/core.module';
9
+ import { DashboardModule } from './dashboard/dashboard.module';
10
10
  import { MenuModule } from './menu/menu.module';
11
11
  import { RoleModule } from './role/role.module';
12
12
  import { RouteModule } from './route/route.module';
13
13
  import { ScreenModule } from './screen/screen.module';
14
+ import { SettingModule } from './setting/setting.module';
14
15
  import { UserModule } from './user/user.module';
15
16
 
16
17
  @Module({
@@ -28,6 +29,7 @@ import { UserModule } from './user/user.module';
28
29
  forwardRef(() => LocaleModule),
29
30
  forwardRef(() => UserModule),
30
31
  forwardRef(() => CoreModule),
32
+ forwardRef(() => SettingModule),
31
33
  ],
32
34
  exports: [
33
35
  UserModule,
package/src/index.ts CHANGED
@@ -18,3 +18,5 @@ export * from './screen/screen.service';
18
18
  // User Module
19
19
  export * from './user/constants/user.constants';
20
20
  export * from './user/user.service';
21
+
22
+ export * from './setting/setting.service';
@@ -0,0 +1,21 @@
1
+ import { IsString, IsInt, Length, IsBoolean } from 'class-validator';
2
+ import { WithLocaleDTO } from '@hedhog/locale';
3
+
4
+ export class CreateDTO extends WithLocaleDTO {
5
+ @IsString()
6
+ @Length(0, 255)
7
+ slug: string;
8
+
9
+ @IsString()
10
+ type: string;
11
+
12
+ @IsString()
13
+ @Length(0, 1023)
14
+ value: string;
15
+
16
+ @IsBoolean()
17
+ user_override: boolean;
18
+
19
+ @IsInt()
20
+ group_id: number;
21
+ }
@@ -0,0 +1,8 @@
1
+ import { ArrayMinSize, IsArray, IsInt } from 'class-validator';
2
+
3
+ export class DeleteDTO {
4
+ @IsArray()
5
+ @ArrayMinSize(1)
6
+ @IsInt({ each: true })
7
+ ids: number[];
8
+ }
@@ -0,0 +1,6 @@
1
+ import { IsString } from 'class-validator';
2
+
3
+ export class SettingUserDTO {
4
+ @IsString()
5
+ value: string;
6
+ }
@@ -0,0 +1,17 @@
1
+ import { Type } from 'class-transformer';
2
+ import { IsArray, IsString, ValidateNested } from 'class-validator';
3
+
4
+ class Setting {
5
+ @IsString()
6
+ slug: string;
7
+
8
+ @IsString()
9
+ value: string;
10
+ }
11
+
12
+ export class SettingDTO {
13
+ @IsArray()
14
+ @ValidateNested({ each: true })
15
+ @Type(() => Setting)
16
+ setting: Setting[];
17
+ }
@@ -0,0 +1,4 @@
1
+ import { PartialType } from '@nestjs/mapped-types';
2
+ import { CreateDTO } from './create.dto';
3
+
4
+ export class UpdateDTO extends PartialType(CreateDTO) {}
@@ -0,0 +1,105 @@
1
+ import { Public, Role, User } from '@hedhog/core';
2
+ import { Locale } from '@hedhog/locale';
3
+ import { Pagination } from '@hedhog/pagination';
4
+ import {
5
+ Body,
6
+ Controller,
7
+ Delete,
8
+ forwardRef,
9
+ Get,
10
+ Inject,
11
+ Param,
12
+ ParseIntPipe,
13
+ Patch,
14
+ Post,
15
+ Put,
16
+ } from '@nestjs/common';
17
+ import { CreateDTO } from './dto/create.dto';
18
+ import { DeleteDTO } from './dto/delete.dto';
19
+ import { SettingUserDTO } from './dto/setting-user.dto';
20
+ import { SettingDTO } from './dto/setting.dto';
21
+ import { UpdateDTO } from './dto/update.dto';
22
+ import { SettingService } from './setting.service';
23
+
24
+ @Role()
25
+ @Controller('setting')
26
+ export class SettingsController {
27
+ constructor(
28
+ @Inject(forwardRef(() => SettingService))
29
+ private readonly settingService: SettingService,
30
+ ) {}
31
+
32
+ @Get('group/:slug')
33
+ async getSettingFromGroup(
34
+ @Pagination() paginationParams,
35
+ @Locale() locale,
36
+ @Param('slug') slug: string,
37
+ ) {
38
+ return this.settingService.getSettingFromGroup(
39
+ locale,
40
+ paginationParams,
41
+ slug,
42
+ );
43
+ }
44
+
45
+ @Public()
46
+ @Get('group')
47
+ async listSettingGroups(@Pagination() paginationParams, @Locale() locale) {
48
+ return this.settingService.listSettingGroups(locale, paginationParams);
49
+ }
50
+
51
+ @Get('/user')
52
+ async getUserSettings(@User() { id }) {
53
+ return this.settingService.getUserSettings(id);
54
+ }
55
+
56
+ @Get()
57
+ async listSettings(@Pagination() paginationParams, @Locale() locale) {
58
+ return this.settingService.listSettings(locale, paginationParams);
59
+ }
60
+
61
+ @Get(':settingId')
62
+ async get(@Param('settingId', ParseIntPipe) settingId: number) {
63
+ return this.settingService.get(settingId);
64
+ }
65
+
66
+ @Post()
67
+ async create(@Body() data: CreateDTO) {
68
+ return this.settingService.create(data);
69
+ }
70
+
71
+ @Put('user/:slug')
72
+ async updateUserFromSlug(
73
+ @Param('slug') slug: string,
74
+ @Body() { value }: SettingUserDTO,
75
+ @User() { id },
76
+ ) {
77
+ return this.settingService.setSettingUserValue(id, slug, value);
78
+ }
79
+
80
+ @Put(':slug')
81
+ async updateFromSlug(@Param('slug') slug: string, @Body() data: UpdateDTO) {
82
+ return this.settingService.updateFromSlug(slug, data);
83
+ }
84
+
85
+ @Put()
86
+ async setManySettings(@Body() data: SettingDTO) {
87
+ return this.settingService.setManySettings(data);
88
+ }
89
+
90
+ @Patch(':settingId')
91
+ async update(
92
+ @Param('settingId', ParseIntPipe) settingId: number,
93
+ @Body() data: UpdateDTO,
94
+ ) {
95
+ return this.settingService.update({
96
+ id: settingId,
97
+ data,
98
+ });
99
+ }
100
+
101
+ @Delete()
102
+ async delete(@Body() data: DeleteDTO) {
103
+ return this.settingService.delete(data);
104
+ }
105
+ }
@@ -0,0 +1,11 @@
1
+ import { Module } from '@nestjs/common';
2
+ import { SettingsController } from './setting.controller';
3
+ import { SettingService } from './setting.service';
4
+
5
+ @Module({
6
+ imports: [],
7
+ controllers: [SettingsController],
8
+ providers: [SettingService],
9
+ exports: [SettingService],
10
+ })
11
+ export class SettingModule {}