@solidstarters/solid-core 1.2.92 → 1.2.95
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.
- package/# Password field.md +8 -0
- package/dist/controllers/import-transaction.controller.d.ts +2 -1
- package/dist/controllers/import-transaction.controller.d.ts.map +1 -1
- package/dist/controllers/import-transaction.controller.js +16 -4
- package/dist/controllers/import-transaction.controller.js.map +1 -1
- package/dist/controllers/locale.controller.d.ts +41 -0
- package/dist/controllers/locale.controller.d.ts.map +1 -0
- package/dist/controllers/locale.controller.js +179 -0
- package/dist/controllers/locale.controller.js.map +1 -0
- package/dist/controllers/view-metadata.controller.d.ts +1 -0
- package/dist/controllers/view-metadata.controller.d.ts.map +1 -1
- package/dist/dtos/basic-filters.dto.d.ts +2 -0
- package/dist/dtos/basic-filters.dto.d.ts.map +1 -1
- package/dist/dtos/basic-filters.dto.js +11 -1
- package/dist/dtos/basic-filters.dto.js.map +1 -1
- package/dist/dtos/create-locale.dto.d.ts +6 -0
- package/dist/dtos/create-locale.dto.d.ts.map +1 -0
- package/dist/dtos/create-locale.dto.js +43 -0
- package/dist/dtos/create-locale.dto.js.map +1 -0
- package/dist/dtos/create-menu-item-metadata.dto.d.ts +2 -1
- package/dist/dtos/create-menu-item-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-menu-item-metadata.dto.js +22 -3
- package/dist/dtos/create-menu-item-metadata.dto.js.map +1 -1
- package/dist/dtos/create-model-metadata.dto.d.ts +1 -0
- package/dist/dtos/create-model-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-model-metadata.dto.js +7 -2
- package/dist/dtos/create-model-metadata.dto.js.map +1 -1
- package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-role-metadata.dto.js +11 -0
- package/dist/dtos/create-role-metadata.dto.js.map +1 -1
- package/dist/dtos/update-locale.dto.d.ts +7 -0
- package/dist/dtos/update-locale.dto.d.ts.map +1 -0
- package/dist/dtos/update-locale.dto.js +48 -0
- package/dist/dtos/update-locale.dto.js.map +1 -0
- package/dist/dtos/update-menu-item-metadata.dto.d.ts +2 -1
- package/dist/dtos/update-menu-item-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/update-menu-item-metadata.dto.js +24 -5
- package/dist/dtos/update-menu-item-metadata.dto.js.map +1 -1
- package/dist/dtos/update-role-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/update-role-metadata.dto.js +12 -1
- package/dist/dtos/update-role-metadata.dto.js.map +1 -1
- package/dist/entities/common.entity.d.ts +3 -0
- package/dist/entities/common.entity.d.ts.map +1 -1
- package/dist/entities/common.entity.js +13 -1
- package/dist/entities/common.entity.js.map +1 -1
- package/dist/entities/locale.entity.d.ts +7 -0
- package/dist/entities/locale.entity.d.ts.map +1 -0
- package/dist/entities/locale.entity.js +43 -0
- package/dist/entities/locale.entity.js.map +1 -0
- package/dist/entities/menu-item-metadata.entity.d.ts +2 -1
- package/dist/entities/menu-item-metadata.entity.d.ts.map +1 -1
- package/dist/entities/menu-item-metadata.entity.js +13 -8
- package/dist/entities/menu-item-metadata.entity.js.map +1 -1
- package/dist/entities/model-metadata.entity.d.ts +1 -0
- package/dist/entities/model-metadata.entity.d.ts.map +1 -1
- package/dist/entities/model-metadata.entity.js +5 -1
- package/dist/entities/model-metadata.entity.js.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/module-metadata-helper.service.d.ts.map +1 -1
- package/dist/helpers/module-metadata-helper.service.js.map +1 -1
- package/dist/helpers/solid-registry.d.ts +2 -0
- package/dist/helpers/solid-registry.d.ts.map +1 -1
- package/dist/helpers/solid-registry.js +5 -0
- package/dist/helpers/solid-registry.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +234 -0
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +8 -3
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/crud-helper.service.d.ts +1 -1
- package/dist/services/crud-helper.service.d.ts.map +1 -1
- package/dist/services/crud-helper.service.js +17 -2
- package/dist/services/crud-helper.service.js.map +1 -1
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +19 -6
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/import-transaction.service.d.ts +19 -6
- package/dist/services/import-transaction.service.d.ts.map +1 -1
- package/dist/services/import-transaction.service.js +214 -87
- package/dist/services/import-transaction.service.js.map +1 -1
- package/dist/services/locale.service.d.ts +26 -0
- package/dist/services/locale.service.d.ts.map +1 -0
- package/dist/services/locale.service.js +64 -0
- package/dist/services/locale.service.js.map +1 -0
- package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
- package/dist/services/menu-item-metadata.service.d.ts.map +1 -1
- package/dist/services/menu-item-metadata.service.js +1 -0
- package/dist/services/menu-item-metadata.service.js.map +1 -1
- package/dist/services/selection-providers/locale-list-selection-provider.service.d.ts +9 -0
- package/dist/services/selection-providers/locale-list-selection-provider.service.d.ts.map +1 -0
- package/dist/services/selection-providers/locale-list-selection-provider.service.js +87 -0
- package/dist/services/selection-providers/locale-list-selection-provider.service.js.map +1 -0
- package/dist/services/setting.service.d.ts.map +1 -1
- package/dist/services/setting.service.js +4 -2
- package/dist/services/setting.service.js.map +1 -1
- package/dist/services/view-metadata.service.d.ts +3 -0
- package/dist/services/view-metadata.service.d.ts.map +1 -1
- package/dist/services/view-metadata.service.js +73 -7
- package/dist/services/view-metadata.service.js.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +8 -0
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/model.subscriber.d.ts.map +1 -1
- package/dist/subscribers/model.subscriber.js +24 -0
- package/dist/subscribers/model.subscriber.js.map +1 -1
- package/dist/transformers/datetime-transformer.d.ts +4 -0
- package/dist/transformers/datetime-transformer.d.ts.map +1 -0
- package/dist/transformers/datetime-transformer.js +11 -0
- package/dist/transformers/datetime-transformer.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -1
- package/src/controllers/import-transaction.controller.ts +9 -3
- package/src/controllers/locale.controller.ts +94 -0
- package/src/dtos/basic-filters.dto.ts +13 -1
- package/src/dtos/create-locale.dto.ts +17 -0
- package/src/dtos/create-menu-item-metadata.dto.ts +21 -13
- package/src/dtos/create-model-metadata.dto.ts +5 -1
- package/src/dtos/create-role-metadata.dto.ts +48 -45
- package/src/dtos/update-locale.dto.ts +23 -0
- package/src/dtos/update-menu-item-metadata.dto.ts +23 -16
- package/src/dtos/update-role-metadata.dto.ts +49 -47
- package/src/entities/common.entity.ts +11 -1
- package/src/entities/locale.entity.ts +14 -0
- package/src/entities/menu-item-metadata.entity.ts +14 -14
- package/src/entities/model-metadata.entity.ts +3 -0
- package/src/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.ts +2 -1
- package/src/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.ts +1 -0
- package/src/helpers/module-metadata-helper.service.ts +0 -1
- package/src/helpers/solid-registry.ts +11 -2
- package/src/index.ts +6 -3
- package/src/seeders/seed-data/email-templates/forgot-password.handlebars.html +134 -154
- package/src/seeders/seed-data/email-templates/on-force-password-change.handlebars.html +141 -195
- package/src/seeders/seed-data/email-templates/otp-on-login.handlebars.html +130 -144
- package/src/seeders/seed-data/email-templates/otp-on-register.handlebars.html +131 -145
- package/src/seeders/seed-data/solid-core-metadata.json +234 -0
- package/src/services/authentication.service.ts +8 -3
- package/src/services/crud-helper.service.ts +30 -12
- package/src/services/crud.service.ts +51 -35
- package/src/services/import-transaction.service.ts +313 -121
- package/src/services/locale.service.ts +37 -0
- package/src/services/mediaStorageProviders/file-storage-provider.ts +1 -1
- package/src/services/menu-item-metadata.service.ts +2 -0
- package/src/services/pending_import_issues +3 -0
- package/src/services/selection-providers/locale-list-selection-provider.service.ts +58 -0
- package/src/services/setting.service.ts +4 -2
- package/src/services/view-metadata.service.ts +179 -14
- package/src/solid-core.module.ts +8 -0
- package/src/subscribers/model.subscriber.ts +24 -0
- package/src/transformers/datetime-transformer.ts +12 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solidstarters/solid-core",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.95",
|
|
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",
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
"fast-csv": "^5.0.2",
|
|
49
49
|
"handlebars": "^4.7.8",
|
|
50
50
|
"ioredis": "^5.4.1",
|
|
51
|
+
"locale-codes": "^1.3.1",
|
|
51
52
|
"lodash": "^4.17.21",
|
|
52
53
|
"luxon": "^3.4.4",
|
|
53
54
|
"mailgen": "^2.0.28",
|
|
@@ -108,9 +108,15 @@ export class ImportTransactionController {
|
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
@ApiBearerAuth("jwt")
|
|
111
|
-
@Post(':id/import
|
|
112
|
-
async
|
|
113
|
-
return this.service.
|
|
111
|
+
@Post(':id/start-import/sync')
|
|
112
|
+
async startImportSync(@Param('id') id: string) {
|
|
113
|
+
return this.service.startImportSync(+id);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
@ApiBearerAuth("jwt")
|
|
117
|
+
@Post(':id/start-import/async')
|
|
118
|
+
async startImportAsync(@Param('id') id: string) {
|
|
119
|
+
return this.service.startImportAsync(+id);
|
|
114
120
|
}
|
|
115
121
|
|
|
116
122
|
@ApiBearerAuth("jwt")
|
|
@@ -0,0 +1,94 @@
|
|
|
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 { SolidRequestContextDecorator } from 'src/decorators/solid-request-context.decorator';
|
|
5
|
+
import { SolidRequestContextDto } from 'src/dtos/solid-request-context.dto';
|
|
6
|
+
import { LocaleService } from 'src/services/locale.service';
|
|
7
|
+
import { CreateLocaleDto } from 'src/dtos/create-locale.dto';
|
|
8
|
+
import { UpdateLocaleDto } from 'src/dtos/update-locale.dto';
|
|
9
|
+
|
|
10
|
+
enum ShowSoftDeleted {
|
|
11
|
+
INCLUSIVE = "inclusive",
|
|
12
|
+
EXCLUSIVE = "exclusive",
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@ApiTags('Solid Core')
|
|
16
|
+
@Controller('locale')
|
|
17
|
+
export class LocaleController {
|
|
18
|
+
constructor(private readonly service: LocaleService) { }
|
|
19
|
+
|
|
20
|
+
@ApiBearerAuth("jwt")
|
|
21
|
+
@Post()
|
|
22
|
+
@UseInterceptors(AnyFilesInterceptor())
|
|
23
|
+
create(@Body() createDto: CreateLocaleDto, @UploadedFiles() files: Array<Express.Multer.File>) {
|
|
24
|
+
return this.service.create(createDto, files);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@ApiBearerAuth("jwt")
|
|
28
|
+
@Post('/bulk')
|
|
29
|
+
@UseInterceptors(AnyFilesInterceptor())
|
|
30
|
+
insertMany(@Body() createDtos: CreateLocaleDto[], @UploadedFiles() filesArray: Express.Multer.File[][] = []) {
|
|
31
|
+
return this.service.insertMany(createDtos, filesArray);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@ApiBearerAuth("jwt")
|
|
36
|
+
@Put(':id')
|
|
37
|
+
@UseInterceptors(AnyFilesInterceptor())
|
|
38
|
+
update(@Param('id') id: number, @Body() updateDto: UpdateLocaleDto, @UploadedFiles() files: Array<Express.Multer.File>) {
|
|
39
|
+
return this.service.update(id, updateDto, files);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@ApiBearerAuth("jwt")
|
|
43
|
+
@Patch(':id')
|
|
44
|
+
@UseInterceptors(AnyFilesInterceptor())
|
|
45
|
+
partialUpdate(@Param('id') id: number, @Body() updateDto: UpdateLocaleDto, @UploadedFiles() files: Array<Express.Multer.File>) {
|
|
46
|
+
return this.service.update(id, updateDto, files, true);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@ApiBearerAuth("jwt")
|
|
50
|
+
@Post('/bulk-recover')
|
|
51
|
+
async recoverMany(@Body() ids: number[]) {
|
|
52
|
+
return this.service.recoverMany(ids);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
@ApiBearerAuth("jwt")
|
|
56
|
+
@Get('/recover/:id')
|
|
57
|
+
async recover(@Param('id') id: number) {
|
|
58
|
+
return this.service.recover(id);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
@ApiBearerAuth("jwt")
|
|
62
|
+
@ApiQuery({ name: 'showSoftDeleted', required: false, enum: ShowSoftDeleted })
|
|
63
|
+
@ApiQuery({ name: 'limit', required: false, type: Number })
|
|
64
|
+
@ApiQuery({ name: 'offset', required: false, type: Number })
|
|
65
|
+
@ApiQuery({ name: 'fields', required: false, type: Array })
|
|
66
|
+
@ApiQuery({ name: 'sort', required: false, type: Array })
|
|
67
|
+
@ApiQuery({ name: 'groupBy', required: false, type: Array })
|
|
68
|
+
@ApiQuery({ name: 'populate', required: false, type: Array })
|
|
69
|
+
@ApiQuery({ name: 'populateMedia', required: false, type: Array })
|
|
70
|
+
@ApiQuery({ name: 'filters', required: false, type: Array })
|
|
71
|
+
@Get()
|
|
72
|
+
async findMany(@Query() query: any) {
|
|
73
|
+
return this.service.find(query);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
@ApiBearerAuth("jwt")
|
|
77
|
+
@Get(':id')
|
|
78
|
+
async findOne(@Param('id') id: string, @Query() query: any) {
|
|
79
|
+
return this.service.findOne(+id, query);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
@ApiBearerAuth("jwt")
|
|
83
|
+
@Delete('/bulk')
|
|
84
|
+
async deleteMany(@Body() ids: number[]) {
|
|
85
|
+
return this.service.deleteMany(ids);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
@ApiBearerAuth("jwt")
|
|
89
|
+
@Delete(':id')
|
|
90
|
+
async delete(@Param('id') id: number) {
|
|
91
|
+
return this.service.delete(id);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { ApiProperty } from "@nestjs/swagger";
|
|
3
3
|
import { IsEnum, IsOptional } from "class-validator";
|
|
4
4
|
import { PaginationQueryDto } from "./pagination-query.dto";
|
|
5
|
+
import { Timestamp } from "typeorm";
|
|
5
6
|
|
|
6
7
|
export enum SoftDeleteFilter {
|
|
7
8
|
INCLUSIVE = "inclusive",
|
|
@@ -32,7 +33,6 @@ export class BasicFilterDto extends PaginationQueryDto {
|
|
|
32
33
|
@ApiProperty({ description: "populateMedia" })
|
|
33
34
|
readonly populateMedia?: string[];
|
|
34
35
|
|
|
35
|
-
|
|
36
36
|
// @IsOptional()
|
|
37
37
|
// @ApiProperty({ description: "filters" })
|
|
38
38
|
// readonly filters: any[];
|
|
@@ -52,4 +52,16 @@ export class BasicFilterDto extends PaginationQueryDto {
|
|
|
52
52
|
@IsOptional()
|
|
53
53
|
@ApiProperty({ description: "groupFilter" })
|
|
54
54
|
groupFilter?: BasicFilterDto
|
|
55
|
+
|
|
56
|
+
@IsOptional()
|
|
57
|
+
@ApiProperty({ description: "locale" })
|
|
58
|
+
readonly locale?: string;
|
|
59
|
+
|
|
60
|
+
@IsOptional()
|
|
61
|
+
@ApiProperty({ description: "status publish draft" })
|
|
62
|
+
readonly status?: string;
|
|
63
|
+
|
|
64
|
+
// @IsOptional()
|
|
65
|
+
// @ApiProperty({ description: "default locale id" })
|
|
66
|
+
// readonly defaultEntityLocaleId?: number;
|
|
55
67
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { IsString, IsBoolean, IsOptional, IsNotEmpty } from 'class-validator';
|
|
2
|
+
import { ApiProperty } from '@nestjs/swagger';
|
|
3
|
+
|
|
4
|
+
export class CreateLocaleDto {
|
|
5
|
+
@IsNotEmpty()
|
|
6
|
+
@IsString()
|
|
7
|
+
@ApiProperty()
|
|
8
|
+
locale: string;
|
|
9
|
+
@IsNotEmpty()
|
|
10
|
+
@IsString()
|
|
11
|
+
@ApiProperty()
|
|
12
|
+
displayName: string;
|
|
13
|
+
@IsNotEmpty()
|
|
14
|
+
@IsBoolean()
|
|
15
|
+
@ApiProperty()
|
|
16
|
+
isDefault: boolean = true;
|
|
17
|
+
}
|
|
@@ -2,59 +2,67 @@ import { IsNumber, IsString } from 'class-validator';
|
|
|
2
2
|
import { Matches } from 'class-validator';
|
|
3
3
|
import { IsNotEmpty, IsInt, IsOptional, ValidateNested, IsArray } from 'class-validator';
|
|
4
4
|
import { Transform, Type } from 'class-transformer';
|
|
5
|
-
import { UpdateRoleMetadataDto } from './update-role-metadata.dto';
|
|
6
5
|
import arrayTransformer from '../transformers/array-transformer';
|
|
6
|
+
import { ApiProperty } from '@nestjs/swagger';
|
|
7
|
+
import { UpdateRoleMetadataDto } from 'src/dtos/update-role-metadata.dto';
|
|
8
|
+
|
|
7
9
|
export class CreateMenuItemMetadataDto {
|
|
8
10
|
@IsNotEmpty()
|
|
9
11
|
@Matches(/[a-z]+(-[a-z]+)*/)
|
|
10
12
|
@IsString()
|
|
13
|
+
@ApiProperty()
|
|
11
14
|
name: string;
|
|
12
|
-
|
|
13
15
|
@IsNotEmpty()
|
|
14
16
|
@IsString()
|
|
17
|
+
@ApiProperty()
|
|
15
18
|
displayName: string;
|
|
16
|
-
|
|
17
19
|
@IsOptional()
|
|
18
20
|
@IsInt()
|
|
21
|
+
@ApiProperty()
|
|
19
22
|
moduleId: number;
|
|
20
|
-
|
|
21
23
|
@IsString()
|
|
22
24
|
@IsOptional()
|
|
25
|
+
@ApiProperty()
|
|
23
26
|
moduleUserKey: string;
|
|
24
|
-
|
|
25
27
|
@IsOptional()
|
|
26
28
|
@IsInt()
|
|
29
|
+
@ApiProperty()
|
|
27
30
|
parentMenuItemId: number;
|
|
28
|
-
|
|
29
31
|
@IsString()
|
|
30
32
|
@IsOptional()
|
|
33
|
+
@ApiProperty()
|
|
31
34
|
parentMenuItemUserKey: string;
|
|
32
|
-
|
|
33
35
|
@IsOptional()
|
|
34
36
|
@IsInt()
|
|
37
|
+
@ApiProperty()
|
|
35
38
|
actionId: number;
|
|
36
|
-
|
|
37
39
|
@IsString()
|
|
38
40
|
@IsOptional()
|
|
41
|
+
@ApiProperty()
|
|
39
42
|
actionUserKey: string;
|
|
40
|
-
|
|
43
|
+
@Transform(arrayTransformer)
|
|
41
44
|
@IsOptional()
|
|
45
|
+
@ApiProperty()
|
|
42
46
|
@IsArray()
|
|
43
|
-
@Transform(arrayTransformer)
|
|
44
47
|
@ValidateNested({ each: true })
|
|
45
48
|
@Type(() => UpdateRoleMetadataDto)
|
|
46
49
|
roles: UpdateRoleMetadataDto[];
|
|
47
|
-
|
|
48
50
|
@IsOptional()
|
|
49
51
|
@IsArray()
|
|
52
|
+
@ApiProperty()
|
|
50
53
|
rolesIds: number[];
|
|
51
|
-
|
|
52
54
|
@IsString()
|
|
53
55
|
@IsOptional()
|
|
56
|
+
@ApiProperty()
|
|
54
57
|
rolesCommand: string;
|
|
55
|
-
|
|
56
58
|
@IsOptional()
|
|
57
59
|
@IsNumber()
|
|
60
|
+
@ApiProperty()
|
|
58
61
|
sequenceNumber: number;
|
|
59
62
|
|
|
63
|
+
@IsOptional()
|
|
64
|
+
@IsString()
|
|
65
|
+
@ApiProperty()
|
|
66
|
+
iconName: string;
|
|
67
|
+
|
|
60
68
|
}
|
|
@@ -63,10 +63,14 @@ export class CreateModelMetadataDto {
|
|
|
63
63
|
@IsBoolean()
|
|
64
64
|
readonly enableAuditTracking: boolean
|
|
65
65
|
|
|
66
|
-
@ApiProperty({ description: "
|
|
66
|
+
@ApiProperty({ description: "Internationalisation" })
|
|
67
67
|
@IsBoolean()
|
|
68
68
|
readonly internationalisation: boolean
|
|
69
69
|
|
|
70
|
+
@ApiProperty({ description: "Draft publish workflow" })
|
|
71
|
+
@IsBoolean()
|
|
72
|
+
readonly draftPublishWorkflow: boolean
|
|
73
|
+
|
|
70
74
|
@ApiProperty({ description: "Related module id" })
|
|
71
75
|
@IsInt()
|
|
72
76
|
@IsOptional()
|
|
@@ -4,50 +4,53 @@ import { Type } from 'class-transformer';
|
|
|
4
4
|
import { UpdatePermissionMetadataDto } from 'src/dtos/update-permission-metadata.dto';
|
|
5
5
|
import { UpdateUserDto } from 'src/dtos/update-user.dto';
|
|
6
6
|
import { UpdateMenuItemMetadataDto } from 'src/dtos/update-menu-item-metadata.dto';
|
|
7
|
-
|
|
8
|
-
@IsNotEmpty()
|
|
9
|
-
@IsString()
|
|
10
|
-
name: string;
|
|
11
|
-
|
|
12
|
-
@IsOptional()
|
|
13
|
-
@IsArray()
|
|
14
|
-
@ValidateNested({ each : true })
|
|
15
|
-
@Type(() => UpdatePermissionMetadataDto)
|
|
16
|
-
permissions: UpdatePermissionMetadataDto[];
|
|
17
|
-
|
|
18
|
-
@IsOptional()
|
|
19
|
-
@IsArray()
|
|
20
|
-
permissionsIds: number[];
|
|
21
|
-
|
|
22
|
-
@IsString()
|
|
23
|
-
@IsOptional()
|
|
24
|
-
permissionsCommand: string;
|
|
25
|
-
|
|
26
|
-
@IsOptional()
|
|
27
|
-
@IsArray()
|
|
28
|
-
@ValidateNested({ each : true })
|
|
29
|
-
@Type(() => UpdateUserDto)
|
|
30
|
-
users: UpdateUserDto[];
|
|
7
|
+
import { ApiProperty } from '@nestjs/swagger';
|
|
31
8
|
|
|
32
|
-
|
|
33
|
-
@
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
@IsOptional()
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
@
|
|
41
|
-
@
|
|
42
|
-
|
|
43
|
-
@
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
@
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
@IsOptional()
|
|
52
|
-
|
|
9
|
+
export class CreateRoleMetadataDto {
|
|
10
|
+
@IsNotEmpty()
|
|
11
|
+
@IsString()
|
|
12
|
+
@ApiProperty()
|
|
13
|
+
name: string;
|
|
14
|
+
@IsOptional()
|
|
15
|
+
@ApiProperty()
|
|
16
|
+
@IsArray()
|
|
17
|
+
@ValidateNested({ each: true })
|
|
18
|
+
@Type(() => UpdatePermissionMetadataDto)
|
|
19
|
+
permissions: UpdatePermissionMetadataDto[];
|
|
20
|
+
@IsOptional()
|
|
21
|
+
@IsArray()
|
|
22
|
+
@ApiProperty()
|
|
23
|
+
permissionsIds: number[];
|
|
24
|
+
@IsString()
|
|
25
|
+
@IsOptional()
|
|
26
|
+
@ApiProperty()
|
|
27
|
+
permissionsCommand: string;
|
|
28
|
+
@IsOptional()
|
|
29
|
+
@ApiProperty()
|
|
30
|
+
@IsArray()
|
|
31
|
+
@ValidateNested({ each: true })
|
|
32
|
+
@Type(() => UpdateUserDto)
|
|
33
|
+
users: UpdateUserDto[];
|
|
34
|
+
@IsOptional()
|
|
35
|
+
@IsArray()
|
|
36
|
+
@ApiProperty()
|
|
37
|
+
usersIds: number[];
|
|
38
|
+
@IsString()
|
|
39
|
+
@IsOptional()
|
|
40
|
+
@ApiProperty()
|
|
41
|
+
usersCommand: string;
|
|
42
|
+
@IsOptional()
|
|
43
|
+
@ApiProperty()
|
|
44
|
+
@IsArray()
|
|
45
|
+
@ValidateNested({ each: true })
|
|
46
|
+
@Type(() => UpdateMenuItemMetadataDto)
|
|
47
|
+
menuItems: UpdateMenuItemMetadataDto[];
|
|
48
|
+
@IsOptional()
|
|
49
|
+
@IsArray()
|
|
50
|
+
@ApiProperty()
|
|
51
|
+
menuItemsIds: number[];
|
|
52
|
+
@IsString()
|
|
53
|
+
@IsOptional()
|
|
54
|
+
@ApiProperty()
|
|
55
|
+
menuItemsCommand: string;
|
|
53
56
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { IsString, IsBoolean, IsOptional, IsInt, IsNotEmpty } from 'class-validator';
|
|
2
|
+
import { ApiProperty } from '@nestjs/swagger';
|
|
3
|
+
|
|
4
|
+
export class UpdateLocaleDto {
|
|
5
|
+
@IsOptional()
|
|
6
|
+
@IsInt()
|
|
7
|
+
id: number;
|
|
8
|
+
@IsNotEmpty()
|
|
9
|
+
@IsOptional()
|
|
10
|
+
@IsString()
|
|
11
|
+
@ApiProperty()
|
|
12
|
+
locale: string;
|
|
13
|
+
@IsNotEmpty()
|
|
14
|
+
@IsOptional()
|
|
15
|
+
@IsString()
|
|
16
|
+
@ApiProperty()
|
|
17
|
+
displayName: string;
|
|
18
|
+
@IsNotEmpty()
|
|
19
|
+
@IsOptional()
|
|
20
|
+
@IsBoolean()
|
|
21
|
+
@ApiProperty()
|
|
22
|
+
isDefault: boolean;
|
|
23
|
+
}
|
|
@@ -1,64 +1,71 @@
|
|
|
1
1
|
import { IsInt, IsOptional, IsString, Matches, IsNotEmpty, ValidateNested, IsArray, IsNumber } from 'class-validator';
|
|
2
2
|
import { Transform, Type } from 'class-transformer';
|
|
3
|
-
import { UpdateRoleMetadataDto } from './update-role-metadata.dto';
|
|
4
3
|
import arrayTransformer from '../transformers/array-transformer';
|
|
4
|
+
import { ApiProperty } from '@nestjs/swagger';
|
|
5
|
+
import { UpdateRoleMetadataDto } from 'src/dtos/update-role-metadata.dto';
|
|
6
|
+
|
|
5
7
|
export class UpdateMenuItemMetadataDto {
|
|
6
8
|
@IsOptional()
|
|
7
9
|
@IsInt()
|
|
8
10
|
id: number;
|
|
9
|
-
|
|
10
|
-
@IsOptional()
|
|
11
11
|
@IsNotEmpty()
|
|
12
|
+
@IsOptional()
|
|
12
13
|
@Matches(/[a-z]+(-[a-z]+)*/)
|
|
13
14
|
@IsString()
|
|
15
|
+
@ApiProperty()
|
|
14
16
|
name: string;
|
|
15
|
-
|
|
16
|
-
@IsOptional()
|
|
17
17
|
@IsNotEmpty()
|
|
18
|
+
@IsOptional()
|
|
18
19
|
@IsString()
|
|
20
|
+
@ApiProperty()
|
|
19
21
|
displayName: string;
|
|
20
|
-
|
|
21
22
|
@IsOptional()
|
|
22
23
|
@IsInt()
|
|
24
|
+
@ApiProperty()
|
|
23
25
|
moduleId: number;
|
|
24
|
-
|
|
25
26
|
@IsString()
|
|
26
27
|
@IsOptional()
|
|
28
|
+
@ApiProperty()
|
|
27
29
|
moduleUserKey: string;
|
|
28
|
-
|
|
29
30
|
@IsOptional()
|
|
30
31
|
@IsInt()
|
|
32
|
+
@ApiProperty()
|
|
31
33
|
parentMenuItemId: number;
|
|
32
|
-
|
|
33
34
|
@IsString()
|
|
34
35
|
@IsOptional()
|
|
36
|
+
@ApiProperty()
|
|
35
37
|
parentMenuItemUserKey: string;
|
|
36
|
-
|
|
37
38
|
@IsOptional()
|
|
38
39
|
@IsInt()
|
|
40
|
+
@ApiProperty()
|
|
39
41
|
actionId: number;
|
|
40
|
-
|
|
41
42
|
@IsString()
|
|
42
43
|
@IsOptional()
|
|
44
|
+
@ApiProperty()
|
|
43
45
|
actionUserKey: string;
|
|
44
|
-
|
|
46
|
+
@Transform(arrayTransformer)
|
|
45
47
|
@IsOptional()
|
|
48
|
+
@ApiProperty()
|
|
46
49
|
@IsArray()
|
|
47
|
-
@Transform(arrayTransformer)
|
|
48
50
|
@ValidateNested({ each: true })
|
|
49
51
|
@Type(() => UpdateRoleMetadataDto)
|
|
50
52
|
roles: UpdateRoleMetadataDto[];
|
|
51
|
-
|
|
52
53
|
@IsOptional()
|
|
53
54
|
@IsArray()
|
|
55
|
+
@ApiProperty()
|
|
54
56
|
rolesIds: number[];
|
|
55
|
-
|
|
56
57
|
@IsString()
|
|
57
58
|
@IsOptional()
|
|
59
|
+
@ApiProperty()
|
|
58
60
|
rolesCommand: string;
|
|
59
|
-
|
|
60
61
|
@IsOptional()
|
|
61
62
|
@IsNumber()
|
|
63
|
+
@ApiProperty()
|
|
62
64
|
sequenceNumber: number;
|
|
63
65
|
|
|
66
|
+
@IsOptional()
|
|
67
|
+
@IsString()
|
|
68
|
+
@ApiProperty()
|
|
69
|
+
iconName: string;
|
|
70
|
+
|
|
64
71
|
}
|
|
@@ -3,55 +3,57 @@ import { Type } from 'class-transformer';
|
|
|
3
3
|
import { UpdatePermissionMetadataDto } from 'src/dtos/update-permission-metadata.dto';
|
|
4
4
|
import { UpdateUserDto } from 'src/dtos/update-user.dto';
|
|
5
5
|
import { UpdateMenuItemMetadataDto } from 'src/dtos/update-menu-item-metadata.dto';
|
|
6
|
+
import { ApiProperty } from '@nestjs/swagger';
|
|
7
|
+
|
|
6
8
|
export class UpdateRoleMetadataDto {
|
|
7
9
|
@IsOptional()
|
|
8
10
|
@IsInt()
|
|
9
11
|
id: number;
|
|
10
|
-
|
|
11
|
-
@IsOptional()
|
|
12
|
-
@
|
|
13
|
-
@
|
|
14
|
-
name: string;
|
|
15
|
-
|
|
16
|
-
@
|
|
17
|
-
@IsArray()
|
|
18
|
-
@ValidateNested({ each
|
|
19
|
-
@Type(() => UpdatePermissionMetadataDto)
|
|
20
|
-
permissions: UpdatePermissionMetadataDto[];
|
|
21
|
-
|
|
22
|
-
@
|
|
23
|
-
@
|
|
24
|
-
permissionsIds: number[];
|
|
25
|
-
|
|
26
|
-
@
|
|
27
|
-
@
|
|
28
|
-
permissionsCommand: string;
|
|
29
|
-
|
|
30
|
-
@
|
|
31
|
-
@IsArray()
|
|
32
|
-
@ValidateNested({ each
|
|
33
|
-
@Type(() => UpdateUserDto)
|
|
34
|
-
users: UpdateUserDto[];
|
|
35
|
-
|
|
36
|
-
@
|
|
37
|
-
@
|
|
38
|
-
usersIds: number[];
|
|
39
|
-
|
|
40
|
-
@
|
|
41
|
-
@
|
|
42
|
-
usersCommand: string;
|
|
43
|
-
|
|
44
|
-
@
|
|
45
|
-
@IsArray()
|
|
46
|
-
@ValidateNested({ each
|
|
47
|
-
@Type(() => UpdateMenuItemMetadataDto)
|
|
48
|
-
menuItems: UpdateMenuItemMetadataDto[];
|
|
49
|
-
|
|
50
|
-
@
|
|
51
|
-
@
|
|
52
|
-
menuItemsIds: number[];
|
|
53
|
-
|
|
54
|
-
@
|
|
55
|
-
@
|
|
56
|
-
menuItemsCommand: string;
|
|
12
|
+
@IsNotEmpty()
|
|
13
|
+
@IsOptional()
|
|
14
|
+
@IsString()
|
|
15
|
+
@ApiProperty()
|
|
16
|
+
name: string;
|
|
17
|
+
@IsOptional()
|
|
18
|
+
@ApiProperty()
|
|
19
|
+
@IsArray()
|
|
20
|
+
@ValidateNested({ each: true })
|
|
21
|
+
@Type(() => UpdatePermissionMetadataDto)
|
|
22
|
+
permissions: UpdatePermissionMetadataDto[];
|
|
23
|
+
@IsOptional()
|
|
24
|
+
@IsArray()
|
|
25
|
+
@ApiProperty()
|
|
26
|
+
permissionsIds: number[];
|
|
27
|
+
@IsString()
|
|
28
|
+
@IsOptional()
|
|
29
|
+
@ApiProperty()
|
|
30
|
+
permissionsCommand: string;
|
|
31
|
+
@IsOptional()
|
|
32
|
+
@ApiProperty()
|
|
33
|
+
@IsArray()
|
|
34
|
+
@ValidateNested({ each: true })
|
|
35
|
+
@Type(() => UpdateUserDto)
|
|
36
|
+
users: UpdateUserDto[];
|
|
37
|
+
@IsOptional()
|
|
38
|
+
@IsArray()
|
|
39
|
+
@ApiProperty()
|
|
40
|
+
usersIds: number[];
|
|
41
|
+
@IsString()
|
|
42
|
+
@IsOptional()
|
|
43
|
+
@ApiProperty()
|
|
44
|
+
usersCommand: string;
|
|
45
|
+
@IsOptional()
|
|
46
|
+
@ApiProperty()
|
|
47
|
+
@IsArray()
|
|
48
|
+
@ValidateNested({ each: true })
|
|
49
|
+
@Type(() => UpdateMenuItemMetadataDto)
|
|
50
|
+
menuItems: UpdateMenuItemMetadataDto[];
|
|
51
|
+
@IsOptional()
|
|
52
|
+
@IsArray()
|
|
53
|
+
@ApiProperty()
|
|
54
|
+
menuItemsIds: number[];
|
|
55
|
+
@IsString()
|
|
56
|
+
@IsOptional()
|
|
57
|
+
@ApiProperty()
|
|
58
|
+
menuItemsCommand: string;
|
|
57
59
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn } from "typeorm"
|
|
1
|
+
import { PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, ManyToOne, JoinColumn } from "typeorm"
|
|
2
|
+
import { Locale } from "./locale.entity";
|
|
2
3
|
|
|
3
4
|
export abstract class CommonEntity {
|
|
4
5
|
@PrimaryGeneratedColumn({ type: 'integer' })
|
|
@@ -15,4 +16,13 @@ export abstract class CommonEntity {
|
|
|
15
16
|
|
|
16
17
|
@Column({ name: "deletedTracker", default: "not-deleted" })
|
|
17
18
|
deletedTracker: string;
|
|
19
|
+
|
|
20
|
+
@Column({ type: "timestamp", name: 'published_at', default: null ,nullable: true})
|
|
21
|
+
publishedAt: Date;
|
|
22
|
+
|
|
23
|
+
@Column({ type: "varchar", name: 'locale_name', default: null })
|
|
24
|
+
localeName: string;
|
|
25
|
+
|
|
26
|
+
@Column({ type: "int", name: 'default_entity_locale_id', default: null })
|
|
27
|
+
defaultEntityLocaleId: number;
|
|
18
28
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CommonEntity } from 'src/entities/common.entity'
|
|
2
|
+
import { Entity, Column, Index, ManyToOne } from 'typeorm';
|
|
3
|
+
|
|
4
|
+
@Entity("ss_locale")
|
|
5
|
+
export class Locale extends CommonEntity {
|
|
6
|
+
@Index({ unique: true })
|
|
7
|
+
@Column({ type: "varchar" })
|
|
8
|
+
locale: string;
|
|
9
|
+
@Column({ type: "varchar" })
|
|
10
|
+
displayName: string;
|
|
11
|
+
@Index()
|
|
12
|
+
@Column({ type: "boolean", default: true })
|
|
13
|
+
isDefault: boolean = true;
|
|
14
|
+
}
|
|
@@ -2,34 +2,34 @@ import { CommonEntity } from "src/entities/common.entity"
|
|
|
2
2
|
import { Entity, Column, ManyToOne, Index, JoinTable, ManyToMany, JoinColumn } from "typeorm";
|
|
3
3
|
import { ModuleMetadata } from 'src/entities/module-metadata.entity';
|
|
4
4
|
import { ActionMetadata } from 'src/entities/action-metadata.entity';
|
|
5
|
-
import { RoleMetadata } from
|
|
5
|
+
import { RoleMetadata } from 'src/entities/role-metadata.entity';
|
|
6
|
+
|
|
6
7
|
@Entity("ss_menu_item_metadata")
|
|
7
8
|
export class MenuItemMetadata extends CommonEntity {
|
|
9
|
+
@Index({ unique: true })
|
|
8
10
|
@Column({ name: "name", type: "varchar", unique: true })
|
|
9
11
|
name: string;
|
|
10
|
-
|
|
11
12
|
@Column({ name: "display_name", type: "varchar" })
|
|
12
13
|
displayName: string;
|
|
13
|
-
|
|
14
|
-
@JoinColumn({ name: 'module_id', referencedColumnName: 'id' })
|
|
15
14
|
@Index()
|
|
16
|
-
@ManyToOne(() => ModuleMetadata, { onDelete: "CASCADE" })
|
|
15
|
+
@ManyToOne(() => ModuleMetadata, { onDelete: "CASCADE", nullable: false })
|
|
16
|
+
@JoinColumn({ referencedColumnName: 'id' })
|
|
17
17
|
module: ModuleMetadata;
|
|
18
|
-
|
|
19
|
-
@JoinColumn({ name: 'parent_menu_item_id', referencedColumnName: 'id' })
|
|
20
18
|
@Index()
|
|
21
|
-
@ManyToOne(() => MenuItemMetadata, { onDelete: "CASCADE" })
|
|
19
|
+
@ManyToOne(() => MenuItemMetadata, { onDelete: "CASCADE", nullable: true })
|
|
20
|
+
@JoinColumn({ referencedColumnName: 'id' })
|
|
22
21
|
parentMenuItem: MenuItemMetadata;
|
|
23
|
-
|
|
24
|
-
@JoinColumn({ name: 'action_id', referencedColumnName: 'id' })
|
|
25
22
|
@Index()
|
|
26
|
-
@ManyToOne(() => ActionMetadata, { onDelete: "CASCADE" })
|
|
23
|
+
@ManyToOne(() => ActionMetadata, { onDelete: "CASCADE", nullable: true })
|
|
24
|
+
@JoinColumn({ referencedColumnName: 'id' })
|
|
27
25
|
action: ActionMetadata;
|
|
28
|
-
|
|
29
|
-
@ManyToMany(() => RoleMetadata, roleMetadata => roleMetadata.menuItems, { cascade: true })
|
|
26
|
+
@ManyToMany(() => RoleMetadata, roleMetadata => roleMetadata.users, { cascade: true })
|
|
30
27
|
@JoinTable()
|
|
31
28
|
roles: RoleMetadata[];
|
|
32
|
-
|
|
33
29
|
@Column({ name: "sequence_number", type: "int", nullable: true })
|
|
34
30
|
sequenceNumber: number;
|
|
31
|
+
|
|
32
|
+
@Column({ name: "icon_name", type: "varchar", nullable: true })
|
|
33
|
+
iconName: string;
|
|
34
|
+
|
|
35
35
|
}
|