@comasoft/nestjs 0.1.3 → 0.1.8
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/README.md +2 -0
- package/dist/aws/aws-s3.service.js +1 -158
- package/dist/aws/aws.module.js +1 -25
- package/dist/aws/aws.service.js +1 -21
- package/dist/aws/constants/storage.constant.js +1 -25
- package/dist/aws/dto/create-s3-presigned.dto.js +1 -78
- package/dist/aws/dto/index.js +1 -18
- package/dist/aws/dto/response-s3-presigned.dto.js +1 -110
- package/dist/aws/index.js +1 -20
- package/dist/aws/types/s3.interface.js +1 -2
- package/dist/aws/types/storage.interface.js +1 -2
- package/dist/category/category.module.js +1 -23
- package/dist/category/category.service.d.ts +31 -8
- package/dist/category/category.service.js +1 -124
- package/dist/category/dto/create-category.dto.js +1 -34
- package/dist/category/dto/delete-category.dto.js +1 -6
- package/dist/category/dto/index.js +1 -21
- package/dist/category/dto/response-categories.dto.js +1 -52
- package/dist/category/dto/update-category-sort.dto.js +1 -33
- package/dist/category/dto/update-category.dto.js +1 -9
- package/dist/category/index.js +1 -19
- package/dist/comment/comment.module.js +1 -23
- package/dist/comment/comment.service.d.ts +12 -3
- package/dist/comment/comment.service.js +1 -240
- package/dist/comment/dto/create-comment.dto.d.ts +1 -0
- package/dist/comment/dto/create-comment.dto.js +1 -41
- package/dist/comment/dto/index.js +1 -19
- package/dist/comment/dto/response-comment.dto.d.ts +5 -2
- package/dist/comment/dto/response-comment.dto.js +1 -97
- package/dist/comment/dto/update-comment.dto.js +1 -22
- package/dist/comment/index.js +1 -19
- package/dist/database/entities/category.entity.js +1 -70
- package/dist/database/entities/comment.entity.d.ts +2 -0
- package/dist/database/entities/comment.entity.js +1 -77
- package/dist/database/entities/config.entity.js +1 -44
- package/dist/database/entities/file.entity.js +1 -91
- package/dist/database/entities/index.js +1 -26
- package/dist/database/entities/like.entity.d.ts +1 -0
- package/dist/database/entities/like.entity.js +1 -49
- package/dist/database/entities/logs-audit.entity.d.ts +3 -0
- package/dist/database/entities/logs-audit.entity.js +1 -72
- package/dist/database/entities/logs-event.entity.d.ts +2 -0
- package/dist/database/entities/logs-event.entity.js +1 -72
- package/dist/database/entities/notification-recipient.entity.d.ts +4 -0
- package/dist/database/entities/notification-recipient.entity.js +1 -74
- package/dist/database/entities/notification.entity.d.ts +4 -0
- package/dist/database/entities/notification.entity.js +1 -69
- package/dist/database/entities/role.entity.js +1 -54
- package/dist/decorators/api-custom-params.decorator.js +1 -35
- package/dist/decorators/auth.decorator.factory.js +1 -33
- package/dist/decorators/cookies.decorator.js +1 -9
- package/dist/decorators/custom-params.decorator.js +1 -16
- package/dist/decorators/index.d.ts +0 -2
- package/dist/decorators/index.js +1 -24
- package/dist/decorators/patch-body.decorator.js +1 -38
- package/dist/decorators/soft-delete.decorator.js +1 -10
- package/dist/decorators/timestamps.decorator.js +1 -23
- package/dist/decorators/user.decorator.js +1 -8
- package/dist/dto/auth-user-local.dto.js +1 -26
- package/dist/dto/auth-user-sso.dto.js +1 -21
- package/dist/dto/custom-params.dto.js +1 -46
- package/dist/dto/file.dto.js +1 -70
- package/dist/dto/index.js +1 -26
- package/dist/dto/jwt-user.dto.js +1 -6
- package/dist/dto/pagination.dto.js +1 -36
- package/dist/dto/remove-ids.dto.js +1 -23
- package/dist/dto/response-access-token.dto.js +1 -24
- package/dist/dto/response-id.dto.js +1 -35
- package/dist/dto/response-uid.dto.js +1 -35
- package/dist/dto/update-ids.dto.js +1 -45
- package/dist/dto/update-sort.dto.js +1 -50
- package/dist/enums.common.d.ts +2 -1
- package/dist/enums.common.js +1 -62
- package/dist/events/event-bus.module.js +1 -44
- package/dist/events/index.js +1 -20
- package/dist/events/listeners/audit-event.listener.js +1 -58
- package/dist/events/listeners/index.d.ts +1 -0
- package/dist/events/listeners/index.js +1 -17
- package/dist/events/listeners/notification-event.listener.d.ts +7 -0
- package/dist/events/listeners/notification-event.listener.js +1 -0
- package/dist/events/listeners/system-event.listener.js +1 -58
- package/dist/events/services/event-logger.service.js +1 -34
- package/dist/events/services/event-notification.service.js +1 -104
- package/dist/events/services/event-storage.service.js +1 -79
- package/dist/events/services/index.js +1 -20
- package/dist/events/services/token.service.d.ts +2 -4
- package/dist/events/services/token.service.js +1 -88
- package/dist/events/types/audit-events.type.d.ts +4 -1
- package/dist/events/types/audit-events.type.js +1 -2
- package/dist/events/types/index.js +1 -17
- package/dist/filters/http-exception.filter.d.ts +2 -2
- package/dist/filters/http-exception.filter.js +1 -78
- package/dist/filters/index.js +1 -17
- package/dist/guards/auth.guard.js +1 -60
- package/dist/guards/index.d.ts +3 -0
- package/dist/guards/index.js +1 -0
- package/dist/guards/jwt.guard.js +1 -17
- package/dist/guards/permission.guard.d.ts +10 -0
- package/dist/guards/permission.guard.js +1 -0
- package/dist/guards/role.guard.d.ts +8 -0
- package/dist/guards/role.guard.js +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -36
- package/dist/interceptors/error.interceptor.js +1 -26
- package/dist/interceptors/index.js +1 -18
- package/dist/interceptors/success.interceptor.d.ts +1 -1
- package/dist/interceptors/success.interceptor.js +1 -30
- package/dist/library.module.js +1 -20
- package/dist/like/dto/create-like.dto.js +1 -47
- package/dist/like/dto/index.js +1 -18
- package/dist/like/dto/response-like.dto.js +1 -79
- package/dist/like/index.js +1 -19
- package/dist/like/like.module.js +1 -23
- package/dist/like/like.service.d.ts +2 -2
- package/dist/like/like.service.js +1 -155
- package/dist/logger/index.js +1 -18
- package/dist/logger/pino-options.js +1 -77
- package/dist/logger/pino-pretty-transport.js +1 -155
- package/dist/notifications/index.d.ts +27 -4
- package/dist/notifications/index.js +1 -18
- package/dist/notifications/notification.module.js +1 -32
- package/dist/notifications/services/email.service.d.ts +5 -4
- package/dist/notifications/services/email.service.js +1 -69
- package/dist/notifications/services/index.d.ts +1 -0
- package/dist/notifications/services/index.js +1 -23
- package/dist/notifications/services/kakao.service.d.ts +17 -17
- package/dist/notifications/services/kakao.service.js +1 -94
- package/dist/notifications/services/message-template.service.d.ts +6 -2
- package/dist/notifications/services/message-template.service.js +1 -74
- package/dist/notifications/services/notification-send.service.d.ts +8 -12
- package/dist/notifications/services/notification-send.service.js +1 -146
- package/dist/notifications/services/notification.service.d.ts +3 -1
- package/dist/notifications/services/notification.service.js +1 -125
- package/dist/notifications/services/slack.service.d.ts +6 -1
- package/dist/notifications/services/slack.service.js +1 -53
- package/dist/notifications/services/sms.service.js +1 -62
- package/dist/notifications/services/web.service.d.ts +15 -0
- package/dist/notifications/services/web.service.js +1 -0
- package/dist/passport/google.strategy.js +1 -43
- package/dist/passport/index.js +1 -20
- package/dist/passport/jwt.strategy.js +1 -55
- package/dist/passport/kakao.strategy.js +1 -43
- package/dist/passport/local.strategy.js +1 -41
- package/dist/redis/index.js +1 -18
- package/dist/redis/redis-constraint.js +1 -4
- package/dist/redis/redis.module.js +1 -62
- package/dist/redis/redis.service.js +1 -76
- package/dist/role/dto/create-role.dto.js +1 -41
- package/dist/role/dto/index.js +1 -19
- package/dist/role/dto/response-roles.dto.js +1 -62
- package/dist/role/dto/update-role.dto.js +1 -9
- package/dist/role/index.js +1 -19
- package/dist/role/role.module.js +1 -23
- package/dist/role/role.service.d.ts +20 -6
- package/dist/role/role.service.js +1 -144
- package/dist/services/file.service.d.ts +4 -4
- package/dist/services/file.service.js +1 -82
- package/dist/services/index.js +1 -18
- package/dist/services/permission-checker.service.js +1 -65
- package/dist/setup-swagger.js +1 -32
- package/dist/shared/error-codes.js +1 -9
- package/dist/utils/common.utils.js +1 -42
- package/dist/utils/enum.utils.js +1 -8
- package/dist/utils/file.utils.d.ts +6 -0
- package/dist/utils/file.utils.js +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -21
- package/dist/utils/object-diff.js +1 -33
- package/dist/utils/pagination-qb.utils.js +1 -154
- package/dist/utils/pagination.utils.js +1 -32
- package/package.json +2 -2
|
@@ -1,124 +1 @@
|
|
|
1
|
-
"
|
|
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
|
-
});
|
|
22
|
-
};
|
|
23
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
-
exports.CategoryService = void 0;
|
|
25
|
-
const common_1 = require("@nestjs/common");
|
|
26
|
-
const typeorm_1 = require("@nestjs/typeorm");
|
|
27
|
-
const class_transformer_1 = require("class-transformer");
|
|
28
|
-
const typeorm_2 = require("typeorm");
|
|
29
|
-
const entities_1 = require("../database/entities");
|
|
30
|
-
const error_codes_1 = require("../shared/error-codes");
|
|
31
|
-
const dto_1 = require("./dto");
|
|
32
|
-
let CategoryService = class CategoryService {
|
|
33
|
-
constructor(repository) {
|
|
34
|
-
this.repository = repository;
|
|
35
|
-
}
|
|
36
|
-
create(body) {
|
|
37
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
-
const { type, name, description, slug } = body;
|
|
39
|
-
const existCategory = yield this.repository.findOne({
|
|
40
|
-
where: { type, name },
|
|
41
|
-
});
|
|
42
|
-
if (existCategory) {
|
|
43
|
-
throw new common_1.ConflictException({
|
|
44
|
-
message: 'Category name already exists',
|
|
45
|
-
error_code: error_codes_1.ErrorCode.CATEGORY_NAME_ALREADY_EXISTS,
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
const next_sort = (yield this.repository.count({ where: { type } })) + 1;
|
|
49
|
-
const category = yield this.repository.save(Object.assign(Object.assign({}, body), { sort: next_sort }));
|
|
50
|
-
return (0, class_transformer_1.plainToClass)(dto_1.ResponseCategoryBaseDto, category);
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
findAll(type) {
|
|
54
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
-
const res = yield this.repository.find({
|
|
56
|
-
where: { type },
|
|
57
|
-
order: { sort: 'ASC' },
|
|
58
|
-
});
|
|
59
|
-
return (0, class_transformer_1.plainToClass)(dto_1.ResponseCategoriesBaseDto, { items: res });
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
findOne(id) {
|
|
63
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
-
const res = yield this.repository.findOne({ where: { id } });
|
|
65
|
-
if (!res)
|
|
66
|
-
throw new common_1.NotFoundException(`Category with ID ${id} not found`);
|
|
67
|
-
return (0, class_transformer_1.plainToClass)(dto_1.ResponseCategoryBaseDto, res);
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
update(id, body) {
|
|
71
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
-
const category = yield this.repository.findOne({ where: { id } });
|
|
73
|
-
if (!category)
|
|
74
|
-
throw new common_1.NotFoundException(`Category with ID ${id} not found`);
|
|
75
|
-
const existCategory = yield this.repository.findOne({
|
|
76
|
-
where: { type: category.type, name: body.name, id: (0, typeorm_2.Not)(id) },
|
|
77
|
-
});
|
|
78
|
-
if (existCategory) {
|
|
79
|
-
throw new common_1.ConflictException({
|
|
80
|
-
message: 'Category name already exists',
|
|
81
|
-
error_code: error_codes_1.ErrorCode.CATEGORY_NAME_ALREADY_EXISTS,
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
yield this.repository.update(id, body);
|
|
85
|
-
const res = yield this.repository.findOne({ where: { id } });
|
|
86
|
-
return (0, class_transformer_1.plainToClass)(dto_1.ResponseCategoryBaseDto, res);
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
remove(id) {
|
|
90
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
91
|
-
const category = yield this.repository.findOne({ where: { id } });
|
|
92
|
-
if (!category)
|
|
93
|
-
throw new common_1.NotFoundException(`Category with ID ${id} not found`);
|
|
94
|
-
yield this.repository.update(id, {
|
|
95
|
-
is_active: false,
|
|
96
|
-
deleted_at: new Date(),
|
|
97
|
-
});
|
|
98
|
-
return;
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
updateSort(body) {
|
|
102
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
103
|
-
const { items: _items, type } = body;
|
|
104
|
-
const items = yield this.repository.find({
|
|
105
|
-
where: { type },
|
|
106
|
-
});
|
|
107
|
-
if (items.length !== _items.length) {
|
|
108
|
-
throw new common_1.BadRequestException('Invalid items ids provided');
|
|
109
|
-
}
|
|
110
|
-
const updateItems = items.map((item) => {
|
|
111
|
-
var _a;
|
|
112
|
-
return Object.assign(Object.assign({}, item), { sort: ((_a = _items.find((i) => i.id === item.id)) === null || _a === void 0 ? void 0 : _a.sort) || item.sort });
|
|
113
|
-
});
|
|
114
|
-
yield this.repository.save(updateItems);
|
|
115
|
-
return;
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
};
|
|
119
|
-
exports.CategoryService = CategoryService;
|
|
120
|
-
exports.CategoryService = CategoryService = __decorate([
|
|
121
|
-
(0, common_1.Injectable)(),
|
|
122
|
-
__param(0, (0, typeorm_1.InjectRepository)(entities_1.Category)),
|
|
123
|
-
__metadata("design:paramtypes", [typeorm_2.Repository])
|
|
124
|
-
], CategoryService);
|
|
1
|
+
var e=this&&this.__decorate||function(e,t,i,r){var o,n=arguments.length,s=n<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,i,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(n<3?o(s):n>3?o(t,i,s):o(t,i))||s);return n>3&&s&&Object.defineProperty(t,i,s),s},t=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(i,r){t(i,r,e)}},r=this&&this.__awaiter||function(e,t,i,r){return new(i||(i=Promise))(function(o,n){function fulfilled(e){try{step(r.next(e))}catch(e){n(e)}}function rejected(e){try{step(r.throw(e))}catch(e){n(e)}}function step(e){e.done?o(e.value):function adopt(e){return e instanceof i?e:new i(function(t){t(e)})}(e.value).then(fulfilled,rejected)}step((r=r.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.CategoryService=void 0;const o=require("@nestjs/common"),n=require("@nestjs/typeorm"),s=require("typeorm"),a=require("../database/entities"),d=require("../shared/error-codes"),c=require("../utils"),u=require("../utils/pagination-qb.utils");let y=class CategoryService{constructor(e,t){this.repository=e,this.dataSource=t}validateCategoryLimit(e){return r(this,void 0,void 0,function*(){throw new o.BadRequestException("validateCategoryLimit must be implemented in app service")})}checkCategoryUsage(e){return r(this,void 0,void 0,function*(){throw new o.BadRequestException("checkCategoryUsage must be implemented in app service")})}create(e){return r(this,void 0,void 0,function*(){const{type:t,name:i,description:r,slug:n}=e;yield this.validateCategoryLimit(t);if(yield this.repository.findOne({where:{type:t,name:i}}))throw new o.ConflictException({message:"Category name already exists",error_code:d.ErrorCode.CATEGORY_NAME_ALREADY_EXISTS});const s=(yield this.repository.count({where:{type:t}}))+1;return yield this.repository.save(Object.assign(Object.assign({},e),{sort:s}))})}findAll(e){return r(this,void 0,void 0,function*(){return{items:yield this.repository.find({where:{type:e},order:{sort:"ASC"}})}})}findAllPaginated(e,t){return r(this,void 0,void 0,function*(){const{_page:i,_limit:r,_keyword:o,_group:n,_sort:s}=e;let a=this.repository.createQueryBuilder("category").where("category.type = :type",{type:t});a=(0,u.applyFiltersAndSorting)(a,{_keyword:o,_group:n,_sort:s,keywordFields:["name"],aliasName:"category"});return yield(0,c.paginate)(a,{page:i,limit:r})})}findOne(e){return r(this,void 0,void 0,function*(){const t=yield this.repository.findOne({where:{id:e}});if(!t)throw new o.NotFoundException(`Category with ID ${e} not found`);return t})}update(e,t){return r(this,void 0,void 0,function*(){const i=yield this.repository.findOne({where:{id:e}});if(!i)throw new o.NotFoundException(`Category with ID ${e} not found`);if(yield this.repository.findOne({where:{type:i.type,name:t.name,id:(0,s.Not)(e)}}))throw new o.ConflictException({message:"Category name already exists",error_code:d.ErrorCode.CATEGORY_NAME_ALREADY_EXISTS});yield this.repository.update(e,t);return yield this.repository.findOne({where:{id:e}})})}remove(e){return r(this,void 0,void 0,function*(){if(!(yield this.repository.findOne({where:{id:e}})))throw new o.NotFoundException(`Category with ID ${e} not found`);yield this.checkCategoryUsage(e),yield this.repository.update(e,{is_active:!1,deleted_at:new Date})})}updateSort(e){return r(this,void 0,void 0,function*(){const{items:t,type:i}=e,r=yield this.repository.find({where:{type:i}});if(r.length!==t.length)throw new o.BadRequestException("Invalid items ids provided");const n=r.map(e=>{var i;return Object.assign(Object.assign({},e),{sort:(null===(i=t.find(t=>t.id===e.id))||void 0===i?void 0:i.sort)||e.sort})});yield this.repository.save(n)})}};exports.CategoryService=y,exports.CategoryService=y=e([(0,o.Injectable)(),i(0,(0,n.InjectRepository)(a.Category)),t("design:paramtypes",[s.Repository,s.DataSource])],y);
|
|
@@ -1,34 +1 @@
|
|
|
1
|
-
"
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.CreateCategoryBaseDto = void 0;
|
|
13
|
-
const class_validator_1 = require("class-validator");
|
|
14
|
-
class CreateCategoryBaseDto {
|
|
15
|
-
}
|
|
16
|
-
exports.CreateCategoryBaseDto = CreateCategoryBaseDto;
|
|
17
|
-
__decorate([
|
|
18
|
-
(0, class_validator_1.IsString)(),
|
|
19
|
-
__metadata("design:type", String)
|
|
20
|
-
], CreateCategoryBaseDto.prototype, "name", void 0);
|
|
21
|
-
__decorate([
|
|
22
|
-
(0, class_validator_1.IsString)(),
|
|
23
|
-
(0, class_validator_1.IsOptional)(),
|
|
24
|
-
__metadata("design:type", String)
|
|
25
|
-
], CreateCategoryBaseDto.prototype, "description", void 0);
|
|
26
|
-
__decorate([
|
|
27
|
-
(0, class_validator_1.IsString)(),
|
|
28
|
-
(0, class_validator_1.IsOptional)(),
|
|
29
|
-
__metadata("design:type", String)
|
|
30
|
-
], CreateCategoryBaseDto.prototype, "slug", void 0);
|
|
31
|
-
__decorate([
|
|
32
|
-
(0, class_validator_1.IsBoolean)(),
|
|
33
|
-
__metadata("design:type", Boolean)
|
|
34
|
-
], CreateCategoryBaseDto.prototype, "is_active", void 0);
|
|
1
|
+
var e=this&&this.__decorate||function(e,t,o,r){var a,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,r);else for(var n=e.length-1;n>=0;n--)(a=e[n])&&(s=(i<3?a(s):i>3?a(t,o,s):a(t,o))||s);return i>3&&s&&Object.defineProperty(t,o,s),s},t=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.CreateCategoryBaseDto=void 0;const o=require("class-validator");class CreateCategoryBaseDto{}exports.CreateCategoryBaseDto=CreateCategoryBaseDto,e([(0,o.IsString)(),t("design:type",String)],CreateCategoryBaseDto.prototype,"name",void 0),e([(0,o.IsString)(),(0,o.IsOptional)(),t("design:type",String)],CreateCategoryBaseDto.prototype,"description",void 0),e([(0,o.IsString)(),(0,o.IsOptional)(),t("design:type",String)],CreateCategoryBaseDto.prototype,"slug",void 0),e([(0,o.IsBoolean)(),t("design:type",Boolean)],CreateCategoryBaseDto.prototype,"is_active",void 0);
|
|
@@ -1,6 +1 @@
|
|
|
1
|
-
"
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DeleteCategoryBaseDto = void 0;
|
|
4
|
-
class DeleteCategoryBaseDto {
|
|
5
|
-
}
|
|
6
|
-
exports.DeleteCategoryBaseDto = DeleteCategoryBaseDto;
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.DeleteCategoryBaseDto=void 0;exports.DeleteCategoryBaseDto=class DeleteCategoryBaseDto{};
|
|
@@ -1,21 +1 @@
|
|
|
1
|
-
"
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./create-category.dto"), exports);
|
|
18
|
-
__exportStar(require("./delete-category.dto"), exports);
|
|
19
|
-
__exportStar(require("./response-categories.dto"), exports);
|
|
20
|
-
__exportStar(require("./update-category-sort.dto"), exports);
|
|
21
|
-
__exportStar(require("./update-category.dto"), exports);
|
|
1
|
+
var e=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,i)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),t=this&&this.__exportStar||function(t,r){for(var o in t)"default"===o||Object.prototype.hasOwnProperty.call(r,o)||e(r,t,o)};Object.defineProperty(exports,"__esModule",{value:!0}),t(require("./create-category.dto"),exports),t(require("./delete-category.dto"),exports),t(require("./response-categories.dto"),exports),t(require("./update-category-sort.dto"),exports),t(require("./update-category.dto"),exports);
|
|
@@ -1,52 +1 @@
|
|
|
1
|
-
"
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.ResponseCategoriesBaseDto = exports.ResponseCategoryBaseDto = void 0;
|
|
13
|
-
const class_transformer_1 = require("class-transformer");
|
|
14
|
-
class ResponseCategoryBaseDto {
|
|
15
|
-
}
|
|
16
|
-
exports.ResponseCategoryBaseDto = ResponseCategoryBaseDto;
|
|
17
|
-
__decorate([
|
|
18
|
-
(0, class_transformer_1.Expose)(),
|
|
19
|
-
__metadata("design:type", Number)
|
|
20
|
-
], ResponseCategoryBaseDto.prototype, "id", void 0);
|
|
21
|
-
__decorate([
|
|
22
|
-
(0, class_transformer_1.Expose)(),
|
|
23
|
-
__metadata("design:type", Object)
|
|
24
|
-
], ResponseCategoryBaseDto.prototype, "type", void 0);
|
|
25
|
-
__decorate([
|
|
26
|
-
(0, class_transformer_1.Expose)(),
|
|
27
|
-
__metadata("design:type", String)
|
|
28
|
-
], ResponseCategoryBaseDto.prototype, "name", void 0);
|
|
29
|
-
__decorate([
|
|
30
|
-
(0, class_transformer_1.Expose)(),
|
|
31
|
-
__metadata("design:type", String)
|
|
32
|
-
], ResponseCategoryBaseDto.prototype, "description", void 0);
|
|
33
|
-
__decorate([
|
|
34
|
-
(0, class_transformer_1.Expose)(),
|
|
35
|
-
__metadata("design:type", String)
|
|
36
|
-
], ResponseCategoryBaseDto.prototype, "slug", void 0);
|
|
37
|
-
__decorate([
|
|
38
|
-
(0, class_transformer_1.Expose)(),
|
|
39
|
-
__metadata("design:type", Number)
|
|
40
|
-
], ResponseCategoryBaseDto.prototype, "sort", void 0);
|
|
41
|
-
__decorate([
|
|
42
|
-
(0, class_transformer_1.Expose)(),
|
|
43
|
-
__metadata("design:type", Boolean)
|
|
44
|
-
], ResponseCategoryBaseDto.prototype, "is_active", void 0);
|
|
45
|
-
class ResponseCategoriesBaseDto {
|
|
46
|
-
}
|
|
47
|
-
exports.ResponseCategoriesBaseDto = ResponseCategoriesBaseDto;
|
|
48
|
-
__decorate([
|
|
49
|
-
(0, class_transformer_1.Expose)(),
|
|
50
|
-
(0, class_transformer_1.Type)(() => ResponseCategoryBaseDto),
|
|
51
|
-
__metadata("design:type", Array)
|
|
52
|
-
], ResponseCategoriesBaseDto.prototype, "items", void 0);
|
|
1
|
+
var e=this&&this.__decorate||function(e,t,o,s){var p,r=arguments.length,a=r<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,o):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,o,s);else for(var n=e.length-1;n>=0;n--)(p=e[n])&&(a=(r<3?p(a):r>3?p(t,o,a):p(t,o))||a);return r>3&&a&&Object.defineProperty(t,o,a),a},t=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ResponseCategoriesBaseDto=exports.ResponseCategoryBaseDto=void 0;const o=require("class-transformer");class ResponseCategoryBaseDto{}exports.ResponseCategoryBaseDto=ResponseCategoryBaseDto,e([(0,o.Expose)(),t("design:type",Number)],ResponseCategoryBaseDto.prototype,"id",void 0),e([(0,o.Expose)(),t("design:type",Object)],ResponseCategoryBaseDto.prototype,"type",void 0),e([(0,o.Expose)(),t("design:type",String)],ResponseCategoryBaseDto.prototype,"name",void 0),e([(0,o.Expose)(),t("design:type",String)],ResponseCategoryBaseDto.prototype,"description",void 0),e([(0,o.Expose)(),t("design:type",String)],ResponseCategoryBaseDto.prototype,"slug",void 0),e([(0,o.Expose)(),t("design:type",Number)],ResponseCategoryBaseDto.prototype,"sort",void 0),e([(0,o.Expose)(),t("design:type",Boolean)],ResponseCategoryBaseDto.prototype,"is_active",void 0);class ResponseCategoriesBaseDto{}exports.ResponseCategoriesBaseDto=ResponseCategoriesBaseDto,e([(0,o.Expose)(),(0,o.Type)(()=>ResponseCategoryBaseDto),t("design:type",Array)],ResponseCategoriesBaseDto.prototype,"items",void 0);
|
|
@@ -1,33 +1 @@
|
|
|
1
|
-
"
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.UpdateCategorySortBaseDto = void 0;
|
|
13
|
-
const class_transformer_1 = require("class-transformer");
|
|
14
|
-
const class_validator_1 = require("class-validator");
|
|
15
|
-
class SortDto {
|
|
16
|
-
}
|
|
17
|
-
__decorate([
|
|
18
|
-
(0, class_validator_1.IsNumber)(),
|
|
19
|
-
__metadata("design:type", Number)
|
|
20
|
-
], SortDto.prototype, "id", void 0);
|
|
21
|
-
__decorate([
|
|
22
|
-
(0, class_validator_1.IsNumber)(),
|
|
23
|
-
__metadata("design:type", Number)
|
|
24
|
-
], SortDto.prototype, "sort", void 0);
|
|
25
|
-
class UpdateCategorySortBaseDto {
|
|
26
|
-
}
|
|
27
|
-
exports.UpdateCategorySortBaseDto = UpdateCategorySortBaseDto;
|
|
28
|
-
__decorate([
|
|
29
|
-
(0, class_validator_1.IsArray)(),
|
|
30
|
-
(0, class_validator_1.ValidateNested)({ each: true }),
|
|
31
|
-
(0, class_transformer_1.Type)(() => SortDto),
|
|
32
|
-
__metadata("design:type", Array)
|
|
33
|
-
], UpdateCategorySortBaseDto.prototype, "items", void 0);
|
|
1
|
+
var e=this&&this.__decorate||function(e,t,o,r){var a,s=arguments.length,i=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,o,r);else for(var p=e.length-1;p>=0;p--)(a=e[p])&&(i=(s<3?a(i):s>3?a(t,o,i):a(t,o))||i);return s>3&&i&&Object.defineProperty(t,o,i),i},t=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.UpdateCategorySortBaseDto=void 0;const o=require("class-transformer"),r=require("class-validator");class SortDto{}e([(0,r.IsNumber)(),t("design:type",Number)],SortDto.prototype,"id",void 0),e([(0,r.IsNumber)(),t("design:type",Number)],SortDto.prototype,"sort",void 0);class UpdateCategorySortBaseDto{}exports.UpdateCategorySortBaseDto=UpdateCategorySortBaseDto,e([(0,r.IsArray)(),(0,r.ValidateNested)({each:!0}),(0,o.Type)(()=>SortDto),t("design:type",Array)],UpdateCategorySortBaseDto.prototype,"items",void 0);
|
|
@@ -1,9 +1 @@
|
|
|
1
|
-
"
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UpdateCategoryBaseDto = void 0;
|
|
4
|
-
const swagger_1 = require("@nestjs/swagger");
|
|
5
|
-
const create_category_dto_1 = require("./create-category.dto");
|
|
6
|
-
class UpdateCategoryBaseDto extends (0, swagger_1.PartialType)((0, swagger_1.OmitType)(create_category_dto_1.CreateCategoryBaseDto, ['type'])) {
|
|
7
|
-
}
|
|
8
|
-
exports.UpdateCategoryBaseDto = UpdateCategoryBaseDto;
|
|
9
|
-
UpdateCategoryBaseDto.keys = ['name', 'description', 'slug', 'is_active'];
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.UpdateCategoryBaseDto=void 0;const e=require("@nestjs/swagger"),t=require("./create-category.dto");class UpdateCategoryBaseDto extends((0,e.PartialType)((0,e.OmitType)(t.CreateCategoryBaseDto,["type"]))){}exports.UpdateCategoryBaseDto=UpdateCategoryBaseDto,UpdateCategoryBaseDto.keys=["name","description","slug","is_active"];
|
package/dist/category/index.js
CHANGED
|
@@ -1,19 +1 @@
|
|
|
1
|
-
"
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./category.module"), exports);
|
|
18
|
-
__exportStar(require("./category.service"), exports);
|
|
19
|
-
__exportStar(require("./dto"), exports);
|
|
1
|
+
var e=this&&this.__createBinding||(Object.create?function(e,r,t,o){void 0===o&&(o=t);var i=Object.getOwnPropertyDescriptor(r,t);i&&!("get"in i?!r.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,o,i)}:function(e,r,t,o){void 0===o&&(o=t),e[o]=r[t]}),r=this&&this.__exportStar||function(r,t){for(var o in r)"default"===o||Object.prototype.hasOwnProperty.call(t,o)||e(t,r,o)};Object.defineProperty(exports,"__esModule",{value:!0}),r(require("./category.module"),exports),r(require("./category.service"),exports),r(require("./dto"),exports);
|
|
@@ -1,23 +1 @@
|
|
|
1
|
-
"
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.CommentModule = void 0;
|
|
10
|
-
const common_1 = require("@nestjs/common");
|
|
11
|
-
const typeorm_1 = require("@nestjs/typeorm");
|
|
12
|
-
const entities_1 = require("../database/entities");
|
|
13
|
-
const comment_service_1 = require("./comment.service");
|
|
14
|
-
let CommentModule = class CommentModule {
|
|
15
|
-
};
|
|
16
|
-
exports.CommentModule = CommentModule;
|
|
17
|
-
exports.CommentModule = CommentModule = __decorate([
|
|
18
|
-
(0, common_1.Module)({
|
|
19
|
-
imports: [typeorm_1.TypeOrmModule.forFeature([entities_1.Comment])],
|
|
20
|
-
providers: [comment_service_1.CommentService],
|
|
21
|
-
exports: [comment_service_1.CommentService],
|
|
22
|
-
})
|
|
23
|
-
], CommentModule);
|
|
1
|
+
var e=this&&this.__decorate||function(e,t,o,r){var n,s=arguments.length,m=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)m=Reflect.decorate(e,t,o,r);else for(var c=e.length-1;c>=0;c--)(n=e[c])&&(m=(s<3?n(m):s>3?n(t,o,m):n(t,o))||m);return s>3&&m&&Object.defineProperty(t,o,m),m};Object.defineProperty(exports,"__esModule",{value:!0}),exports.CommentModule=void 0;const t=require("@nestjs/common"),o=require("@nestjs/typeorm"),r=require("../database/entities"),n=require("./comment.service");let s=class CommentModule{};exports.CommentModule=s,exports.CommentModule=s=e([(0,t.Module)({imports:[o.TypeOrmModule.forFeature([r.Comment])],providers:[n.CommentService],exports:[n.CommentService]})],s);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DataSource, EntityManager, Repository, SelectQueryBuilder } from 'typeorm';
|
|
2
2
|
import { Comment } from '../database/entities';
|
|
3
3
|
import { CustomParamsDto } from '../dto';
|
|
4
|
-
import { CreateCommentBaseDto,
|
|
4
|
+
import { CreateCommentBaseDto, UpdateCommentBaseDto } from './dto';
|
|
5
5
|
export declare class CommentService<T = any> {
|
|
6
6
|
protected readonly repository: Repository<Comment>;
|
|
7
7
|
protected readonly dataSource: DataSource;
|
|
@@ -13,7 +13,7 @@ export declare class CommentService<T = any> {
|
|
|
13
13
|
depth: number;
|
|
14
14
|
sort: any;
|
|
15
15
|
}>;
|
|
16
|
-
create(user_id: number, _body: CreateCommentBaseDto<T>): Promise<
|
|
16
|
+
create(user_id: number, _body: CreateCommentBaseDto<T>): Promise<Comment>;
|
|
17
17
|
paginateRaw<T>(queryBuilder: SelectQueryBuilder<T>, options: {
|
|
18
18
|
page: number;
|
|
19
19
|
limit: number;
|
|
@@ -27,7 +27,16 @@ export declare class CommentService<T = any> {
|
|
|
27
27
|
count_page: number;
|
|
28
28
|
};
|
|
29
29
|
}>;
|
|
30
|
-
findAll(c_params: CustomParamsDto, target?: T, target_id?: number, target_uid?: string): Promise<
|
|
30
|
+
findAll(c_params: CustomParamsDto, target?: T, target_id?: number, target_uid?: string): Promise<{
|
|
31
|
+
items: any[];
|
|
32
|
+
pagination: {
|
|
33
|
+
page: number;
|
|
34
|
+
limit: number;
|
|
35
|
+
count: number;
|
|
36
|
+
count_total: number;
|
|
37
|
+
count_page: number;
|
|
38
|
+
};
|
|
39
|
+
}>;
|
|
31
40
|
update(user_id: number, id: number, body: UpdateCommentBaseDto): Promise<void>;
|
|
32
41
|
remove(user_id: number, id: number): Promise<void>;
|
|
33
42
|
}
|
|
@@ -1,240 +1 @@
|
|
|
1
|
-
"
|
|
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
|
-
});
|
|
22
|
-
};
|
|
23
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
-
exports.CommentService = void 0;
|
|
25
|
-
const common_1 = require("@nestjs/common");
|
|
26
|
-
const typeorm_1 = require("@nestjs/typeorm");
|
|
27
|
-
const class_transformer_1 = require("class-transformer");
|
|
28
|
-
const typeorm_2 = require("typeorm");
|
|
29
|
-
const entities_1 = require("../database/entities");
|
|
30
|
-
const utils_1 = require("../utils");
|
|
31
|
-
const dto_1 = require("./dto");
|
|
32
|
-
let CommentService = class CommentService {
|
|
33
|
-
constructor(repository, dataSource) {
|
|
34
|
-
this.repository = repository;
|
|
35
|
-
this.dataSource = dataSource;
|
|
36
|
-
}
|
|
37
|
-
resolveTargetId(target, target_id, target_uid) {
|
|
38
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
-
if (target_id)
|
|
40
|
-
return target_id;
|
|
41
|
-
if (!target_uid) {
|
|
42
|
-
throw new common_1.BadRequestException('Either target_id or target_uid is required');
|
|
43
|
-
}
|
|
44
|
-
throw new common_1.BadRequestException('resolveTargetId must be implemented in app service');
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
updateTargetCommentCount(manager, target, target_id, increment) {
|
|
48
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
-
throw new common_1.BadRequestException('updateTargetCommentCount must be implemented in app service');
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
calculateTreeStructure(target, target_id, parent_id) {
|
|
53
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
54
|
-
if (!parent_id) {
|
|
55
|
-
const maxSort = yield this.repository
|
|
56
|
-
.createQueryBuilder('comments')
|
|
57
|
-
.select('MAX(comments.sort)', 'maxSort')
|
|
58
|
-
.where('comments.target = :target', { target: target })
|
|
59
|
-
.andWhere('comments.target_id = :target_id', { target_id })
|
|
60
|
-
.andWhere('comments.parent_id IS NULL')
|
|
61
|
-
.andWhere('comments.deleted_at IS NULL')
|
|
62
|
-
.getRawOne();
|
|
63
|
-
return {
|
|
64
|
-
group_id: 0,
|
|
65
|
-
depth: 0,
|
|
66
|
-
sort: ((maxSort === null || maxSort === void 0 ? void 0 : maxSort.maxSort) || 0) + 1,
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
const parentComment = yield this.repository.findOne({
|
|
71
|
-
where: {
|
|
72
|
-
id: parent_id,
|
|
73
|
-
target: target,
|
|
74
|
-
target_id,
|
|
75
|
-
deleted_at: null,
|
|
76
|
-
},
|
|
77
|
-
});
|
|
78
|
-
if (!parentComment) {
|
|
79
|
-
throw new common_1.NotFoundException('Parent comment not found');
|
|
80
|
-
}
|
|
81
|
-
const maxSort = yield this.repository
|
|
82
|
-
.createQueryBuilder('comments')
|
|
83
|
-
.select('MAX(comments.sort)', 'maxSort')
|
|
84
|
-
.where('comments.target = :target', { target: target })
|
|
85
|
-
.andWhere('comments.target_id = :target_id', { target_id })
|
|
86
|
-
.andWhere('comments.group_id = :group_id', { group_id: parentComment.group_id })
|
|
87
|
-
.andWhere('comments.deleted_at IS NULL')
|
|
88
|
-
.getRawOne();
|
|
89
|
-
return {
|
|
90
|
-
group_id: parentComment.group_id,
|
|
91
|
-
depth: parentComment.depth + 1,
|
|
92
|
-
sort: ((maxSort === null || maxSort === void 0 ? void 0 : maxSort.maxSort) || 0) + 1,
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
create(user_id, _body) {
|
|
98
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
99
|
-
const { target, target_id, target_uid, parent_id, content } = _body;
|
|
100
|
-
const resolved_target_id = yield this.resolveTargetId(target, target_id, target_uid);
|
|
101
|
-
const treeStructure = yield this.calculateTreeStructure(target, resolved_target_id, parent_id);
|
|
102
|
-
const res = yield this.dataSource.transaction((manager) => __awaiter(this, void 0, void 0, function* () {
|
|
103
|
-
const comment = yield manager.save(entities_1.Comment, Object.assign(Object.assign({ target: target, target_id: resolved_target_id, parent_id }, treeStructure), { user_id,
|
|
104
|
-
content }));
|
|
105
|
-
if (!parent_id) {
|
|
106
|
-
yield manager.update(entities_1.Comment, comment.id, {
|
|
107
|
-
group_id: comment.id,
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
if (parent_id) {
|
|
111
|
-
yield manager.increment(entities_1.Comment, { id: parent_id }, 'cnt_replies', 1);
|
|
112
|
-
}
|
|
113
|
-
yield this.updateTargetCommentCount(manager, target, resolved_target_id, 1);
|
|
114
|
-
return yield manager.findOne(entities_1.Comment, {
|
|
115
|
-
where: { id: comment.id },
|
|
116
|
-
});
|
|
117
|
-
}));
|
|
118
|
-
return (0, class_transformer_1.plainToClass)(dto_1.ResponseCommentBaseDto, res);
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
paginateRaw(queryBuilder, options, mapFn) {
|
|
122
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
123
|
-
const { page, limit } = options;
|
|
124
|
-
const [items, total] = yield Promise.all([
|
|
125
|
-
queryBuilder
|
|
126
|
-
.skip((page - 1) * limit)
|
|
127
|
-
.take(limit)
|
|
128
|
-
.getRawMany(),
|
|
129
|
-
queryBuilder.getCount(),
|
|
130
|
-
]);
|
|
131
|
-
const totalPages = Math.ceil(total / limit);
|
|
132
|
-
return {
|
|
133
|
-
items: items.map(mapFn),
|
|
134
|
-
pagination: {
|
|
135
|
-
page,
|
|
136
|
-
limit,
|
|
137
|
-
count: items.length,
|
|
138
|
-
count_total: total,
|
|
139
|
-
count_page: totalPages,
|
|
140
|
-
},
|
|
141
|
-
};
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
findAll(c_params, target, target_id, target_uid) {
|
|
145
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
146
|
-
const { _page, _limit, _keyword, _group, _sort } = c_params;
|
|
147
|
-
let queryBuilder = this.repository
|
|
148
|
-
.createQueryBuilder('comments')
|
|
149
|
-
.leftJoin('users', 'user', 'comments.user_id = user.id')
|
|
150
|
-
.addSelect(['user.id', 'user.uid', 'user.name'])
|
|
151
|
-
.where('comments.deleted_at IS NULL');
|
|
152
|
-
if (target) {
|
|
153
|
-
queryBuilder.andWhere('comments.target = :target', { target: target });
|
|
154
|
-
}
|
|
155
|
-
if (target_id || target_uid) {
|
|
156
|
-
const resolved_target_id = target
|
|
157
|
-
? yield this.resolveTargetId(target, target_id, target_uid)
|
|
158
|
-
: target_id;
|
|
159
|
-
queryBuilder.andWhere('comments.target_id = :target_id', { target_id: resolved_target_id });
|
|
160
|
-
}
|
|
161
|
-
queryBuilder = (0, utils_1.applyFiltersAndSorting)(queryBuilder, {
|
|
162
|
-
_keyword,
|
|
163
|
-
_group,
|
|
164
|
-
_sort,
|
|
165
|
-
keywordFields: ['content'],
|
|
166
|
-
aliasName: 'comments',
|
|
167
|
-
});
|
|
168
|
-
if (!_sort) {
|
|
169
|
-
queryBuilder.orderBy('comments.group_id', 'ASC').addOrderBy('comments.sort', 'ASC');
|
|
170
|
-
}
|
|
171
|
-
const res = yield this.paginateRaw(queryBuilder, {
|
|
172
|
-
page: _page,
|
|
173
|
-
limit: _limit,
|
|
174
|
-
}, (raw) => ({
|
|
175
|
-
id: raw.comments_id,
|
|
176
|
-
target: raw.comments_target,
|
|
177
|
-
target_id: raw.comments_target_id,
|
|
178
|
-
parent_id: raw.comments_parent_id,
|
|
179
|
-
group_id: raw.comments_group_id,
|
|
180
|
-
depth: raw.comments_depth,
|
|
181
|
-
sort: raw.comments_sort,
|
|
182
|
-
content: raw.comments_content,
|
|
183
|
-
cnt_likes: raw.comments_cnt_likes,
|
|
184
|
-
cnt_replies: raw.comments_cnt_replies,
|
|
185
|
-
created_at: raw.comments_created_at,
|
|
186
|
-
updated_at: raw.comments_updated_at,
|
|
187
|
-
user: {
|
|
188
|
-
id: raw.user_id,
|
|
189
|
-
uid: raw.user_uid,
|
|
190
|
-
name: raw.user_name,
|
|
191
|
-
},
|
|
192
|
-
}));
|
|
193
|
-
return (0, class_transformer_1.plainToClass)(dto_1.ResponseCommentsBaseDto, res);
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
update(user_id, id, body) {
|
|
197
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
198
|
-
const comment = yield this.repository.findOne({
|
|
199
|
-
where: { id, deleted_at: null },
|
|
200
|
-
});
|
|
201
|
-
if (!comment) {
|
|
202
|
-
throw new common_1.NotFoundException(`Comment with ID ${id} not found`);
|
|
203
|
-
}
|
|
204
|
-
if (comment.user_id !== user_id) {
|
|
205
|
-
throw new common_1.BadRequestException('You can only update your own comments');
|
|
206
|
-
}
|
|
207
|
-
yield this.repository.update(id, body);
|
|
208
|
-
return;
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
remove(user_id, id) {
|
|
212
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
213
|
-
const comment = yield this.repository.findOne({
|
|
214
|
-
where: { id, deleted_at: null },
|
|
215
|
-
});
|
|
216
|
-
if (!comment) {
|
|
217
|
-
throw new common_1.NotFoundException(`Comment with ID ${id} not found`);
|
|
218
|
-
}
|
|
219
|
-
if (comment.user_id !== user_id) {
|
|
220
|
-
throw new common_1.BadRequestException('You can only delete your own comments');
|
|
221
|
-
}
|
|
222
|
-
yield this.dataSource.transaction((manager) => __awaiter(this, void 0, void 0, function* () {
|
|
223
|
-
yield manager.softDelete(entities_1.Comment, id);
|
|
224
|
-
yield manager.update(entities_1.Comment, id, { content: '' });
|
|
225
|
-
if (comment.parent_id) {
|
|
226
|
-
yield manager.decrement(entities_1.Comment, { id: comment.parent_id }, 'cnt_replies', 1);
|
|
227
|
-
}
|
|
228
|
-
yield this.updateTargetCommentCount(manager, comment.target, comment.target_id, -1);
|
|
229
|
-
}));
|
|
230
|
-
return;
|
|
231
|
-
});
|
|
232
|
-
}
|
|
233
|
-
};
|
|
234
|
-
exports.CommentService = CommentService;
|
|
235
|
-
exports.CommentService = CommentService = __decorate([
|
|
236
|
-
(0, common_1.Injectable)(),
|
|
237
|
-
__param(0, (0, typeorm_1.InjectRepository)(entities_1.Comment)),
|
|
238
|
-
__metadata("design:paramtypes", [typeorm_2.Repository,
|
|
239
|
-
typeorm_2.DataSource])
|
|
240
|
-
], CommentService);
|
|
1
|
+
var e=this&&this.__decorate||function(e,t,i,n){var o,r=arguments.length,d=r<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)d=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(d=(r<3?o(d):r>3?o(t,i,d):o(t,i))||d);return r>3&&d&&Object.defineProperty(t,i,d),d},t=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(i,n){t(i,n,e)}},n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))(function(o,r){function fulfilled(e){try{step(n.next(e))}catch(e){r(e)}}function rejected(e){try{step(n.throw(e))}catch(e){r(e)}}function step(e){e.done?o(e.value):function adopt(e){return e instanceof i?e:new i(function(t){t(e)})}(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.CommentService=void 0;const o=require("@nestjs/common"),r=require("@nestjs/typeorm"),d=require("typeorm"),a=require("../database/entities"),s=require("../utils");let c=class CommentService{constructor(e,t){this.repository=e,this.dataSource=t}resolveTargetId(e,t,i){return n(this,void 0,void 0,function*(){if(t)return t;if(!i)throw new o.BadRequestException("Either target_id or target_uid is required");throw new o.BadRequestException("resolveTargetId must be implemented in app service")})}updateTargetCommentCount(e,t,i,r){return n(this,void 0,void 0,function*(){throw new o.BadRequestException("updateTargetCommentCount must be implemented in app service")})}calculateTreeStructure(e,t,i){return n(this,void 0,void 0,function*(){if(i){const n=yield this.repository.findOne({where:{id:i,target:e,target_id:t,deleted_at:null}});if(!n)throw new o.NotFoundException("Parent comment not found");const r=yield this.repository.createQueryBuilder("comments").select("MAX(comments.sort)","maxSort").where("comments.target = :target",{target:e}).andWhere("comments.target_id = :target_id",{target_id:t}).andWhere("comments.group_id = :group_id",{group_id:n.group_id}).andWhere("comments.deleted_at IS NULL").getRawOne();return{group_id:n.group_id,depth:n.depth+1,sort:((null==r?void 0:r.maxSort)||0)+1}}{const i=yield this.repository.createQueryBuilder("comments").select("MAX(comments.sort)","maxSort").where("comments.target = :target",{target:e}).andWhere("comments.target_id = :target_id",{target_id:t}).andWhere("comments.parent_id IS NULL").andWhere("comments.deleted_at IS NULL").getRawOne();return{group_id:0,depth:0,sort:((null==i?void 0:i.maxSort)||0)+1}}})}create(e,t){return n(this,void 0,void 0,function*(){const{target:i,target_id:o,target_uid:r,parent_id:d,content:s,meta:c}=t,m=yield this.resolveTargetId(i,o,r),u=yield this.calculateTreeStructure(i,m,d);return yield this.dataSource.transaction(t=>n(this,void 0,void 0,function*(){const n=yield t.save(a.Comment,Object.assign(Object.assign({target:i,target_id:m,parent_id:d},u),{user_id:e,content:s,meta:c}));return d||(yield t.update(a.Comment,n.id,{group_id:n.id})),d&&(yield t.increment(a.Comment,{id:d},"cnt_replies",1)),yield this.updateTargetCommentCount(t,i,m,1),yield t.findOne(a.Comment,{where:{id:n.id}})}))})}paginateRaw(e,t,i){return n(this,void 0,void 0,function*(){const{page:n,limit:o}=t,r=(n-1)*o,[d,a]=yield Promise.all([e.clone().limit(o).offset(r).getRawMany(),e.clone().getCount()]),s=Math.ceil(a/o);return{items:d.map(i),pagination:{page:n,limit:o,count:d.length,count_total:a,count_page:s}}})}findAll(e,t,i,o){return n(this,void 0,void 0,function*(){const{_page:n=1,_limit:r=10,_keyword:d,_group:a,_sort:c}=e;let m=this.repository.createQueryBuilder("comments").leftJoin("users","user","comments.user_id = user.id").addSelect(["user.id","user.uid","user.name","user.profile_image","user.info_department","user.info_position"]).where("comments.deleted_at IS NULL");if(t&&m.andWhere("comments.target = :target",{target:t}),i||o){const e=t?yield this.resolveTargetId(t,i,o):i;m.andWhere("comments.target_id = :target_id",{target_id:e})}m=(0,s.applyFiltersAndSorting)(m,{_keyword:d,_group:a,_sort:c,keywordFields:["content"],aliasName:"comments"}),c||m.orderBy("comments.group_id","ASC").addOrderBy("comments.sort","ASC");return yield this.paginateRaw(m,{page:n,limit:r},e=>({id:e.comments_id,target:e.comments_target,target_id:e.comments_target_id,parent_id:e.comments_parent_id,group_id:e.comments_group_id,depth:e.comments_depth,sort:e.comments_sort,content:e.comments_content,meta:e.comments_meta,cnt_likes:e.comments_cnt_likes,cnt_replies:e.comments_cnt_replies,modified_at:e.comments_modified_at,created_at:e.comments_created_at,updated_at:e.comments_updated_at,user:{id:e.user_id,uid:e.user_uid,name:e.user_name,profile_image:e.user_profile_image,info_department:e.user_info_department,info_position:e.user_info_position}}))})}update(e,t,i){return n(this,void 0,void 0,function*(){const n=yield this.repository.findOne({where:{id:t,deleted_at:null}});if(!n)throw new o.NotFoundException(`Comment with ID ${t} not found`);if(n.user_id!==e)throw new o.BadRequestException("You can only update your own comments");yield this.repository.update(t,Object.assign(Object.assign({},i),{modified_at:new Date}))})}remove(e,t){return n(this,void 0,void 0,function*(){const i=yield this.repository.findOne({where:{id:t,deleted_at:null}});if(!i)throw new o.NotFoundException(`Comment with ID ${t} not found`);if(i.user_id!==e)throw new o.BadRequestException("You can only delete your own comments");yield this.dataSource.transaction(e=>n(this,void 0,void 0,function*(){yield e.softDelete(a.Comment,t),yield e.update(a.Comment,t,{content:""}),i.parent_id&&(yield e.decrement(a.Comment,{id:i.parent_id},"cnt_replies",1)),yield this.updateTargetCommentCount(e,i.target,i.target_id,-1)}))})}};exports.CommentService=c,exports.CommentService=c=e([(0,o.Injectable)(),i(0,(0,r.InjectRepository)(a.Comment)),t("design:paramtypes",[d.Repository,d.DataSource])],c);
|