@solidstarters/solid-core 1.2.38 → 1.2.40
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/dist/controllers/media.controller.d.ts +27 -10
- package/dist/controllers/media.controller.d.ts.map +1 -1
- package/dist/controllers/media.controller.js +117 -42
- package/dist/controllers/media.controller.js.map +1 -1
- package/dist/dtos/create-media.dto.d.ts +5 -2
- package/dist/dtos/create-media.dto.d.ts.map +1 -1
- package/dist/dtos/create-media.dto.js +45 -17
- package/dist/dtos/create-media.dto.js.map +1 -1
- package/dist/dtos/update-media.dto.d.ts +13 -4
- package/dist/dtos/update-media.dto.d.ts.map +1 -1
- package/dist/dtos/update-media.dto.js +85 -4
- package/dist/dtos/update-media.dto.js.map +1 -1
- package/dist/entities/media.entity.d.ts +6 -6
- package/dist/entities/media.entity.d.ts.map +1 -1
- package/dist/entities/media.entity.js +20 -26
- package/dist/entities/media.entity.js.map +1 -1
- package/dist/repository/media.repository.d.ts +16 -0
- package/dist/repository/media.repository.d.ts.map +1 -0
- package/dist/repository/media.repository.js +90 -0
- package/dist/repository/media.repository.js.map +1 -0
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +7 -2
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +154 -38
- package/dist/services/action-metadata.service.d.ts +3 -6
- package/dist/services/action-metadata.service.d.ts.map +1 -1
- package/dist/services/action-metadata.service.js +7 -11
- package/dist/services/action-metadata.service.js.map +1 -1
- package/dist/services/crud.service.d.ts +3 -6
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +5 -6
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/media.service.d.ts +32 -22
- package/dist/services/media.service.d.ts.map +1 -1
- package/dist/services/media.service.js +64 -134
- package/dist/services/media.service.js.map +1 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts +3 -3
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +28 -9
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.d.ts +3 -3
- package/dist/services/mediaStorageProviders/file-storage-provider.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.js +28 -9
- package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
- package/dist/services/mediaStorageProviders/index.d.ts +2 -5
- package/dist/services/mediaStorageProviders/index.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/index.js +4 -4
- package/dist/services/mediaStorageProviders/index.js.map +1 -1
- package/dist/services/menu-item-metadata.service.d.ts +3 -6
- package/dist/services/menu-item-metadata.service.d.ts.map +1 -1
- package/dist/services/menu-item-metadata.service.js +7 -11
- package/dist/services/menu-item-metadata.service.js.map +1 -1
- package/dist/services/mq-message-queue.service.d.ts +3 -6
- package/dist/services/mq-message-queue.service.d.ts.map +1 -1
- package/dist/services/mq-message-queue.service.js +7 -11
- package/dist/services/mq-message-queue.service.js.map +1 -1
- package/dist/services/mq-message.service.d.ts +3 -6
- package/dist/services/mq-message.service.d.ts.map +1 -1
- package/dist/services/mq-message.service.js +7 -11
- package/dist/services/mq-message.service.js.map +1 -1
- package/dist/services/permission-metadata.service.d.ts +3 -6
- package/dist/services/permission-metadata.service.d.ts.map +1 -1
- package/dist/services/permission-metadata.service.js +7 -11
- package/dist/services/permission-metadata.service.js.map +1 -1
- package/dist/services/role-metadata.service.d.ts +3 -6
- package/dist/services/role-metadata.service.d.ts.map +1 -1
- package/dist/services/role-metadata.service.js +8 -12
- package/dist/services/role-metadata.service.js.map +1 -1
- package/dist/services/setting.service.d.ts +8 -11
- package/dist/services/setting.service.d.ts.map +1 -1
- package/dist/services/setting.service.js +15 -19
- package/dist/services/setting.service.js.map +1 -1
- package/dist/services/user.service.d.ts +8 -11
- package/dist/services/user.service.d.ts.map +1 -1
- package/dist/services/user.service.js +14 -18
- package/dist/services/user.service.js.map +1 -1
- package/dist/services/view-metadata.service.d.ts +9 -12
- package/dist/services/view-metadata.service.d.ts.map +1 -1
- package/dist/services/view-metadata.service.js +15 -19
- 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 +6 -0
- package/dist/solid-core.module.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/controllers/media.controller.ts +97 -68
- package/src/dtos/create-media.dto.ts +57 -33
- package/src/dtos/update-media.dto.ts +61 -3
- package/src/entities/media.entity.ts +29 -31
- package/src/repository/media.repository.ts +74 -0
- package/src/seeders/module-metadata-seeder.service.ts +7 -2
- package/src/seeders/seed-data/solid-core-metadata.json +160 -42
- package/src/services/action-metadata.service.ts +4 -6
- package/src/services/crud.service.ts +5 -9
- package/src/services/media.service.ts +160 -270
- package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +8 -7
- package/src/services/mediaStorageProviders/file-storage-provider.ts +10 -8
- package/src/services/mediaStorageProviders/index.ts +7 -13
- package/src/services/menu-item-metadata.service.ts +4 -6
- package/src/services/mq-message-queue.service.ts +4 -6
- package/src/services/mq-message.service.ts +5 -8
- package/src/services/permission-metadata.service.ts +4 -6
- package/src/services/role-metadata.service.ts +4 -6
- package/src/services/setting.service.ts +18 -20
- package/src/services/user.service.ts +11 -14
- package/src/services/view-metadata.service.ts +10 -12
- package/src/solid-core.module.ts +6 -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.40",
|
|
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",
|
|
@@ -1,75 +1,104 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Controller, Post, Body, Param, UploadedFiles, UseInterceptors, Put, Get, Query, Delete, Patch } from '@nestjs/common';
|
|
2
|
+
import { AnyFilesInterceptor } from "@nestjs/platform-express";
|
|
2
3
|
import { ApiBearerAuth, ApiQuery, ApiTags } from '@nestjs/swagger';
|
|
3
|
-
import { PaginationQueryDto } from 'src/dtos/pagination-query.dto';
|
|
4
|
-
import { MediaService } from '../services/media.service';
|
|
5
|
-
import { BasicFilterDto } from '../dtos/basic-filters.dto';
|
|
6
|
-
import { CreateMediaDto } from '../dtos/create-media.dto';
|
|
7
4
|
import { Public } from 'src/decorators/public.decorator';
|
|
8
|
-
import {
|
|
5
|
+
import { MediaService } from 'src/services/media.service';
|
|
6
|
+
import { CreateMediaDto } from 'src/dtos/create-media.dto';
|
|
7
|
+
import { UpdateMediaDto } from 'src/dtos/update-media.dto';
|
|
9
8
|
|
|
9
|
+
enum ShowSoftDeleted {
|
|
10
|
+
INCLUSIVE = "inclusive",
|
|
11
|
+
EXCLUSIVE = "exclusive",
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
@ApiTags('Solid Core')
|
|
10
15
|
@Controller('media')
|
|
11
|
-
@ApiTags("App Builder")
|
|
12
16
|
export class MediaController {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
17
|
+
constructor(private readonly service: MediaService) {}
|
|
18
|
+
|
|
19
|
+
@ApiBearerAuth("jwt")
|
|
20
|
+
@Post()
|
|
21
|
+
@UseInterceptors(AnyFilesInterceptor())
|
|
22
|
+
create(@Body() createDto: CreateMediaDto, @UploadedFiles() files: Array<Express.Multer.File>) {
|
|
23
|
+
return this.service.create(createDto, files);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@ApiBearerAuth("jwt")
|
|
27
|
+
@Post('/bulk')
|
|
28
|
+
@UseInterceptors(AnyFilesInterceptor())
|
|
29
|
+
insertMany(@Body() createDtos: CreateMediaDto[], @UploadedFiles() filesArray: Express.Multer.File[][] = []) {
|
|
30
|
+
return this.service.insertMany(createDtos, filesArray);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
@ApiBearerAuth("jwt")
|
|
35
|
+
@Put(':id')
|
|
36
|
+
@UseInterceptors(AnyFilesInterceptor())
|
|
37
|
+
update(@Param('id') id: number, @Body() updateDto: UpdateMediaDto, @UploadedFiles() files: Array<Express.Multer.File>) {
|
|
38
|
+
return this.service.update(id, updateDto, files);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@ApiBearerAuth("jwt")
|
|
42
|
+
@Patch(':id')
|
|
43
|
+
@UseInterceptors(AnyFilesInterceptor())
|
|
44
|
+
partialUpdate(@Param('id') id: number, @Body() updateDto: UpdateMediaDto, @UploadedFiles() files: Array<Express.Multer.File>) {
|
|
45
|
+
return this.service.update(id, updateDto, files, true);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@Public()
|
|
49
|
+
@ApiBearerAuth("jwt")
|
|
50
|
+
@Post('/upload')
|
|
51
|
+
@UseInterceptors(AnyFilesInterceptor())
|
|
52
|
+
upload(@UploadedFiles() files: Array<Express.Multer.File>, @Body() createDto: CreateMediaDto, ) {
|
|
53
|
+
// this.logger.log(`Creating a new model: ${JSON.stringify(createDto)}`);
|
|
54
|
+
return this.service.upload(createDto, files);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
@ApiBearerAuth("jwt")
|
|
59
|
+
@Post('/bulk-recover')
|
|
60
|
+
async recoverMany(@Body() ids: number[]) {
|
|
61
|
+
return this.service.recoverMany(ids);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
@ApiBearerAuth("jwt")
|
|
65
|
+
@Get('/recover/:id')
|
|
66
|
+
async recover(@Param('id') id: number) {
|
|
67
|
+
return this.service.recover(id);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
@ApiBearerAuth("jwt")
|
|
71
|
+
@ApiQuery({ name: 'showSoftDeleted', required: false, enum: ShowSoftDeleted })
|
|
72
|
+
@ApiQuery({ name: 'limit', required: false, type: Number })
|
|
73
|
+
@ApiQuery({ name: 'offset', required: false, type: Number })
|
|
74
|
+
@ApiQuery({ name: 'fields', required: false, type: Array })
|
|
75
|
+
@ApiQuery({ name: 'sort', required: false, type: Array })
|
|
76
|
+
@ApiQuery({ name: 'groupBy', required: false, type: Array })
|
|
77
|
+
@ApiQuery({ name: 'populate', required: false, type: Array })
|
|
78
|
+
@ApiQuery({ name: 'populateMedia', required: false, type: Array })
|
|
79
|
+
@ApiQuery({ name: 'filters', required: false, type: Array })
|
|
80
|
+
@Get()
|
|
81
|
+
async findMany(@Query() query: any) {
|
|
82
|
+
return this.service.find(query);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
@ApiBearerAuth("jwt")
|
|
86
|
+
@Get(':id')
|
|
87
|
+
async findOne(@Param('id') id: string, @Query() query: any) {
|
|
88
|
+
return this.service.findOne(+id, query);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
@ApiBearerAuth("jwt")
|
|
92
|
+
@Delete('/bulk')
|
|
93
|
+
async deleteMany(@Body() ids: number[]) {
|
|
94
|
+
return this.service.deleteMany(ids);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
@ApiBearerAuth("jwt")
|
|
98
|
+
@Delete(':id')
|
|
99
|
+
async delete(@Param('id') id: number) {
|
|
100
|
+
return this.service.delete(id);
|
|
101
|
+
}
|
|
102
|
+
|
|
74
103
|
|
|
75
104
|
}
|
|
@@ -1,35 +1,59 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ApiProperty } from '@nestjs/swagger';
|
|
2
|
+
import { IsInt } from 'class-validator';
|
|
3
|
+
import { IsNotEmpty, IsString, IsOptional } from 'class-validator';
|
|
2
4
|
export class CreateMediaDto {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
5
|
+
@IsNotEmpty()
|
|
6
|
+
@IsInt()
|
|
7
|
+
@ApiProperty()
|
|
8
|
+
entityId: number;
|
|
9
|
+
|
|
10
|
+
@IsOptional()
|
|
11
|
+
@IsString()
|
|
12
|
+
@ApiProperty()
|
|
13
|
+
relativeUri: string;
|
|
14
|
+
|
|
15
|
+
@IsOptional()
|
|
16
|
+
@IsInt()
|
|
17
|
+
@ApiProperty()
|
|
18
|
+
fileSize: number;
|
|
19
|
+
|
|
20
|
+
@IsOptional()
|
|
21
|
+
@IsString()
|
|
22
|
+
@ApiProperty()
|
|
23
|
+
mimeType: string;
|
|
24
|
+
|
|
25
|
+
@IsOptional()
|
|
26
|
+
@IsString()
|
|
27
|
+
@ApiProperty()
|
|
28
|
+
originalFileName: string;
|
|
29
|
+
|
|
30
|
+
@IsOptional()
|
|
31
|
+
@IsInt()
|
|
32
|
+
@ApiProperty()
|
|
33
|
+
modelMetadataId: number;
|
|
34
|
+
|
|
35
|
+
@IsString()
|
|
36
|
+
@IsOptional()
|
|
37
|
+
@ApiProperty()
|
|
38
|
+
modelMetadataUserKey: string;
|
|
39
|
+
|
|
40
|
+
@IsOptional()
|
|
41
|
+
@IsInt()
|
|
42
|
+
@ApiProperty()
|
|
43
|
+
mediaStorageProviderMetadataId: number;
|
|
44
|
+
|
|
45
|
+
@IsString()
|
|
46
|
+
@IsOptional()
|
|
47
|
+
@ApiProperty()
|
|
48
|
+
mediaStorageProviderMetadataUserKey: string;
|
|
49
|
+
|
|
50
|
+
@IsOptional()
|
|
51
|
+
@IsInt()
|
|
52
|
+
@ApiProperty()
|
|
53
|
+
fieldMetadataId: number;
|
|
54
|
+
|
|
55
|
+
@IsString()
|
|
56
|
+
@IsOptional()
|
|
57
|
+
@ApiProperty()
|
|
58
|
+
fieldMetadataUserKey: string;
|
|
35
59
|
}
|
|
@@ -1,5 +1,63 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { IsInt,IsOptional, IsNotEmpty, IsString } from 'class-validator';
|
|
2
|
+
import { ApiProperty } from '@nestjs/swagger';
|
|
3
|
+
export class UpdateMediaDto {
|
|
4
|
+
@IsOptional()
|
|
5
|
+
@IsInt()
|
|
6
|
+
id: number;
|
|
3
7
|
|
|
4
|
-
|
|
8
|
+
@IsNotEmpty()
|
|
9
|
+
@IsOptional()
|
|
10
|
+
@IsInt()
|
|
11
|
+
@ApiProperty()
|
|
12
|
+
entityId: number;
|
|
13
|
+
|
|
14
|
+
@IsOptional()
|
|
15
|
+
@IsString()
|
|
16
|
+
@ApiProperty()
|
|
17
|
+
relativeUri: string;
|
|
18
|
+
|
|
19
|
+
@IsOptional()
|
|
20
|
+
@IsInt()
|
|
21
|
+
@ApiProperty()
|
|
22
|
+
fileSize: number;
|
|
23
|
+
|
|
24
|
+
@IsOptional()
|
|
25
|
+
@IsString()
|
|
26
|
+
@ApiProperty()
|
|
27
|
+
mimeType: string;
|
|
28
|
+
|
|
29
|
+
@IsOptional()
|
|
30
|
+
@IsString()
|
|
31
|
+
@ApiProperty()
|
|
32
|
+
originalFileName: string;
|
|
33
|
+
|
|
34
|
+
@IsOptional()
|
|
35
|
+
@IsInt()
|
|
36
|
+
@ApiProperty()
|
|
37
|
+
modelMetadataId: number;
|
|
38
|
+
|
|
39
|
+
@IsString()
|
|
40
|
+
@IsOptional()
|
|
41
|
+
@ApiProperty()
|
|
42
|
+
modelMetadataUserKey: string;
|
|
43
|
+
|
|
44
|
+
@IsOptional()
|
|
45
|
+
@IsInt()
|
|
46
|
+
@ApiProperty()
|
|
47
|
+
mediaStorageProviderMetadataId: number;
|
|
48
|
+
|
|
49
|
+
@IsString()
|
|
50
|
+
@IsOptional()
|
|
51
|
+
@ApiProperty()
|
|
52
|
+
mediaStorageProviderMetadataUserKey: string;
|
|
53
|
+
|
|
54
|
+
@IsOptional()
|
|
55
|
+
@IsInt()
|
|
56
|
+
@ApiProperty()
|
|
57
|
+
fieldMetadataId: number;
|
|
58
|
+
|
|
59
|
+
@IsString()
|
|
60
|
+
@IsOptional()
|
|
61
|
+
@ApiProperty()
|
|
62
|
+
fieldMetadataUserKey: string;
|
|
5
63
|
}
|
|
@@ -1,40 +1,38 @@
|
|
|
1
|
-
import { CommonEntity } from
|
|
2
|
-
import { Column,
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import { FieldMetadata } from "./field-metadata.entity";
|
|
7
|
-
|
|
1
|
+
import { CommonEntity } from 'src/entities/common.entity'
|
|
2
|
+
import {Entity, Column, Index, JoinColumn, ManyToOne} from 'typeorm';
|
|
3
|
+
import { ModelMetadata } from 'src/entities/model-metadata.entity';
|
|
4
|
+
import { MediaStorageProviderMetadata } from 'src/entities/media-storage-provider-metadata.entity';
|
|
5
|
+
import { FieldMetadata } from 'src/entities/field-metadata.entity'
|
|
8
6
|
@Entity("ss_media")
|
|
9
|
-
export class Media extends CommonEntity
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
export class Media extends CommonEntity{
|
|
8
|
+
@Index()
|
|
9
|
+
@Column({ type: "integer" })
|
|
10
|
+
entityId: number;
|
|
13
11
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
@JoinColumn({ name: "model_metadata_id" })
|
|
17
|
-
modelMetadata: ModelMetadata;
|
|
12
|
+
@Column({ type: "varchar", nullable: true })
|
|
13
|
+
relativeUri: string;
|
|
18
14
|
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
@Column({ type: "integer", nullable: true })
|
|
16
|
+
fileSize: number;
|
|
21
17
|
|
|
22
|
-
|
|
23
|
-
|
|
18
|
+
@Column({ type: "varchar", nullable: true })
|
|
19
|
+
mimeType: string;
|
|
24
20
|
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
@Column({ type: "varchar", nullable: true })
|
|
22
|
+
originalFileName: string;
|
|
27
23
|
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
@Index()
|
|
25
|
+
@ManyToOne(() => ModelMetadata, { onDelete: "SET NULL", nullable: false })
|
|
26
|
+
@JoinColumn()
|
|
27
|
+
modelMetadata: ModelMetadata;
|
|
30
28
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
@Index()
|
|
30
|
+
@ManyToOne(() => MediaStorageProviderMetadata, { onDelete: "SET NULL", nullable: false })
|
|
31
|
+
@JoinColumn()
|
|
32
|
+
mediaStorageProviderMetadata: MediaStorageProviderMetadata;
|
|
35
33
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
34
|
+
@Index()
|
|
35
|
+
@ManyToOne(() => FieldMetadata, { onDelete: "SET NULL", nullable: false })
|
|
36
|
+
@JoinColumn()
|
|
37
|
+
fieldMetadata: FieldMetadata;
|
|
40
38
|
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { Repository, DataSource } from 'typeorm';
|
|
2
|
+
import { Injectable } from '@nestjs/common';
|
|
3
|
+
import { Media } from 'src/entities/media.entity';
|
|
4
|
+
import { FieldMetadata } from 'src/entities/field-metadata.entity';
|
|
5
|
+
import { InjectRepository } from '@nestjs/typeorm';
|
|
6
|
+
import { ModelMetadata } from 'src/entities/model-metadata.entity';
|
|
7
|
+
import { MediaStorageProviderMetadata } from 'src/entities/media-storage-provider-metadata.entity';
|
|
8
|
+
|
|
9
|
+
@Injectable()
|
|
10
|
+
export class MediaRepository extends Repository<Media> {
|
|
11
|
+
constructor(
|
|
12
|
+
private dataSource: DataSource,
|
|
13
|
+
@InjectRepository(ModelMetadata)
|
|
14
|
+
private readonly modelMetadataRepo: Repository<ModelMetadata>,
|
|
15
|
+
@InjectRepository(MediaStorageProviderMetadata)
|
|
16
|
+
private readonly mediaStorageProviderMetadataRepo: Repository<MediaStorageProviderMetadata>,
|
|
17
|
+
@InjectRepository(FieldMetadata)
|
|
18
|
+
private readonly fieldMetadataRepo: Repository<FieldMetadata>,
|
|
19
|
+
|
|
20
|
+
) {
|
|
21
|
+
super(Media, dataSource.createEntityManager());
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
async createMedia(createDto: any) {
|
|
25
|
+
createDto['fieldMetadata'] = await this.fieldMetadataRepo.findOne({
|
|
26
|
+
where: {
|
|
27
|
+
id: createDto['fieldMetadataId']
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
createDto['modelMetadata'] = await this.modelMetadataRepo.findOne({
|
|
31
|
+
where: {
|
|
32
|
+
id: createDto['modelMetadataId']
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
createDto['mediaStorageProviderMetadata'] = await this.mediaStorageProviderMetadataRepo.findOne({
|
|
36
|
+
where: {
|
|
37
|
+
id: createDto['mediaStorageProviderMetadataId']
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
const media = this.create(createDto);
|
|
41
|
+
return this.save(media);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
async findByEntityIdAndFieldIdAndModelMetadataId(entityId: number, fieldMetadataId: number, modelMetadataId: number, relations = {}) {
|
|
45
|
+
return await this.find({
|
|
46
|
+
where: {
|
|
47
|
+
modelMetadata: {
|
|
48
|
+
id: modelMetadataId
|
|
49
|
+
},
|
|
50
|
+
fieldMetadata: {
|
|
51
|
+
id: fieldMetadataId
|
|
52
|
+
},
|
|
53
|
+
entityId: entityId,
|
|
54
|
+
},
|
|
55
|
+
relations: relations,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
async deleteByEntityIdAndFieldIdAndModelMetadataId(entityId: number, fieldMetadataId: number, modelMetadataId: number) {
|
|
60
|
+
const entities = await this.find({
|
|
61
|
+
where: {
|
|
62
|
+
modelMetadata: {
|
|
63
|
+
id: modelMetadataId
|
|
64
|
+
},
|
|
65
|
+
fieldMetadata: {
|
|
66
|
+
id: fieldMetadataId
|
|
67
|
+
},
|
|
68
|
+
entityId: entityId,
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
return this.remove(entities);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
}
|
|
@@ -70,7 +70,7 @@ export class ModuleMetadataSeederService {
|
|
|
70
70
|
|
|
71
71
|
const settingsSeederData: any = {
|
|
72
72
|
iamAllowPublicRegistration: this.iamConfiguration.allowPublicRegistration,
|
|
73
|
-
iamPasswordRegistrationEnabled:
|
|
73
|
+
iamPasswordRegistrationEnabled: true,
|
|
74
74
|
iamPasswordLessRegistrationEnabled: this.iamConfiguration.passwordlessRegistration,
|
|
75
75
|
iamActivateUserOnRegistration: this.iamConfiguration.activateUserOnRegistration,
|
|
76
76
|
iamGoogleOAuthEnabled: false,
|
|
@@ -370,10 +370,15 @@ export class ModuleMetadataSeederService {
|
|
|
370
370
|
for (let j = 0; j < actions.length; j++) {
|
|
371
371
|
const actionData = actions[j];
|
|
372
372
|
actionData['module'] = await this.moduleMetadataService.findOneByUserKey(actionData.moduleUserKey);
|
|
373
|
-
actionData['model'] = await this.modelMetadataService.findOneByUserKey(actionData.modelUserKey);
|
|
374
373
|
if (actionData.type === 'solid') {
|
|
374
|
+
actionData['model'] = await this.modelMetadataService.findOneByUserKey(actionData.modelUserKey);
|
|
375
375
|
actionData['view'] = await this.solidViewService.findOneByUserKey(actionData.viewUserKey);
|
|
376
376
|
}
|
|
377
|
+
else {
|
|
378
|
+
if (actionData.modelUserKey) {
|
|
379
|
+
actionData['model'] = await this.modelMetadataService.findOneByUserKey(actionData.modelUserKey);
|
|
380
|
+
}
|
|
381
|
+
}
|
|
377
382
|
await this.solidActionService.upsert(actionData);
|
|
378
383
|
}
|
|
379
384
|
}
|