@tomei/media 0.4.9 → 0.5.0
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/.commitlintrc.json +22 -22
- package/.eslintrc.js +66 -66
- package/.husky/commit-msg +4 -4
- package/.husky/pre-commit +4 -4
- package/.prettierrc +4 -4
- package/.prettierrc copy +3 -3
- package/README.md +93 -93
- package/dist/base/base.medias.d.ts +2 -3
- package/dist/base/base.medias.js +9 -8
- package/dist/base/base.medias.js.map +1 -1
- package/dist/base/index.d.ts +2 -0
- package/dist/base/index.js +6 -0
- package/dist/base/index.js.map +1 -0
- package/dist/common/common.service.spec.d.ts +0 -0
- package/dist/common/common.service.spec.js +5 -0
- package/dist/common/common.service.spec.js.map +1 -0
- package/dist/database.d.ts +4 -0
- package/dist/database.js +16 -0
- package/dist/database.js.map +1 -0
- package/dist/dto/medias.dto.d.ts +12 -0
- package/dist/dto/medias.dto.js +88 -0
- package/dist/dto/medias.dto.js.map +1 -0
- package/dist/entities/index.d.ts +2 -0
- package/dist/entities/index.js +6 -0
- package/dist/entities/index.js.map +1 -0
- package/dist/entities/media.entity.d.ts +21 -0
- package/dist/entities/media.entity.js +152 -0
- package/dist/entities/media.entity.js.map +1 -0
- package/dist/index.d.ts +12 -11
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces/commonService.interface.d.ts +17 -0
- package/dist/interfaces/commonService.interface.js +3 -0
- package/dist/interfaces/commonService.interface.js.map +1 -0
- package/dist/interfaces/index.d.ts +3 -0
- package/dist/interfaces/index.js +3 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/interfaces/media.repository.interface.d.ts +10 -0
- package/dist/interfaces/media.repository.interface.js +3 -0
- package/dist/interfaces/media.repository.interface.js.map +1 -0
- package/dist/interfaces/medias-attr.interface.d.ts +22 -0
- package/dist/interfaces/medias-attr.interface.js +3 -0
- package/dist/interfaces/medias-attr.interface.js.map +1 -0
- package/dist/medias.controller copy.d.ts +25 -0
- package/dist/medias.controller copy.js +225 -0
- package/dist/medias.controller copy.js.map +1 -0
- package/dist/medias.controller.d.ts +29 -0
- package/dist/medias.controller.js +120 -0
- package/dist/medias.controller.js.map +1 -0
- package/dist/medias.controller.old.d.ts +25 -0
- package/dist/medias.controller.old.js +225 -0
- package/dist/medias.controller.old.js.map +1 -0
- package/dist/medias.d.ts +3 -3
- package/dist/medias.js +4 -2
- package/dist/medias.js.map +1 -1
- package/dist/medias.module.d.ts +2 -0
- package/dist/medias.module.js +32 -0
- package/dist/medias.module.js.map +1 -0
- package/dist/medias.repository.d.ts +6 -14
- package/dist/medias.repository.js +46 -37
- package/dist/medias.repository.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/migration/0001-add-defaultyn-hiddenyn-to-media-table.js +36 -36
- package/migration/media-migration.js +82 -82
- package/package.json +75 -74
- package/src/base/base.medias.ts +33 -36
- package/src/common/common.module.ts +10 -10
- package/src/common/common.service.ts +107 -107
- package/src/common/dto/add-field-translation.dto.ts +23 -23
- package/src/common/dto/get-media.dto.ts +12 -12
- package/src/database.ts +16 -0
- package/src/entities/medias.entity.ts +125 -125
- package/src/index.ts +23 -22
- package/src/medias.repository.ts +43 -29
- package/src/medias.ts +4 -7
- package/src/pipe/validate-search.pipe.ts +44 -44
- package/tsconfig.build.json +4 -4
- package/tslint.json +18 -18
package/src/medias.repository.ts
CHANGED
|
@@ -1,41 +1,55 @@
|
|
|
1
|
-
import { Injectable } from '@nestjs/common';
|
|
2
|
-
import { InjectModel } from '@nestjs/sequelize';
|
|
3
|
-
import { BaseRepository } from './base/base.repository.abstract';
|
|
4
1
|
import { MediasModel } from './entities/medias.entity';
|
|
5
|
-
import { IBaseMediasAttr } from './interfaces/base.medias-attr.interface';
|
|
6
|
-
import { IMediasRepository } from './interfaces/medias.repository.interface';
|
|
7
2
|
|
|
8
|
-
@
|
|
3
|
+
import { RepositoryBase, IRepositoryBase } from '@tomei/general';
|
|
4
|
+
|
|
9
5
|
export class MediasRepository
|
|
10
|
-
extends
|
|
11
|
-
implements
|
|
6
|
+
extends RepositoryBase<MediasModel>
|
|
7
|
+
implements IRepositoryBase<MediasModel>
|
|
12
8
|
{
|
|
13
|
-
constructor(
|
|
14
|
-
|
|
15
|
-
private readonly mediasModel: typeof MediasModel,
|
|
16
|
-
) {
|
|
17
|
-
super(mediasModel);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
create(data: IBaseMediasAttr, options?: any): Promise<MediasModel> | any {
|
|
21
|
-
return this.mediasModel.create({ ...data }, options);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
findAll(options: any): Promise<MediasModel[]> {
|
|
25
|
-
return this.mediasModel.findAll(options);
|
|
9
|
+
constructor() {
|
|
10
|
+
super(MediasModel);
|
|
26
11
|
}
|
|
27
12
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
13
|
+
async findByPk(MediaId: string, transaction: any): Promise<MediasModel> {
|
|
14
|
+
try {
|
|
15
|
+
const options = {
|
|
16
|
+
where: {
|
|
17
|
+
MediaId: MediaId,
|
|
18
|
+
},
|
|
19
|
+
transaction: transaction,
|
|
20
|
+
};
|
|
21
|
+
const result = await MediasModel.findOne(options);
|
|
22
|
+
return result;
|
|
23
|
+
} catch (error) {
|
|
24
|
+
throw new Error(`An Error occured when fetching : ${error.message}`);
|
|
25
|
+
}
|
|
32
26
|
}
|
|
33
27
|
|
|
34
|
-
|
|
35
|
-
|
|
28
|
+
async delete(MediaId: string, dbTransaction?: any) {
|
|
29
|
+
try {
|
|
30
|
+
const options = {
|
|
31
|
+
where: {
|
|
32
|
+
MediaId,
|
|
33
|
+
},
|
|
34
|
+
transaction: dbTransaction,
|
|
35
|
+
};
|
|
36
|
+
await MediasModel.destroy(options);
|
|
37
|
+
} catch (error) {
|
|
38
|
+
throw new Error(`An Error occured when delete : ${error.message}`);
|
|
39
|
+
}
|
|
36
40
|
}
|
|
37
41
|
|
|
38
|
-
|
|
39
|
-
|
|
42
|
+
async findAndCountAll(options?: any) {
|
|
43
|
+
try {
|
|
44
|
+
let medias: any;
|
|
45
|
+
if (options) {
|
|
46
|
+
medias = await MediasModel.findAndCountAll(options);
|
|
47
|
+
} else {
|
|
48
|
+
medias = await MediasModel.findAndCountAll();
|
|
49
|
+
}
|
|
50
|
+
return medias;
|
|
51
|
+
} catch (error) {
|
|
52
|
+
throw new Error(`An Error occured when retriving : ${error.message}`);
|
|
53
|
+
}
|
|
40
54
|
}
|
|
41
55
|
}
|
package/src/medias.ts
CHANGED
|
@@ -7,7 +7,6 @@ import * as util from 'util';
|
|
|
7
7
|
import { BaseMedias } from './base/base.medias';
|
|
8
8
|
import { MediasModel } from './entities/medias.entity';
|
|
9
9
|
import { IBaseMediasAttr } from './interfaces/base.medias-attr.interface';
|
|
10
|
-
import { IMediasRepository } from './interfaces/medias.repository.interface';
|
|
11
10
|
import { Readable } from 'stream';
|
|
12
11
|
import { InternalMediaDto } from './dto/internal-medias.dto';
|
|
13
12
|
import { ExternalMediaDto } from './dto/external-media.dto';
|
|
@@ -19,6 +18,7 @@ import {
|
|
|
19
18
|
ActivityHistoryDB,
|
|
20
19
|
} from '@tomei/activity-history';
|
|
21
20
|
import { LoginUser, SessionService } from '@tomei/sso';
|
|
21
|
+
import { MediasRepository } from './medias.repository';
|
|
22
22
|
|
|
23
23
|
type MediaFile = {
|
|
24
24
|
buffer: Buffer;
|
|
@@ -39,13 +39,10 @@ export class Medias extends BaseMedias {
|
|
|
39
39
|
algorithm = 'aes-256-cbc';
|
|
40
40
|
commonService: CommonService;
|
|
41
41
|
entity = typeof MediasModel;
|
|
42
|
+
private static _Repo = new MediasRepository();
|
|
42
43
|
|
|
43
|
-
constructor(
|
|
44
|
-
|
|
45
|
-
commonService: CommonService,
|
|
46
|
-
media?: IBaseMediasAttr,
|
|
47
|
-
) {
|
|
48
|
-
super(mediasRepository, media);
|
|
44
|
+
constructor(commonService: CommonService, media?: IBaseMediasAttr) {
|
|
45
|
+
super(media);
|
|
49
46
|
this.commonService = commonService;
|
|
50
47
|
try {
|
|
51
48
|
this.container = process.env.MEDIA_AZUREBLOB_CONTAINER_NAME;
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
import {
|
|
2
|
-
BadRequestException,
|
|
3
|
-
Injectable,
|
|
4
|
-
// Logger,
|
|
5
|
-
PipeTransform,
|
|
6
|
-
} from '@nestjs/common';
|
|
7
|
-
|
|
8
|
-
@Injectable()
|
|
9
|
-
export class ValidateSearchPipe implements PipeTransform {
|
|
10
|
-
constructor(
|
|
11
|
-
private model: any,
|
|
12
|
-
private additionalAttributes: string[] = [],
|
|
13
|
-
) {}
|
|
14
|
-
|
|
15
|
-
transform(value: string) {
|
|
16
|
-
let search = {};
|
|
17
|
-
|
|
18
|
-
if (value) {
|
|
19
|
-
try {
|
|
20
|
-
search = JSON.parse(value);
|
|
21
|
-
} catch (err) {
|
|
22
|
-
throw new BadRequestException('Bad value for search.');
|
|
23
|
-
}
|
|
24
|
-
const attributes: string[] = [
|
|
25
|
-
...this.additionalAttributes,
|
|
26
|
-
...Object.keys(this.model.tableAttributes),
|
|
27
|
-
];
|
|
28
|
-
const searchAttributes: string[] = Object.keys(search);
|
|
29
|
-
const invalidKeys = searchAttributes.filter(
|
|
30
|
-
(attr) => !attributes.includes(attr),
|
|
31
|
-
);
|
|
32
|
-
|
|
33
|
-
if (invalidKeys.length > 0) {
|
|
34
|
-
throw new BadRequestException(
|
|
35
|
-
`${invalidKeys} ${
|
|
36
|
-
invalidKeys.length > 1 ? 'are invalid keys' : 'is an invalid key'
|
|
37
|
-
} for search query`,
|
|
38
|
-
);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
return value;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
1
|
+
import {
|
|
2
|
+
BadRequestException,
|
|
3
|
+
Injectable,
|
|
4
|
+
// Logger,
|
|
5
|
+
PipeTransform,
|
|
6
|
+
} from '@nestjs/common';
|
|
7
|
+
|
|
8
|
+
@Injectable()
|
|
9
|
+
export class ValidateSearchPipe implements PipeTransform {
|
|
10
|
+
constructor(
|
|
11
|
+
private model: any,
|
|
12
|
+
private additionalAttributes: string[] = [],
|
|
13
|
+
) {}
|
|
14
|
+
|
|
15
|
+
transform(value: string) {
|
|
16
|
+
let search = {};
|
|
17
|
+
|
|
18
|
+
if (value) {
|
|
19
|
+
try {
|
|
20
|
+
search = JSON.parse(value);
|
|
21
|
+
} catch (err) {
|
|
22
|
+
throw new BadRequestException('Bad value for search.');
|
|
23
|
+
}
|
|
24
|
+
const attributes: string[] = [
|
|
25
|
+
...this.additionalAttributes,
|
|
26
|
+
...Object.keys(this.model.tableAttributes),
|
|
27
|
+
];
|
|
28
|
+
const searchAttributes: string[] = Object.keys(search);
|
|
29
|
+
const invalidKeys = searchAttributes.filter(
|
|
30
|
+
(attr) => !attributes.includes(attr),
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
if (invalidKeys.length > 0) {
|
|
34
|
+
throw new BadRequestException(
|
|
35
|
+
`${invalidKeys} ${
|
|
36
|
+
invalidKeys.length > 1 ? 'are invalid keys' : 'is an invalid key'
|
|
37
|
+
} for search query`,
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return value;
|
|
43
|
+
}
|
|
44
|
+
}
|
package/tsconfig.build.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "./tsconfig.json",
|
|
3
|
-
"exclude": ["node_modules", "test", "dist", "**/*spec.ts"]
|
|
4
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"extends": "./tsconfig.json",
|
|
3
|
+
"exclude": ["node_modules", "test", "dist", "**/*spec.ts"]
|
|
4
|
+
}
|
package/tslint.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
{
|
|
2
|
-
"defaultSeverity": "error",
|
|
3
|
-
"extends": ["tslint:recommended"],
|
|
4
|
-
"jsRules": {
|
|
5
|
-
"no-unused-expression": true
|
|
6
|
-
},
|
|
7
|
-
"rules": {
|
|
8
|
-
"quotemark": [true, "single"],
|
|
9
|
-
"member-access": [false],
|
|
10
|
-
"ordered-imports": [false],
|
|
11
|
-
"max-line-length": [true, 150],
|
|
12
|
-
"member-ordering": [false],
|
|
13
|
-
"interface-name": [false],
|
|
14
|
-
"arrow-parens": false,
|
|
15
|
-
"object-literal-sort-keys": false
|
|
16
|
-
},
|
|
17
|
-
"rulesDirectory": []
|
|
18
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"defaultSeverity": "error",
|
|
3
|
+
"extends": ["tslint:recommended"],
|
|
4
|
+
"jsRules": {
|
|
5
|
+
"no-unused-expression": true
|
|
6
|
+
},
|
|
7
|
+
"rules": {
|
|
8
|
+
"quotemark": [true, "single"],
|
|
9
|
+
"member-access": [false],
|
|
10
|
+
"ordered-imports": [false],
|
|
11
|
+
"max-line-length": [true, 150],
|
|
12
|
+
"member-ordering": [false],
|
|
13
|
+
"interface-name": [false],
|
|
14
|
+
"arrow-parens": false,
|
|
15
|
+
"object-literal-sort-keys": false
|
|
16
|
+
},
|
|
17
|
+
"rulesDirectory": []
|
|
18
|
+
}
|