@solidstarters/solid-core 1.2.50 → 1.2.52

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 (81) hide show
  1. package/dist/controllers/list-of-values.controller.d.ts +41 -0
  2. package/dist/controllers/list-of-values.controller.d.ts.map +1 -0
  3. package/dist/controllers/list-of-values.controller.js +179 -0
  4. package/dist/controllers/list-of-values.controller.js.map +1 -0
  5. package/dist/controllers/saved-filters.controller.d.ts +41 -0
  6. package/dist/controllers/saved-filters.controller.d.ts.map +1 -0
  7. package/dist/controllers/saved-filters.controller.js +179 -0
  8. package/dist/controllers/saved-filters.controller.js.map +1 -0
  9. package/dist/dtos/create-list-of-values.dto.d.ts +6 -6
  10. package/dist/dtos/create-list-of-values.dto.d.ts.map +1 -1
  11. package/dist/dtos/create-list-of-values.dto.js +24 -7
  12. package/dist/dtos/create-list-of-values.dto.js.map +1 -1
  13. package/dist/dtos/create-saved-filters.dto.d.ts +12 -0
  14. package/dist/dtos/create-saved-filters.dto.d.ts.map +1 -0
  15. package/dist/dtos/create-saved-filters.dto.js +80 -0
  16. package/dist/dtos/create-saved-filters.dto.js.map +1 -0
  17. package/dist/dtos/update-list-of-values.dto.d.ts +10 -0
  18. package/dist/dtos/update-list-of-values.dto.d.ts.map +1 -0
  19. package/dist/dtos/update-list-of-values.dto.js +67 -0
  20. package/dist/dtos/update-list-of-values.dto.js.map +1 -0
  21. package/dist/dtos/update-saved-filters.dto.d.ts +13 -0
  22. package/dist/dtos/update-saved-filters.dto.d.ts.map +1 -0
  23. package/dist/dtos/update-saved-filters.dto.js +82 -0
  24. package/dist/dtos/update-saved-filters.dto.js.map +1 -0
  25. package/dist/entities/list-of-values.entity.d.ts +1 -1
  26. package/dist/entities/list-of-values.entity.d.ts.map +1 -1
  27. package/dist/entities/list-of-values.entity.js +11 -7
  28. package/dist/entities/list-of-values.entity.js.map +1 -1
  29. package/dist/entities/saved-filters.entity.d.ts +13 -0
  30. package/dist/entities/saved-filters.entity.d.ts.map +1 -0
  31. package/dist/entities/saved-filters.entity.js +59 -0
  32. package/dist/entities/saved-filters.entity.js.map +1 -0
  33. package/dist/index.d.ts +2 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +2 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/interfaces.d.ts +8 -5
  38. package/dist/interfaces.d.ts.map +1 -1
  39. package/dist/interfaces.js.map +1 -1
  40. package/dist/providers/list-of-values-selection-providers.service.js +2 -2
  41. package/dist/providers/list-of-values-selection-providers.service.js.map +1 -1
  42. package/dist/seeders/module-metadata-seeder.service.d.ts +6 -2
  43. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  44. package/dist/seeders/module-metadata-seeder.service.js +24 -8
  45. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  46. package/dist/seeders/seed-data/solid-core-metadata.json +1199 -143
  47. package/dist/services/list-of-values.service.d.ts +21 -10
  48. package/dist/services/list-of-values.service.d.ts.map +1 -1
  49. package/dist/services/list-of-values.service.js +43 -31
  50. package/dist/services/list-of-values.service.js.map +1 -1
  51. package/dist/services/mail/SMTPEmailService.d.ts +3 -3
  52. package/dist/services/mail/SMTPEmailService.d.ts.map +1 -1
  53. package/dist/services/mail/SMTPEmailService.js +23 -6
  54. package/dist/services/mail/SMTPEmailService.js.map +1 -1
  55. package/dist/services/saved-filters.service.d.ts +22 -0
  56. package/dist/services/saved-filters.service.d.ts.map +1 -0
  57. package/dist/services/saved-filters.service.js +56 -0
  58. package/dist/services/saved-filters.service.js.map +1 -0
  59. package/dist/solid-core.module.d.ts.map +1 -1
  60. package/dist/solid-core.module.js +12 -0
  61. package/dist/solid-core.module.js.map +1 -1
  62. package/dist/tsconfig.tsbuildinfo +1 -1
  63. package/package.json +1 -1
  64. package/src/controllers/list-of-values.controller.ts +93 -0
  65. package/src/controllers/saved-filters.controller.ts +93 -0
  66. package/src/dtos/create-list-of-values.dto.ts +27 -19
  67. package/src/dtos/create-saved-filters.dto.ts +42 -0
  68. package/src/dtos/update-list-of-values.dto.ts +36 -0
  69. package/src/dtos/update-saved-filters.dto.ts +45 -0
  70. package/src/entities/list-of-values.entity.ts +9 -14
  71. package/src/entities/saved-filters.entity.ts +24 -0
  72. package/src/index.ts +2 -0
  73. package/src/interfaces.ts +14 -4
  74. package/src/providers/list-of-values-selection-providers.service.ts +2 -2
  75. package/src/seeders/module-metadata-seeder.service.ts +22 -3
  76. package/src/seeders/seed-data/solid-core-metadata.json +1447 -391
  77. package/src/services/list-of-values.service.ts +55 -47
  78. package/src/services/mail/SMTPEmailService.ts +26 -8
  79. package/src/services/saved-filters.service.ts +34 -0
  80. package/src/solid-core.module.ts +12 -0
  81. package/src/seeders/seed-data/solid-core-metadata.json.bkp +0 -6638
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solidstarters/solid-core",
3
- "version": "1.2.50",
3
+ "version": "1.2.52",
4
4
  "description": "This module is a NestJS module containing all the required core providers required by a Solid application",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -0,0 +1,93 @@
1
+ import { Controller, Post, Body, Param, UploadedFiles, UseInterceptors, Put, Get, Query, Delete, Patch } from '@nestjs/common';
2
+ import { AnyFilesInterceptor } from "@nestjs/platform-express";
3
+ import { ApiBearerAuth, ApiQuery, ApiTags } from '@nestjs/swagger';
4
+ import { ListOfValuesService } from '../services/list-of-values.service';
5
+ import { CreateListOfValuesDto } from '../dtos/create-list-of-values.dto';
6
+ import { UpdateListOfValuesDto } from '../dtos/update-list-of-values.dto';
7
+
8
+ enum ShowSoftDeleted {
9
+ INCLUSIVE = "inclusive",
10
+ EXCLUSIVE = "exclusive",
11
+ }
12
+
13
+ @ApiTags('Solid Core')
14
+ @Controller('list-of-values')
15
+ export class ListOfValuesController {
16
+ constructor(private readonly service: ListOfValuesService) {}
17
+
18
+ @ApiBearerAuth("jwt")
19
+ @Post()
20
+ @UseInterceptors(AnyFilesInterceptor())
21
+ create(@Body() createDto: CreateListOfValuesDto, @UploadedFiles() files: Array<Express.Multer.File>) {
22
+ return this.service.create(createDto, files);
23
+ }
24
+
25
+ @ApiBearerAuth("jwt")
26
+ @Post('/bulk')
27
+ @UseInterceptors(AnyFilesInterceptor())
28
+ insertMany(@Body() createDtos: CreateListOfValuesDto[], @UploadedFiles() filesArray: Express.Multer.File[][] = []) {
29
+ return this.service.insertMany(createDtos, filesArray);
30
+ }
31
+
32
+
33
+ @ApiBearerAuth("jwt")
34
+ @Put(':id')
35
+ @UseInterceptors(AnyFilesInterceptor())
36
+ update(@Param('id') id: number, @Body() updateDto: UpdateListOfValuesDto, @UploadedFiles() files: Array<Express.Multer.File>) {
37
+ return this.service.update(id, updateDto, files);
38
+ }
39
+
40
+ @ApiBearerAuth("jwt")
41
+ @Patch(':id')
42
+ @UseInterceptors(AnyFilesInterceptor())
43
+ partialUpdate(@Param('id') id: number, @Body() updateDto: UpdateListOfValuesDto, @UploadedFiles() files: Array<Express.Multer.File>) {
44
+ return this.service.update(id, updateDto, files, true);
45
+ }
46
+
47
+ @ApiBearerAuth("jwt")
48
+ @Post('/bulk-recover')
49
+ async recoverMany(@Body() ids: number[]) {
50
+ return this.service.recoverMany(ids);
51
+ }
52
+
53
+ @ApiBearerAuth("jwt")
54
+ @Get('/recover/:id')
55
+ async recover(@Param('id') id: number) {
56
+ return this.service.recover(id);
57
+ }
58
+
59
+ @ApiBearerAuth("jwt")
60
+ @ApiQuery({ name: 'showSoftDeleted', required: false, enum: ShowSoftDeleted })
61
+ @ApiQuery({ name: 'limit', required: false, type: Number })
62
+ @ApiQuery({ name: 'offset', required: false, type: Number })
63
+ @ApiQuery({ name: 'fields', required: false, type: Array })
64
+ @ApiQuery({ name: 'sort', required: false, type: Array })
65
+ @ApiQuery({ name: 'groupBy', required: false, type: Array })
66
+ @ApiQuery({ name: 'populate', required: false, type: Array })
67
+ @ApiQuery({ name: 'populateMedia', required: false, type: Array })
68
+ @ApiQuery({ name: 'filters', required: false, type: Array })
69
+ @Get()
70
+ async findMany(@Query() query: any) {
71
+ return this.service.find(query);
72
+ }
73
+
74
+ @ApiBearerAuth("jwt")
75
+ @Get(':id')
76
+ async findOne(@Param('id') id: string, @Query() query: any) {
77
+ return this.service.findOne(+id, query);
78
+ }
79
+
80
+ @ApiBearerAuth("jwt")
81
+ @Delete('/bulk')
82
+ async deleteMany(@Body() ids: number[]) {
83
+ return this.service.deleteMany(ids);
84
+ }
85
+
86
+ @ApiBearerAuth("jwt")
87
+ @Delete(':id')
88
+ async delete(@Param('id') id: number) {
89
+ return this.service.delete(id);
90
+ }
91
+
92
+
93
+ }
@@ -0,0 +1,93 @@
1
+ import { Controller, Post, Body, Param, UploadedFiles, UseInterceptors, Put, Get, Query, Delete, Patch } from '@nestjs/common';
2
+ import { AnyFilesInterceptor } from "@nestjs/platform-express";
3
+ import { ApiBearerAuth, ApiQuery, ApiTags } from '@nestjs/swagger';
4
+ import { SavedFiltersService } from '../services/saved-filters.service';
5
+ import { CreateSavedFiltersDto } from '../dtos/create-saved-filters.dto';
6
+ import { UpdateSavedFiltersDto } from '../dtos/update-saved-filters.dto';
7
+
8
+ enum ShowSoftDeleted {
9
+ INCLUSIVE = "inclusive",
10
+ EXCLUSIVE = "exclusive",
11
+ }
12
+
13
+ @ApiTags('Solid Core')
14
+ @Controller('saved-filters')
15
+ export class SavedFiltersController {
16
+ constructor(private readonly service: SavedFiltersService) {}
17
+
18
+ @ApiBearerAuth("jwt")
19
+ @Post()
20
+ @UseInterceptors(AnyFilesInterceptor())
21
+ create(@Body() createDto: CreateSavedFiltersDto, @UploadedFiles() files: Array<Express.Multer.File>) {
22
+ return this.service.create(createDto, files);
23
+ }
24
+
25
+ @ApiBearerAuth("jwt")
26
+ @Post('/bulk')
27
+ @UseInterceptors(AnyFilesInterceptor())
28
+ insertMany(@Body() createDtos: CreateSavedFiltersDto[], @UploadedFiles() filesArray: Express.Multer.File[][] = []) {
29
+ return this.service.insertMany(createDtos, filesArray);
30
+ }
31
+
32
+
33
+ @ApiBearerAuth("jwt")
34
+ @Put(':id')
35
+ @UseInterceptors(AnyFilesInterceptor())
36
+ update(@Param('id') id: number, @Body() updateDto: UpdateSavedFiltersDto, @UploadedFiles() files: Array<Express.Multer.File>) {
37
+ return this.service.update(id, updateDto, files);
38
+ }
39
+
40
+ @ApiBearerAuth("jwt")
41
+ @Patch(':id')
42
+ @UseInterceptors(AnyFilesInterceptor())
43
+ partialUpdate(@Param('id') id: number, @Body() updateDto: UpdateSavedFiltersDto, @UploadedFiles() files: Array<Express.Multer.File>) {
44
+ return this.service.update(id, updateDto, files, true);
45
+ }
46
+
47
+ @ApiBearerAuth("jwt")
48
+ @Post('/bulk-recover')
49
+ async recoverMany(@Body() ids: number[]) {
50
+ return this.service.recoverMany(ids);
51
+ }
52
+
53
+ @ApiBearerAuth("jwt")
54
+ @Get('/recover/:id')
55
+ async recover(@Param('id') id: number) {
56
+ return this.service.recover(id);
57
+ }
58
+
59
+ @ApiBearerAuth("jwt")
60
+ @ApiQuery({ name: 'showSoftDeleted', required: false, enum: ShowSoftDeleted })
61
+ @ApiQuery({ name: 'limit', required: false, type: Number })
62
+ @ApiQuery({ name: 'offset', required: false, type: Number })
63
+ @ApiQuery({ name: 'fields', required: false, type: Array })
64
+ @ApiQuery({ name: 'sort', required: false, type: Array })
65
+ @ApiQuery({ name: 'groupBy', required: false, type: Array })
66
+ @ApiQuery({ name: 'populate', required: false, type: Array })
67
+ @ApiQuery({ name: 'populateMedia', required: false, type: Array })
68
+ @ApiQuery({ name: 'filters', required: false, type: Array })
69
+ @Get()
70
+ async findMany(@Query() query: any) {
71
+ return this.service.find(query);
72
+ }
73
+
74
+ @ApiBearerAuth("jwt")
75
+ @Get(':id')
76
+ async findOne(@Param('id') id: string, @Query() query: any) {
77
+ return this.service.findOne(+id, query);
78
+ }
79
+
80
+ @ApiBearerAuth("jwt")
81
+ @Delete('/bulk')
82
+ async deleteMany(@Body() ids: number[]) {
83
+ return this.service.deleteMany(ids);
84
+ }
85
+
86
+ @ApiBearerAuth("jwt")
87
+ @Delete(':id')
88
+ async delete(@Param('id') id: number) {
89
+ return this.service.delete(id);
90
+ }
91
+
92
+
93
+ }
@@ -1,22 +1,30 @@
1
- import { ApiProperty } from "@nestjs/swagger";
1
+ import { ApiProperty } from '@nestjs/swagger';
2
+ import { IsString } from 'class-validator';
3
+ import { IsNotEmpty, IsBoolean, IsOptional, IsInt } from 'class-validator';
2
4
 
3
5
  export class CreateListOfValuesDto {
4
-
5
- @ApiProperty({ description: "Type of the LOV" })
6
- readonly type : string;
7
-
8
- @ApiProperty({ description: "Value of the LOV" })
9
- readonly value: string;
10
-
11
- @ApiProperty({ description: "Display of the LOV" })
12
- readonly display: string;
13
-
14
- @ApiProperty({ description: "Description of the LOV" })
15
- readonly description: string;
16
-
17
- @ApiProperty({ description: "Default value of the LOV type" })
18
- readonly default : boolean;
19
-
20
- @ApiProperty({ description: "Sequence of the LOV" })
21
- readonly sequence: number;
6
+ @IsNotEmpty()
7
+ @IsString()
8
+ @ApiProperty()
9
+ type: string;
10
+ @IsNotEmpty()
11
+ @IsString()
12
+ @ApiProperty()
13
+ value: string;
14
+ @IsNotEmpty()
15
+ @IsString()
16
+ @ApiProperty()
17
+ display: string;
18
+ @IsNotEmpty()
19
+ @IsString()
20
+ @ApiProperty()
21
+ description: string;
22
+ @IsOptional()
23
+ @IsBoolean()
24
+ @ApiProperty()
25
+ default: boolean = false;
26
+ @IsOptional()
27
+ @IsInt()
28
+ @ApiProperty()
29
+ sequence: number;
22
30
  }
@@ -0,0 +1,42 @@
1
+ import { ApiProperty } from '@nestjs/swagger';
2
+ import { IsString } from 'class-validator';
3
+ import { IsOptional, IsNotEmpty, IsBoolean, IsInt } from 'class-validator';
4
+
5
+ export class CreateSavedFiltersDto {
6
+ @IsOptional()
7
+ @IsString()
8
+ @ApiProperty()
9
+ filterQueryJson: string;
10
+ @IsNotEmpty()
11
+ @IsString()
12
+ @ApiProperty()
13
+ name: string;
14
+ @IsOptional()
15
+ @IsBoolean()
16
+ @ApiProperty()
17
+ isPrivate: boolean = false;
18
+ @IsOptional()
19
+ @IsInt()
20
+ @ApiProperty({ description: "This is the user id field" })
21
+ userId: number;
22
+ @IsString()
23
+ @IsOptional()
24
+ @ApiProperty({ description: "This is the user id field" })
25
+ userUserKey: string;
26
+ @IsOptional()
27
+ @IsInt()
28
+ @ApiProperty({ description: "This is the model related to saved filter." })
29
+ modelId: number;
30
+ @IsString()
31
+ @IsOptional()
32
+ @ApiProperty({ description: "This is the model related to saved filter." })
33
+ modelUserKey: string;
34
+ @IsOptional()
35
+ @IsInt()
36
+ @ApiProperty({ description: "This is the view related to saved filter." })
37
+ viewId: number;
38
+ @IsString()
39
+ @IsOptional()
40
+ @ApiProperty({ description: "This is the view related to saved filter." })
41
+ viewUserKey: string;
42
+ }
@@ -0,0 +1,36 @@
1
+ import { IsInt,IsOptional, IsString, IsNotEmpty, IsBoolean } from 'class-validator';
2
+ import { ApiProperty } from '@nestjs/swagger';
3
+
4
+ export class UpdateListOfValuesDto {
5
+ @IsOptional()
6
+ @IsInt()
7
+ id: number;
8
+ @IsNotEmpty()
9
+ @IsOptional()
10
+ @IsString()
11
+ @ApiProperty()
12
+ type: string;
13
+ @IsNotEmpty()
14
+ @IsOptional()
15
+ @IsString()
16
+ @ApiProperty()
17
+ value: string;
18
+ @IsNotEmpty()
19
+ @IsOptional()
20
+ @IsString()
21
+ @ApiProperty()
22
+ display: string;
23
+ @IsNotEmpty()
24
+ @IsOptional()
25
+ @IsString()
26
+ @ApiProperty()
27
+ description: string;
28
+ @IsOptional()
29
+ @IsBoolean()
30
+ @ApiProperty()
31
+ default: boolean;
32
+ @IsOptional()
33
+ @IsInt()
34
+ @ApiProperty()
35
+ sequence: number;
36
+ }
@@ -0,0 +1,45 @@
1
+ import { IsInt,IsOptional, IsString, IsNotEmpty, IsBoolean } from 'class-validator';
2
+ import { ApiProperty } from '@nestjs/swagger';
3
+
4
+ export class UpdateSavedFiltersDto {
5
+ @IsOptional()
6
+ @IsInt()
7
+ id: number;
8
+ @IsOptional()
9
+ @IsString()
10
+ @ApiProperty()
11
+ filterQueryJson: string;
12
+ @IsNotEmpty()
13
+ @IsOptional()
14
+ @IsString()
15
+ @ApiProperty()
16
+ name: string;
17
+ @IsOptional()
18
+ @IsBoolean()
19
+ @ApiProperty()
20
+ isPrivate: boolean;
21
+ @IsOptional()
22
+ @IsInt()
23
+ @ApiProperty({ description: "This is the user id field" })
24
+ userId: number;
25
+ @IsString()
26
+ @IsOptional()
27
+ @ApiProperty({ description: "This is the user id field" })
28
+ userUserKey: string;
29
+ @IsOptional()
30
+ @IsInt()
31
+ @ApiProperty({ description: "This is the model related to saved filter." })
32
+ modelId: number;
33
+ @IsString()
34
+ @IsOptional()
35
+ @ApiProperty({ description: "This is the model related to saved filter." })
36
+ modelUserKey: string;
37
+ @IsOptional()
38
+ @IsInt()
39
+ @ApiProperty({ description: "This is the view related to saved filter." })
40
+ viewId: number;
41
+ @IsString()
42
+ @IsOptional()
43
+ @ApiProperty({ description: "This is the view related to saved filter." })
44
+ viewUserKey: string;
45
+ }
@@ -1,23 +1,18 @@
1
- import { CommonEntity } from "src/entities/common.entity";
2
- import { Column, Entity } from "typeorm";
1
+ import { CommonEntity } from 'src/entities/common.entity'
2
+ import {Entity, Column} from 'typeorm'
3
3
 
4
4
  @Entity("ss_list_of_values")
5
5
  export class ListOfValues extends CommonEntity {
6
- @Column({ name: "type" })
6
+ @Column({ type: "varchar" })
7
7
  type: string;
8
-
9
- @Column({ name: "value" })
8
+ @Column({ type: "varchar" })
10
9
  value: string;
11
-
12
- @Column({ name: "display" })
10
+ @Column({ type: "varchar" })
13
11
  display: string;
14
-
15
- @Column({ name: "description" })
12
+ @Column({ type: "varchar" })
16
13
  description: string;
17
-
18
- @Column({ name: "default" })
19
- default: boolean;
20
-
21
- @Column({ name: "sequence" })
14
+ @Column({ type: "boolean", nullable: true, default: false })
15
+ default: boolean = false;
16
+ @Column({ type: "int", nullable: true })
22
17
  sequence: number;
23
18
  }
@@ -0,0 +1,24 @@
1
+ import { CommonEntity } from 'src/entities/common.entity'
2
+ import {Entity, Column, JoinColumn, ManyToOne} from 'typeorm';
3
+ import { User } from 'src/entities/user.entity';
4
+ import { ModelMetadata } from 'src/entities/model-metadata.entity';
5
+ import { ViewMetadata } from 'src/entities/view-metadata.entity'
6
+
7
+ @Entity("ss_saved_fitlers")
8
+ export class SavedFilters extends CommonEntity {
9
+ @Column({ type: "text", nullable: true })
10
+ filterQueryJson: string;
11
+ @Column({ type: "varchar" })
12
+ name: string;
13
+ @Column({ type: "boolean", nullable: true, default: false })
14
+ isPrivate: boolean = false;
15
+ @ManyToOne(() => User, { onDelete: "RESTRICT", nullable: false })
16
+ @JoinColumn()
17
+ user: User;
18
+ @ManyToOne(() => ModelMetadata, { onDelete: "RESTRICT", nullable: false })
19
+ @JoinColumn()
20
+ model: ModelMetadata;
21
+ @ManyToOne(() => ViewMetadata, { onDelete: "RESTRICT", nullable: false })
22
+ @JoinColumn()
23
+ view: ViewMetadata;
24
+ }
package/src/index.ts CHANGED
@@ -102,8 +102,10 @@ export * from './entities/user-password-history.entity'
102
102
  export * from './entities/user.entity'
103
103
  export * from './entities/view-metadata.entity'
104
104
  export * from './entities/setting.entity'
105
+ export * from './entities/saved-filters.entity'
105
106
  export * from './entities/user-view-metadata.entity'
106
107
  export * from './entities/security-rule.entity'
108
+ export * from './entities/saved-filters.entity'
107
109
 
108
110
  export * from './enums/auth-type.enum'
109
111
 
package/src/interfaces.ts CHANGED
@@ -7,10 +7,10 @@ import { CreateMenuItemMetadataDto } from './dtos/create-menu-item-metadata.dto'
7
7
  import { DatasourceType } from './dtos/create-model-metadata.dto';
8
8
  import { CreateModuleMetadataDto } from './dtos/create-module-metadata.dto';
9
9
  import { CreateRoleMetadataDto } from './dtos/create-role-metadata.dto';
10
+ import { CreateSecurityRuleDto } from './dtos/create-security-rule.dto';
10
11
  import { CreateViewMetadataDto } from './dtos/create-view-metadata.dto';
11
12
  import { FieldMetadata } from './entities/field-metadata.entity';
12
13
  import { Media } from './entities/media.entity';
13
- import { CreateSecurityRuleDto } from './dtos/create-security-rule.dto';
14
14
 
15
15
  export interface FieldCrudManager {
16
16
  // fieldMetadata: FieldMetadata;
@@ -111,7 +111,10 @@ export interface IMail {
111
111
  subject: string,
112
112
  body: string,
113
113
  shouldQueueEmails: boolean,
114
- attachments?: MailAttachmentWrapper[],
114
+ wrapperAttachments?: MailAttachmentWrapper[],
115
+ attachments?: MailAttachment[],
116
+ parentEntity?: any,
117
+ parentEntityId?: any,
115
118
  ): Promise<void>;
116
119
 
117
120
  sendEmailUsingTemplate(
@@ -119,6 +122,10 @@ export interface IMail {
119
122
  templateName: string,
120
123
  templateParams: any,
121
124
  shouldQueueEmails: boolean,
125
+ wrapperAttachments?: MailAttachmentWrapper[],
126
+ attachments?: MailAttachment[],
127
+ parentEntity?: any,
128
+ parentEntityId?: any,
122
129
  ): Promise<void>;
123
130
  }
124
131
 
@@ -140,8 +147,11 @@ export interface MailAttachmentWrapper {
140
147
 
141
148
  export interface MailAttachment {
142
149
  filename: string;
143
- templatePath: string;
144
- templateParams: any;
150
+ templatePath?: string;
151
+ templateParams?: any;
152
+ content?: string | Buffer;
153
+ contentType?: string;
154
+ path?: string;
145
155
  }
146
156
 
147
157
  export enum BrokerType {
@@ -32,8 +32,8 @@ export class ListOfValuesSelectionProvider implements ISelectionProvider<ListOfV
32
32
 
33
33
  async values(query: string, ctxt: ListOfValuesProviderContext): Promise<readonly ISelectionProviderValues[]> {
34
34
  const paginatedQuery = new PaginationQueryDto(DEFAULT_LIMIT, 0);
35
- const lovs = await this.listOfValuesService.findAll(paginatedQuery);
36
- const selectionValues = lovs.map(lov => {
35
+ const lovs = await this.listOfValuesService.find(paginatedQuery);
36
+ const selectionValues = lovs.records.map(lov => {
37
37
  return {
38
38
  label: lov.display,
39
39
  value: lov.value
@@ -34,6 +34,8 @@ import { SettingService } from 'src/services/setting.service';
34
34
  import { Setting } from 'src/entities/setting.entity';
35
35
  import { CreateSecurityRuleDto } from 'src/dtos/create-security-rule.dto';
36
36
  import { SecurityRuleRepository } from 'src/repository/security-rule.repository';
37
+ import { ListOfValuesService } from 'src/services/list-of-values.service';
38
+ import { CreateListOfValuesDto } from 'src/dtos/create-list-of-values.dto';
37
39
 
38
40
  @Injectable()
39
41
  export class ModuleMetadataSeederService {
@@ -53,6 +55,7 @@ export class ModuleMetadataSeederService {
53
55
  private readonly mediaStorageProviderSeederService: MediaStorageProviderMetadataSeederService,
54
56
  private readonly emailTemplateService: EmailTemplateService,
55
57
  private readonly smsTemplateService: SmsTemplateService,
58
+ private readonly listOfValuesService: ListOfValuesService,
56
59
  @InjectRepository(PermissionMetadata)
57
60
  private readonly permissionRepo: Repository<PermissionMetadata>,
58
61
  private readonly solidRegistry: SolidRegistry,
@@ -61,7 +64,7 @@ export class ModuleMetadataSeederService {
61
64
  @Inject(iamConfig.KEY) private readonly iamConfiguration: ConfigType<typeof iamConfig>,
62
65
  @Inject(commonConfig.KEY)
63
66
  private readonly commonConfiguration: ConfigType<typeof commonConfig>,
64
- private readonly service: SettingService,
67
+ private readonly seetingService: SettingService,
65
68
  @InjectRepository(Setting, 'default')
66
69
  readonly settingsRepo: Repository<Setting>,
67
70
  readonly securityRuleRepo: SecurityRuleRepository,
@@ -204,6 +207,12 @@ export class ModuleMetadataSeederService {
204
207
  await this.seedSecurityRules(securityRules);
205
208
  this.logger.debug(`[End] Processing security rules for ${moduleMetadata.name}`);
206
209
 
210
+ // List Of Values
211
+ this.logger.debug(`[Start] Processing security rules for ${moduleMetadata.name}`);
212
+ const listOfValues: CreateListOfValuesDto[] = overallMetadata.listOfValues;
213
+ await this.seedListOfValues(listOfValues);
214
+ this.logger.debug(`[End] Processing List Of Values for ${moduleMetadata.name}`);
215
+
207
216
  this.logger.debug(`[End] module seed data: ${overallMetadata}`);
208
217
 
209
218
  }
@@ -499,7 +508,7 @@ export class ModuleMetadataSeederService {
499
508
  async seedSettings(createDto: CreateSettingDto) {
500
509
  const settingsArray: any[] = await this.settingsRepo.find();
501
510
  if (!settingsArray || settingsArray.length === 0) {
502
- this.service.create(createDto);
511
+ this.seetingService.create(createDto);
503
512
  }
504
513
  }
505
514
 
@@ -509,7 +518,17 @@ export class ModuleMetadataSeederService {
509
518
  return;
510
519
  }
511
520
  for (const dto of rulesDto) {
512
- await this.securityRuleRepo.upsertWithDto({...dto, securityRuleConfig: JSON.stringify(dto.securityRuleConfig)});
521
+ await this.securityRuleRepo.upsertWithDto({ ...dto, securityRuleConfig: JSON.stringify(dto.securityRuleConfig) });
522
+ }
523
+ }
524
+
525
+ async seedListOfValues(listOfValuesDto: CreateListOfValuesDto[]) {
526
+ if (!listOfValuesDto || listOfValuesDto.length === 0) {
527
+ this.logger.debug(`No List Of Values found to seed`);
528
+ return;
529
+ }
530
+ for (let j = 0; j < listOfValuesDto.length; j++) {
531
+ await this.listOfValuesService.upsert(listOfValuesDto);
513
532
  }
514
533
  }
515
534