@tomei/media 0.4.2 → 0.4.3

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 (110) hide show
  1. package/.commitlintrc.json +22 -22
  2. package/.eslintrc.js +66 -66
  3. package/.husky/commit-msg +4 -4
  4. package/.husky/pre-commit +4 -4
  5. package/.prettierrc +4 -4
  6. package/.prettierrc copy +3 -3
  7. package/README.md +93 -93
  8. package/dist/base/base.medias.d.ts +38 -38
  9. package/dist/base/base.medias.js +169 -169
  10. package/dist/base/base.repository.abstract.d.ts +12 -12
  11. package/dist/base/base.repository.abstract.js +21 -21
  12. package/dist/base/base.repository.interface.d.ts +9 -9
  13. package/dist/base/base.repository.interface.js +2 -2
  14. package/dist/common/common.module.d.ts +2 -2
  15. package/dist/common/common.module.js +22 -22
  16. package/dist/common/common.service.d.ts +13 -13
  17. package/dist/common/common.service.js +107 -107
  18. package/dist/common/dto/add-field-translation.dto.d.ts +7 -7
  19. package/dist/common/dto/add-field-translation.dto.js +41 -41
  20. package/dist/common/dto/get-media.dto.d.ts +5 -5
  21. package/dist/common/dto/get-media.dto.js +28 -28
  22. package/dist/dto/external-media.dto.d.ts +10 -10
  23. package/dist/dto/external-media.dto.js +69 -69
  24. package/dist/dto/internal-medias.dto.d.ts +12 -12
  25. package/dist/dto/internal-medias.dto.js +86 -86
  26. package/dist/entities/medias.entity.d.ts +21 -21
  27. package/dist/entities/medias.entity.js +151 -151
  28. package/dist/enum/index.d.ts +2 -2
  29. package/dist/enum/index.js +5 -5
  30. package/dist/enum/medias.enum.d.ts +5 -5
  31. package/dist/enum/medias.enum.js +9 -9
  32. package/dist/helpers/error.d.ts +1 -1
  33. package/dist/helpers/error.js +13 -13
  34. package/dist/helpers/index.d.ts +2 -2
  35. package/dist/helpers/index.js +5 -5
  36. package/dist/index.d.ts +11 -11
  37. package/dist/index.js +19 -19
  38. package/dist/interfaces/base.medias-attr.interface.d.ts +20 -20
  39. package/dist/interfaces/base.medias-attr.interface.js +2 -2
  40. package/dist/interfaces/medias.repository.interface.d.ts +3 -3
  41. package/dist/interfaces/medias.repository.interface.js +2 -2
  42. package/dist/medias.controller.d.ts +25 -29
  43. package/dist/medias.controller.js +224 -119
  44. package/dist/medias.controller.js.map +1 -1
  45. package/dist/medias.d.ts +62 -62
  46. package/dist/medias.js +515 -515
  47. package/dist/medias.module.d.ts +2 -2
  48. package/dist/medias.module.js +34 -31
  49. package/dist/medias.module.js.map +1 -1
  50. package/dist/medias.repository.d.ts +16 -16
  51. package/dist/medias.repository.js +46 -46
  52. package/dist/pipe/append-id.pipe.d.ts +6 -6
  53. package/dist/pipe/append-id.pipe.js +27 -27
  54. package/dist/pipe/validate-enum.pipe.d.ts +6 -6
  55. package/dist/pipe/validate-enum.pipe.js +33 -33
  56. package/dist/pipe/validate-id.pipe.d.ts +6 -6
  57. package/dist/pipe/validate-id.pipe.js +30 -30
  58. package/dist/pipe/validate-search.pipe.d.ts +7 -7
  59. package/dist/pipe/validate-search.pipe.js +45 -45
  60. package/dist/responses/deleted.response.d.ts +3 -3
  61. package/dist/responses/deleted.response.js +20 -20
  62. package/dist/responses/pagination.response.d.ts +5 -5
  63. package/dist/responses/pagination.response.js +25 -25
  64. package/dist/tsconfig.tsbuildinfo +1 -1
  65. package/migration/media-migration.js +82 -82
  66. package/package.json +72 -72
  67. package/src/base/base.medias.ts +209 -209
  68. package/src/common/common.module.ts +10 -10
  69. package/src/common/common.service.ts +109 -109
  70. package/src/common/dto/add-field-translation.dto.ts +23 -23
  71. package/src/common/dto/get-media.dto.ts +12 -12
  72. package/src/index.ts +22 -22
  73. package/src/medias.repository.ts +41 -41
  74. package/src/medias.ts +701 -701
  75. package/src/pipe/validate-search.pipe.ts +44 -44
  76. package/tsconfig.build.json +4 -4
  77. package/tslint.json +18 -18
  78. package/dist/base/index.d.ts +0 -2
  79. package/dist/base/index.js +0 -6
  80. package/dist/base/index.js.map +0 -1
  81. package/dist/common/common.service.spec.d.ts +0 -0
  82. package/dist/common/common.service.spec.js +0 -5
  83. package/dist/common/common.service.spec.js.map +0 -1
  84. package/dist/dto/medias.dto.d.ts +0 -12
  85. package/dist/dto/medias.dto.js +0 -88
  86. package/dist/dto/medias.dto.js.map +0 -1
  87. package/dist/entities/index.d.ts +0 -2
  88. package/dist/entities/index.js +0 -6
  89. package/dist/entities/index.js.map +0 -1
  90. package/dist/entities/media.entity.d.ts +0 -21
  91. package/dist/entities/media.entity.js +0 -152
  92. package/dist/entities/media.entity.js.map +0 -1
  93. package/dist/interfaces/commonService.interface.d.ts +0 -17
  94. package/dist/interfaces/commonService.interface.js +0 -3
  95. package/dist/interfaces/commonService.interface.js.map +0 -1
  96. package/dist/interfaces/index.d.ts +0 -3
  97. package/dist/interfaces/index.js +0 -3
  98. package/dist/interfaces/index.js.map +0 -1
  99. package/dist/interfaces/media.repository.interface.d.ts +0 -10
  100. package/dist/interfaces/media.repository.interface.js +0 -3
  101. package/dist/interfaces/media.repository.interface.js.map +0 -1
  102. package/dist/interfaces/medias-attr.interface.d.ts +0 -22
  103. package/dist/interfaces/medias-attr.interface.js +0 -3
  104. package/dist/interfaces/medias-attr.interface.js.map +0 -1
  105. package/dist/medias.controller copy.d.ts +0 -25
  106. package/dist/medias.controller copy.js +0 -225
  107. package/dist/medias.controller copy.js.map +0 -1
  108. package/dist/medias.controller.old.d.ts +0 -25
  109. package/dist/medias.controller.old.js +0 -225
  110. package/dist/medias.controller.old.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,20 +1,20 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MediaType = exports.InternalMediaDto = exports.ExternalMediaDto = exports.CommonService = exports.CommonModule = exports.Medias = exports.MediasModel = exports.MediasRepository = void 0;
4
- const medias_repository_1 = require("./medias.repository");
5
- Object.defineProperty(exports, "MediasRepository", { enumerable: true, get: function () { return medias_repository_1.MediasRepository; } });
6
- const medias_entity_1 = require("./entities/medias.entity");
7
- Object.defineProperty(exports, "MediasModel", { enumerable: true, get: function () { return medias_entity_1.MediasModel; } });
8
- const medias_1 = require("./medias");
9
- Object.defineProperty(exports, "Medias", { enumerable: true, get: function () { return medias_1.Medias; } });
10
- const common_module_1 = require("./common/common.module");
11
- Object.defineProperty(exports, "CommonModule", { enumerable: true, get: function () { return common_module_1.CommonModule; } });
12
- const common_service_1 = require("./common/common.service");
13
- Object.defineProperty(exports, "CommonService", { enumerable: true, get: function () { return common_service_1.CommonService; } });
14
- const external_media_dto_1 = require("./dto/external-media.dto");
15
- Object.defineProperty(exports, "ExternalMediaDto", { enumerable: true, get: function () { return external_media_dto_1.ExternalMediaDto; } });
16
- const internal_medias_dto_1 = require("./dto/internal-medias.dto");
17
- Object.defineProperty(exports, "InternalMediaDto", { enumerable: true, get: function () { return internal_medias_dto_1.InternalMediaDto; } });
18
- const enum_1 = require("./enum");
19
- Object.defineProperty(exports, "MediaType", { enumerable: true, get: function () { return enum_1.MediaType; } });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MediaType = exports.InternalMediaDto = exports.ExternalMediaDto = exports.CommonService = exports.CommonModule = exports.Medias = exports.MediasModel = exports.MediasRepository = void 0;
4
+ const medias_repository_1 = require("./medias.repository");
5
+ Object.defineProperty(exports, "MediasRepository", { enumerable: true, get: function () { return medias_repository_1.MediasRepository; } });
6
+ const medias_entity_1 = require("./entities/medias.entity");
7
+ Object.defineProperty(exports, "MediasModel", { enumerable: true, get: function () { return medias_entity_1.MediasModel; } });
8
+ const medias_1 = require("./medias");
9
+ Object.defineProperty(exports, "Medias", { enumerable: true, get: function () { return medias_1.Medias; } });
10
+ const common_module_1 = require("./common/common.module");
11
+ Object.defineProperty(exports, "CommonModule", { enumerable: true, get: function () { return common_module_1.CommonModule; } });
12
+ const common_service_1 = require("./common/common.service");
13
+ Object.defineProperty(exports, "CommonService", { enumerable: true, get: function () { return common_service_1.CommonService; } });
14
+ const external_media_dto_1 = require("./dto/external-media.dto");
15
+ Object.defineProperty(exports, "ExternalMediaDto", { enumerable: true, get: function () { return external_media_dto_1.ExternalMediaDto; } });
16
+ const internal_medias_dto_1 = require("./dto/internal-medias.dto");
17
+ Object.defineProperty(exports, "InternalMediaDto", { enumerable: true, get: function () { return internal_medias_dto_1.InternalMediaDto; } });
18
+ const enum_1 = require("./enum");
19
+ Object.defineProperty(exports, "MediaType", { enumerable: true, get: function () { return enum_1.MediaType; } });
20
20
  //# sourceMappingURL=index.js.map
@@ -1,20 +1,20 @@
1
- import { MediaType } from '../enum/medias.enum';
2
- export interface IBaseMediasAttr {
3
- MediaId: string;
4
- ObjectId: string;
5
- ObjectType: string;
6
- Title: string;
7
- Description: string;
8
- Type: MediaType;
9
- IsExternalYN: string;
10
- ExternalSource: string;
11
- IsEncryptedYN: string;
12
- FileName: string;
13
- FileExtension: string;
14
- FilePath: string;
15
- URL: string;
16
- CreatedAt: Date;
17
- UpdatedAt: Date;
18
- CreatedById: string;
19
- UpdatedById: string;
20
- }
1
+ import { MediaType } from '../enum/medias.enum';
2
+ export interface IBaseMediasAttr {
3
+ MediaId: string;
4
+ ObjectId: string;
5
+ ObjectType: string;
6
+ Title: string;
7
+ Description: string;
8
+ Type: MediaType;
9
+ IsExternalYN: string;
10
+ ExternalSource: string;
11
+ IsEncryptedYN: string;
12
+ FileName: string;
13
+ FileExtension: string;
14
+ FilePath: string;
15
+ URL: string;
16
+ CreatedAt: Date;
17
+ UpdatedAt: Date;
18
+ CreatedById: string;
19
+ UpdatedById: string;
20
+ }
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=base.medias-attr.interface.js.map
@@ -1,3 +1,3 @@
1
- import { IBaseRepository } from '../base/base.repository.interface';
2
- import { MediasModel } from '../entities/medias.entity';
3
- export declare type IMediasRepository = IBaseRepository<MediasModel>;
1
+ import { IBaseRepository } from '../base/base.repository.interface';
2
+ import { MediasModel } from '../entities/medias.entity';
3
+ export declare type IMediasRepository = IBaseRepository<MediasModel>;
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=medias.repository.interface.js.map
@@ -1,29 +1,25 @@
1
- /// <reference types="multer" />
2
- import { CommonService } from './common/common.service';
3
- import { ExternalMediaDto } from './dto/external-media.dto';
4
- import { InternalMediaDto } from './dto/internal-medias.dto';
5
- import { IBaseMediasAttr } from './interfaces/base.medias-attr.interface';
6
- import { IMediasRepository } from './interfaces/medias.repository.interface';
7
- export declare class MediaController {
8
- private readonly mediaRepository;
9
- private readonly commonService;
10
- constructor(mediaRepository: IMediasRepository, commonService: CommonService);
11
- postInternal(fileStream: Express.Multer.File, createMediaDto: InternalMediaDto, userId: string): Promise<import(".").MediasModel>;
12
- postExternal(createMediaDto: ExternalMediaDto, userId: string): Promise<IBaseMediasAttr>;
13
- getAll(rows: number, page: number, search: string): Promise<{
14
- count: number;
15
- rows: import(".").MediasModel[];
16
- }>;
17
- getOne(id: string): Promise<import(".").MediasModel>;
18
- getFile(id: string): Promise<{
19
- fileBuffer: Buffer;
20
- resOption: {
21
- 'Content-Type': string;
22
- 'Content-Disposition': string;
23
- 'Content-Length': number;
24
- };
25
- }>;
26
- delete(id: string, userId: string): Promise<any>;
27
- putExternal(id: string, updatedMediaDto: ExternalMediaDto, userId: string): Promise<void>;
28
- putInternal(fileStream: Express.Multer.File, id: string, updatedMediaDto: InternalMediaDto, userId: string): Promise<IBaseMediasAttr>;
29
- }
1
+ /// <reference types="multer" />
2
+ import { StreamableFile } from '@nestjs/common';
3
+ import { CommonService } from './common/common.service';
4
+ import { ExternalMediaDto } from './dto/external-media.dto';
5
+ import { InternalMediaDto } from './dto/internal-medias.dto';
6
+ import { MediasModel } from './entities/medias.entity';
7
+ import { IBaseMediasAttr } from './interfaces/base.medias-attr.interface';
8
+ import { IMediasRepository } from './interfaces/medias.repository.interface';
9
+ import { Response } from 'express';
10
+ export declare class MediasController {
11
+ private readonly mediaRepository;
12
+ private readonly commonService;
13
+ constructor(mediaRepository: IMediasRepository, commonService: CommonService);
14
+ createInternal(fileStream: Express.Multer.File, createMedia: InternalMediaDto): Promise<MediasModel>;
15
+ createExternal(createMedia: ExternalMediaDto): Promise<IBaseMediasAttr>;
16
+ findAll(rows: number, page: number, search: string): Promise<{
17
+ count: number;
18
+ rows: MediasModel[];
19
+ }>;
20
+ findOne(id: string): Promise<MediasModel>;
21
+ getFile(id: string, res: Response): Promise<StreamableFile>;
22
+ delete(id: string): Promise<any>;
23
+ updateExternal(id: string, updatedMedia: ExternalMediaDto): Promise<void>;
24
+ updateInternal(fileStream: Express.Multer.File, id: string, updatedMedia: InternalMediaDto): Promise<IBaseMediasAttr>;
25
+ }
@@ -1,120 +1,225 @@
1
- "use strict";
2
- var __rest = (this && this.__rest) || function (s, e) {
3
- var t = {};
4
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
- t[p] = s[p];
6
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
- t[p[i]] = s[p[i]];
10
- }
11
- return t;
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.MediaController = void 0;
15
- const common_1 = require("@nestjs/common");
16
- const cuid = require("cuid");
17
- const medias_1 = require("./medias");
18
- const sequelize_1 = require("sequelize");
19
- class MediaController {
20
- constructor(mediaRepository, commonService) {
21
- this.mediaRepository = mediaRepository;
22
- this.commonService = commonService;
23
- }
24
- async postInternal(fileStream, createMediaDto, userId) {
25
- try {
26
- const mediaAttr = Object.assign(Object.assign({}, createMediaDto), { MediaId: cuid(), IsExternalYN: 'N', ExternalSource: '', URL: '', FilePath: '', CreatedAt: new Date(), UpdatedAt: new Date(), CreatedById: userId, UpdatedById: userId });
27
- const media = new medias_1.Medias(this.mediaRepository, this.commonService, mediaAttr);
28
- const createdData = await media.createMedias(false, fileStream);
29
- return createdData;
30
- }
31
- catch (error) {
32
- throw error;
33
- }
34
- }
35
- async postExternal(createMediaDto, userId) {
36
- const mediaAttr = Object.assign(Object.assign({}, createMediaDto), { MediaId: cuid(), IsExternalYN: 'Y', CreatedAt: new Date(), UpdatedAt: new Date(), IsEncryptedYN: 'N', FilePath: '', FileName: '', FileExtension: '', CreatedById: userId, UpdatedById: userId });
37
- const media = new medias_1.Medias(this.mediaRepository, this.commonService, mediaAttr);
38
- await media.createMedias(true);
39
- return mediaAttr;
40
- }
41
- async getAll(rows, page, search) {
42
- let searchObj;
43
- try {
44
- searchObj = search ? JSON.parse(search) : {};
45
- }
46
- catch (err) {
47
- throw new common_1.BadRequestException('Bad value for search.');
48
- }
49
- const mediaFilter = __rest(searchObj, []);
50
- const queryObj = {};
51
- Object.entries(mediaFilter).forEach(([key, value]) => {
52
- queryObj[key] = {
53
- [sequelize_1.Op.substring]: value,
54
- };
55
- });
56
- const offset = rows * (page - 1);
57
- const options = {
58
- order: [['CreatedAt', 'DESC']],
59
- limit: rows,
60
- offset,
61
- where: queryObj,
62
- distinct: true,
63
- };
64
- const media = new medias_1.Medias(this.mediaRepository, this.commonService);
65
- return media.findAllWithPagination(options);
66
- }
67
- async getOne(id) {
68
- const media = new medias_1.Medias(this.mediaRepository, this.commonService);
69
- const file = await media.findOne({ where: { MediaId: id } });
70
- return file;
71
- }
72
- async getFile(id) {
73
- let media = new medias_1.Medias(this.mediaRepository, this.commonService);
74
- const mediaData = await media.findOne({ where: { MediaId: id } });
75
- media = new medias_1.Medias(this.mediaRepository, this.commonService, Object.assign({}, mediaData.get({ plain: true })));
76
- const fileBuffer = await media.findFile();
77
- return {
78
- fileBuffer: fileBuffer,
79
- resOption: {
80
- 'Content-Type': 'application/octet-stream',
81
- 'Content-Disposition': `attachment; filename=${mediaData.FileName}.${mediaData.FileExtension}`,
82
- 'Content-Length': fileBuffer.length,
83
- },
84
- };
85
- }
86
- async delete(id, userId) {
87
- try {
88
- let media = new medias_1.Medias(this.mediaRepository, this.commonService);
89
- const mediaData = await media.findOne({ where: { MediaId: id } });
90
- const mediaAttr = Object.assign(Object.assign({}, mediaData.get({ plain: true })), { UpdatedAt: new Date(), UpdatedById: userId });
91
- media = new medias_1.Medias(this.mediaRepository, this.commonService, mediaAttr);
92
- return await media.delete();
93
- }
94
- catch (error) {
95
- throw error;
96
- }
97
- }
98
- async putExternal(id, updatedMediaDto, userId) {
99
- let media = new medias_1.Medias(this.mediaRepository, this.commonService);
100
- const mediaData = await media.findOne({ where: { MediaId: id } });
101
- const mediaAttr = Object.assign(Object.assign(Object.assign({}, mediaData.get({ plain: true })), updatedMediaDto), { UpdatedAt: new Date(), UpdatedById: userId });
102
- media = new medias_1.Medias(this.mediaRepository, this.commonService, mediaAttr);
103
- await media.updateMedias(true);
104
- }
105
- async putInternal(fileStream, id, updatedMediaDto, userId) {
106
- try {
107
- let media = new medias_1.Medias(this.mediaRepository, this.commonService);
108
- const mediaData = await media.findOne({ where: { MediaId: id } });
109
- const mediaAttr = Object.assign(Object.assign(Object.assign({}, mediaData.get({ plain: true })), updatedMediaDto), { UpdatedAt: new Date(), UpdatedById: userId });
110
- media = new medias_1.Medias(this.mediaRepository, this.commonService, mediaAttr);
111
- await media.updateMedias(false, fileStream);
112
- return mediaAttr;
113
- }
114
- catch (error) {
115
- throw error;
116
- }
117
- }
118
- }
119
- exports.MediaController = MediaController;
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var __rest = (this && this.__rest) || function (s, e) {
15
+ var t = {};
16
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
17
+ t[p] = s[p];
18
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
19
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
20
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
21
+ t[p[i]] = s[p[i]];
22
+ }
23
+ return t;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.MediasController = void 0;
27
+ const common_1 = require("@nestjs/common");
28
+ const platform_express_1 = require("@nestjs/platform-express");
29
+ const swagger_1 = require("@nestjs/swagger");
30
+ const cuid = require("cuid");
31
+ const common_service_1 = require("./common/common.service");
32
+ const validate_search_pipe_1 = require("./pipe/validate-search.pipe");
33
+ const external_media_dto_1 = require("./dto/external-media.dto");
34
+ const internal_medias_dto_1 = require("./dto/internal-medias.dto");
35
+ const medias_entity_1 = require("./entities/medias.entity");
36
+ const medias_1 = require("./medias");
37
+ const sequelize_1 = require("sequelize");
38
+ const validate_id_pipe_1 = require("./pipe/validate-id.pipe");
39
+ let MediasController = class MediasController {
40
+ constructor(mediaRepository, commonService) {
41
+ this.mediaRepository = mediaRepository;
42
+ this.commonService = commonService;
43
+ }
44
+ async createInternal(fileStream, createMedia) {
45
+ try {
46
+ const mediaAttr = Object.assign(Object.assign({}, createMedia), { MediaId: cuid(), IsExternalYN: 'N', ExternalSource: '', URL: '', FilePath: '', CreatedAt: new Date(), UpdatedAt: new Date(), CreatedById: 'test_user', UpdatedById: 'test_user' });
47
+ const media = new medias_1.Medias(this.mediaRepository, this.commonService, mediaAttr);
48
+ const createdData = await media.createMedias(false, fileStream);
49
+ return createdData;
50
+ }
51
+ catch (error) {
52
+ throw error;
53
+ }
54
+ }
55
+ async createExternal(createMedia) {
56
+ const mediaAttr = Object.assign(Object.assign({}, createMedia), { MediaId: cuid(), IsExternalYN: 'Y', CreatedAt: new Date(), UpdatedAt: new Date(), IsEncryptedYN: 'N', FilePath: '', FileName: '', FileExtension: '', CreatedById: 'test_user', UpdatedById: 'test_user' });
57
+ const media = new medias_1.Medias(this.mediaRepository, this.commonService, mediaAttr);
58
+ await media.createMedias(true);
59
+ return mediaAttr;
60
+ }
61
+ async findAll(rows, page, search) {
62
+ let searchObj;
63
+ try {
64
+ searchObj = search ? JSON.parse(search) : {};
65
+ }
66
+ catch (err) {
67
+ throw new common_1.BadRequestException('Bad value for search.');
68
+ }
69
+ const mediaFilter = __rest(searchObj, []);
70
+ const queryObj = {};
71
+ Object.entries(mediaFilter).forEach(([key, value]) => {
72
+ queryObj[key] = {
73
+ [sequelize_1.Op.substring]: value,
74
+ };
75
+ });
76
+ const offset = rows * (page - 1);
77
+ const options = {
78
+ order: [['CreatedAt', 'DESC']],
79
+ limit: rows,
80
+ offset,
81
+ where: queryObj,
82
+ distinct: true,
83
+ };
84
+ const media = new medias_1.Medias(this.mediaRepository, this.commonService);
85
+ return media.findAllWithPagination(options);
86
+ }
87
+ async findOne(id) {
88
+ const media = new medias_1.Medias(this.mediaRepository, this.commonService);
89
+ const file = await media.findOne({ where: { MediaId: id } });
90
+ return file;
91
+ }
92
+ async getFile(id, res) {
93
+ let media = new medias_1.Medias(this.mediaRepository, this.commonService);
94
+ const mediaData = await media.findOne({ where: { MediaId: id } });
95
+ media = new medias_1.Medias(this.mediaRepository, this.commonService, Object.assign({}, mediaData.get({ plain: true })));
96
+ const fileBuffer = await media.getFile();
97
+ res.set({
98
+ 'Content-Type': 'application/octet-stream',
99
+ 'Content-Disposition': `attachment; filename=${mediaData.FileName}.${mediaData.FileExtension}`,
100
+ 'Content-Length': fileBuffer.length,
101
+ });
102
+ return new common_1.StreamableFile(fileBuffer);
103
+ }
104
+ async delete(id) {
105
+ try {
106
+ let media = new medias_1.Medias(this.mediaRepository, this.commonService);
107
+ const mediaData = await media.findOne({ where: { MediaId: id } });
108
+ const mediaAttr = Object.assign(Object.assign({}, mediaData.get({ plain: true })), { UpdatedAt: new Date(), UpdatedById: 'test_user' });
109
+ media = new medias_1.Medias(this.mediaRepository, this.commonService, mediaAttr);
110
+ return await media.delete();
111
+ }
112
+ catch (error) {
113
+ throw error;
114
+ }
115
+ }
116
+ async updateExternal(id, updatedMedia) {
117
+ let media = new medias_1.Medias(this.mediaRepository, this.commonService);
118
+ const mediaData = await media.findOne({ where: { MediaId: id } });
119
+ const mediaAttr = Object.assign(Object.assign(Object.assign({}, mediaData.get({ plain: true })), updatedMedia), { UpdatedAt: new Date(), UpdatedById: 'test_user' });
120
+ media = new medias_1.Medias(this.mediaRepository, this.commonService, mediaAttr);
121
+ await media.updateMedias(true);
122
+ }
123
+ async updateInternal(fileStream, id, updatedMedia) {
124
+ try {
125
+ let media = new medias_1.Medias(this.mediaRepository, this.commonService);
126
+ const mediaData = await media.findOne({ where: { MediaId: id } });
127
+ const mediaAttr = Object.assign(Object.assign(Object.assign({}, mediaData.get({ plain: true })), updatedMedia), { UpdatedAt: new Date(), UpdatedById: 'test_user' });
128
+ media = new medias_1.Medias(this.mediaRepository, this.commonService, mediaAttr);
129
+ await media.updateMedias(false, fileStream);
130
+ return mediaAttr;
131
+ }
132
+ catch (error) {
133
+ throw error;
134
+ }
135
+ }
136
+ };
137
+ __decorate([
138
+ (0, common_1.Post)('internal'),
139
+ (0, common_1.UseInterceptors)((0, platform_express_1.FileInterceptor)('FileStream')),
140
+ __param(0, (0, common_1.UploadedFile)()),
141
+ __param(1, (0, common_1.Body)()),
142
+ __metadata("design:type", Function),
143
+ __metadata("design:paramtypes", [Object, internal_medias_dto_1.InternalMediaDto]),
144
+ __metadata("design:returntype", Promise)
145
+ ], MediasController.prototype, "createInternal", null);
146
+ __decorate([
147
+ (0, common_1.Post)('/external'),
148
+ __param(0, (0, common_1.Body)()),
149
+ __metadata("design:type", Function),
150
+ __metadata("design:paramtypes", [external_media_dto_1.ExternalMediaDto]),
151
+ __metadata("design:returntype", Promise)
152
+ ], MediasController.prototype, "createExternal", null);
153
+ __decorate([
154
+ (0, common_1.Get)(),
155
+ (0, swagger_1.ApiOperation)({
156
+ summary: 'Get all Medias',
157
+ }),
158
+ (0, swagger_1.ApiOkResponse)({
159
+ description: 'Paginanted Medias',
160
+ }),
161
+ __param(0, (0, common_1.Query)('rows', new common_1.DefaultValuePipe(10), common_1.ParseIntPipe)),
162
+ __param(1, (0, common_1.Query)('page', new common_1.DefaultValuePipe(1), common_1.ParseIntPipe)),
163
+ __param(2, (0, common_1.Query)('search', new validate_search_pipe_1.ValidateSearchPipe(medias_entity_1.MediasModel, ['ObjectId', 'ObjectType', 'Title']))),
164
+ __metadata("design:type", Function),
165
+ __metadata("design:paramtypes", [Number, Number, String]),
166
+ __metadata("design:returntype", Promise)
167
+ ], MediasController.prototype, "findAll", null);
168
+ __decorate([
169
+ (0, common_1.Get)('/:id'),
170
+ (0, swagger_1.ApiOperation)({ summary: 'Get media by MediaId' }),
171
+ (0, swagger_1.ApiOkResponse)({
172
+ description: 'The found media',
173
+ type: medias_entity_1.MediasModel,
174
+ }),
175
+ __param(0, (0, common_1.Param)('id', new validate_id_pipe_1.ValidateIdPipe())),
176
+ __metadata("design:type", Function),
177
+ __metadata("design:paramtypes", [String]),
178
+ __metadata("design:returntype", Promise)
179
+ ], MediasController.prototype, "findOne", null);
180
+ __decorate([
181
+ (0, common_1.Get)('/:id/file'),
182
+ (0, swagger_1.ApiOperation)({ summary: 'Get media file by MediaId' }),
183
+ (0, swagger_1.ApiOkResponse)({
184
+ description: 'filestream',
185
+ type: Buffer,
186
+ }),
187
+ __param(0, (0, common_1.Param)('id', new validate_id_pipe_1.ValidateIdPipe())),
188
+ __param(1, (0, common_1.Res)({ passthrough: true })),
189
+ __metadata("design:type", Function),
190
+ __metadata("design:paramtypes", [String, Object]),
191
+ __metadata("design:returntype", Promise)
192
+ ], MediasController.prototype, "getFile", null);
193
+ __decorate([
194
+ (0, common_1.Delete)('/:id'),
195
+ (0, swagger_1.ApiOperation)({ summary: 'Delete media by MediaId' }),
196
+ __param(0, (0, common_1.Param)('id', new validate_id_pipe_1.ValidateIdPipe())),
197
+ __metadata("design:type", Function),
198
+ __metadata("design:paramtypes", [String]),
199
+ __metadata("design:returntype", Promise)
200
+ ], MediasController.prototype, "delete", null);
201
+ __decorate([
202
+ (0, common_1.Put)('/external/:id'),
203
+ __param(0, (0, common_1.Param)('id', new validate_id_pipe_1.ValidateIdPipe())),
204
+ __param(1, (0, common_1.Body)()),
205
+ __metadata("design:type", Function),
206
+ __metadata("design:paramtypes", [String, external_media_dto_1.ExternalMediaDto]),
207
+ __metadata("design:returntype", Promise)
208
+ ], MediasController.prototype, "updateExternal", null);
209
+ __decorate([
210
+ (0, common_1.Put)('/internal/:id'),
211
+ (0, common_1.UseInterceptors)((0, platform_express_1.FileInterceptor)('FileStream')),
212
+ __param(0, (0, common_1.UploadedFile)()),
213
+ __param(1, (0, common_1.Param)('id', new validate_id_pipe_1.ValidateIdPipe())),
214
+ __param(2, (0, common_1.Body)()),
215
+ __metadata("design:type", Function),
216
+ __metadata("design:paramtypes", [Object, String, internal_medias_dto_1.InternalMediaDto]),
217
+ __metadata("design:returntype", Promise)
218
+ ], MediasController.prototype, "updateInternal", null);
219
+ MediasController = __decorate([
220
+ (0, common_1.Controller)('medias'),
221
+ __param(0, (0, common_1.Inject)('MediasRepository')),
222
+ __metadata("design:paramtypes", [Object, common_service_1.CommonService])
223
+ ], MediasController);
224
+ exports.MediasController = MediasController;
120
225
  //# sourceMappingURL=medias.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"medias.controller.js","sourceRoot":"","sources":["../src/medias.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"medias.controller.js","sourceRoot":"","sources":["../src/medias.controller.ts"],"names":[],"mappings":"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"}