@flusys/nestjs-task-manager 5.3.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.
Files changed (137) hide show
  1. package/README.md +245 -0
  2. package/cjs/config/index.js +19 -0
  3. package/cjs/config/message-keys.js +92 -0
  4. package/cjs/config/task-manager.constants.js +11 -0
  5. package/cjs/controllers/index.js +22 -0
  6. package/cjs/controllers/task-board.controller.js +219 -0
  7. package/cjs/controllers/task-comment.controller.js +103 -0
  8. package/cjs/controllers/task-label.controller.js +112 -0
  9. package/cjs/controllers/task-list.controller.js +158 -0
  10. package/cjs/controllers/task.controller.js +199 -0
  11. package/cjs/docs/index.js +18 -0
  12. package/cjs/docs/task-manager-swagger.config.js +43 -0
  13. package/cjs/dtos/index.js +22 -0
  14. package/cjs/dtos/task-board.dto.js +310 -0
  15. package/cjs/dtos/task-comment.dto.js +131 -0
  16. package/cjs/dtos/task-label.dto.js +120 -0
  17. package/cjs/dtos/task-list.dto.js +198 -0
  18. package/cjs/dtos/task.dto.js +367 -0
  19. package/cjs/entities/index.js +72 -0
  20. package/cjs/entities/task-activity.entity.js +98 -0
  21. package/cjs/entities/task-assignee.entity.js +67 -0
  22. package/cjs/entities/task-board-member.entity.js +94 -0
  23. package/cjs/entities/task-board-with-company.entity.js +57 -0
  24. package/cjs/entities/task-board.entity.js +88 -0
  25. package/cjs/entities/task-comment.entity.js +80 -0
  26. package/cjs/entities/task-label.entity.js +72 -0
  27. package/cjs/entities/task-list.entity.js +104 -0
  28. package/cjs/entities/task-task-label.entity.js +67 -0
  29. package/cjs/entities/task.entity.js +151 -0
  30. package/cjs/gateways/index.js +18 -0
  31. package/cjs/gateways/task-board.gateway.js +199 -0
  32. package/cjs/index.js +26 -0
  33. package/cjs/interfaces/index.js +19 -0
  34. package/cjs/interfaces/task-manager-module.interface.js +4 -0
  35. package/cjs/interfaces/task.interface.js +4 -0
  36. package/cjs/modules/index.js +18 -0
  37. package/cjs/modules/task-manager.module.js +131 -0
  38. package/cjs/services/index.js +25 -0
  39. package/cjs/services/task-activity.service.js +76 -0
  40. package/cjs/services/task-board.service.js +235 -0
  41. package/cjs/services/task-comment.service.js +103 -0
  42. package/cjs/services/task-label.service.js +97 -0
  43. package/cjs/services/task-list.service.js +115 -0
  44. package/cjs/services/task-manager-config.service.js +69 -0
  45. package/cjs/services/task-manager-datasource.provider.js +84 -0
  46. package/cjs/services/task.service.js +359 -0
  47. package/config/index.d.ts +2 -0
  48. package/config/message-keys.d.ts +65 -0
  49. package/config/task-manager.constants.d.ts +1 -0
  50. package/controllers/index.d.ts +5 -0
  51. package/controllers/task-board.controller.d.ts +27 -0
  52. package/controllers/task-comment.controller.d.ts +22 -0
  53. package/controllers/task-label.controller.d.ts +22 -0
  54. package/controllers/task-list.controller.d.ts +26 -0
  55. package/controllers/task.controller.d.ts +28 -0
  56. package/docs/index.d.ts +1 -0
  57. package/docs/task-manager-swagger.config.d.ts +2 -0
  58. package/dtos/index.d.ts +5 -0
  59. package/dtos/task-board.dto.d.ts +44 -0
  60. package/dtos/task-comment.dto.d.ts +16 -0
  61. package/dtos/task-label.dto.d.ts +16 -0
  62. package/dtos/task-list.dto.d.ts +26 -0
  63. package/dtos/task.dto.d.ts +48 -0
  64. package/entities/index.d.ts +22 -0
  65. package/entities/task-activity.entity.d.ts +9 -0
  66. package/entities/task-assignee.entity.d.ts +5 -0
  67. package/entities/task-board-member.entity.d.ts +12 -0
  68. package/entities/task-board-with-company.entity.d.ts +4 -0
  69. package/entities/task-board.entity.d.ts +8 -0
  70. package/entities/task-comment.entity.d.ts +7 -0
  71. package/entities/task-label.entity.d.ts +6 -0
  72. package/entities/task-list.entity.d.ts +9 -0
  73. package/entities/task-task-label.entity.d.ts +5 -0
  74. package/entities/task.entity.d.ts +23 -0
  75. package/fesm/config/index.js +2 -0
  76. package/fesm/config/message-keys.js +65 -0
  77. package/fesm/config/task-manager.constants.js +1 -0
  78. package/fesm/controllers/index.js +5 -0
  79. package/fesm/controllers/task-board.controller.js +209 -0
  80. package/fesm/controllers/task-comment.controller.js +93 -0
  81. package/fesm/controllers/task-label.controller.js +102 -0
  82. package/fesm/controllers/task-list.controller.js +148 -0
  83. package/fesm/controllers/task.controller.js +189 -0
  84. package/fesm/docs/index.js +1 -0
  85. package/fesm/docs/task-manager-swagger.config.js +33 -0
  86. package/fesm/dtos/index.js +5 -0
  87. package/fesm/dtos/task-board.dto.js +277 -0
  88. package/fesm/dtos/task-comment.dto.js +110 -0
  89. package/fesm/dtos/task-label.dto.js +99 -0
  90. package/fesm/dtos/task-list.dto.js +174 -0
  91. package/fesm/dtos/task.dto.js +337 -0
  92. package/fesm/entities/index.js +46 -0
  93. package/fesm/entities/task-activity.entity.js +88 -0
  94. package/fesm/entities/task-assignee.entity.js +57 -0
  95. package/fesm/entities/task-board-member.entity.js +76 -0
  96. package/fesm/entities/task-board-with-company.entity.js +47 -0
  97. package/fesm/entities/task-board.entity.js +78 -0
  98. package/fesm/entities/task-comment.entity.js +70 -0
  99. package/fesm/entities/task-label.entity.js +62 -0
  100. package/fesm/entities/task-list.entity.js +94 -0
  101. package/fesm/entities/task-task-label.entity.js +57 -0
  102. package/fesm/entities/task.entity.js +133 -0
  103. package/fesm/gateways/index.js +1 -0
  104. package/fesm/gateways/task-board.gateway.js +148 -0
  105. package/fesm/index.js +9 -0
  106. package/fesm/interfaces/index.js +2 -0
  107. package/fesm/interfaces/task-manager-module.interface.js +1 -0
  108. package/fesm/interfaces/task.interface.js +1 -0
  109. package/fesm/modules/index.js +1 -0
  110. package/fesm/modules/task-manager.module.js +121 -0
  111. package/fesm/services/index.js +8 -0
  112. package/fesm/services/task-activity.service.js +66 -0
  113. package/fesm/services/task-board.service.js +225 -0
  114. package/fesm/services/task-comment.service.js +93 -0
  115. package/fesm/services/task-label.service.js +87 -0
  116. package/fesm/services/task-list.service.js +105 -0
  117. package/fesm/services/task-manager-config.service.js +59 -0
  118. package/fesm/services/task-manager-datasource.provider.js +74 -0
  119. package/fesm/services/task.service.js +349 -0
  120. package/gateways/index.d.ts +1 -0
  121. package/gateways/task-board.gateway.d.ts +22 -0
  122. package/index.d.ts +9 -0
  123. package/interfaces/index.d.ts +2 -0
  124. package/interfaces/task-manager-module.interface.d.ts +19 -0
  125. package/interfaces/task.interface.d.ts +52 -0
  126. package/modules/index.d.ts +1 -0
  127. package/modules/task-manager.module.d.ts +8 -0
  128. package/package.json +91 -0
  129. package/services/index.d.ts +8 -0
  130. package/services/task-activity.service.d.ts +8 -0
  131. package/services/task-board.service.d.ts +32 -0
  132. package/services/task-comment.service.d.ts +18 -0
  133. package/services/task-label.service.d.ts +18 -0
  134. package/services/task-list.service.d.ts +19 -0
  135. package/services/task-manager-config.service.d.ts +12 -0
  136. package/services/task-manager-datasource.provider.d.ts +18 -0
  137. package/services/task.service.d.ts +44 -0
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "TaskCommentController", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return TaskCommentController;
9
+ }
10
+ });
11
+ const _classes = require("@flusys/nestjs-shared/classes");
12
+ const _common = require("@nestjs/common");
13
+ const _swagger = require("@nestjs/swagger");
14
+ const _nestjsshared = require("@flusys/nestjs-shared");
15
+ const _dtos = require("../dtos");
16
+ const _taskcommentservice = require("../services/task-comment.service");
17
+ function _define_property(obj, key, value) {
18
+ if (key in obj) {
19
+ Object.defineProperty(obj, key, {
20
+ value: value,
21
+ enumerable: true,
22
+ configurable: true,
23
+ writable: true
24
+ });
25
+ } else {
26
+ obj[key] = value;
27
+ }
28
+ return obj;
29
+ }
30
+ function _ts_decorate(decorators, target, key, desc) {
31
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
32
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
33
+ 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;
34
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
35
+ }
36
+ function _ts_metadata(k, v) {
37
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
38
+ }
39
+ function _ts_param(paramIndex, decorator) {
40
+ return function(target, key) {
41
+ decorator(target, key, paramIndex);
42
+ };
43
+ }
44
+ let TaskCommentController = class TaskCommentController extends (0, _classes.createApiController)(_dtos.CreateTaskCommentDto, _dtos.UpdateTaskCommentDto, _dtos.TaskCommentResponseDto, {
45
+ entityName: 'task.comment',
46
+ enabledEndpoints: [
47
+ 'insert',
48
+ 'insertMany',
49
+ 'getById',
50
+ 'getAll',
51
+ 'update',
52
+ 'updateMany',
53
+ 'delete'
54
+ ],
55
+ security: {
56
+ insert: {
57
+ level: 'permission',
58
+ permissions: [
59
+ _nestjsshared.TASK_COMMENT_PERMISSIONS.CREATE
60
+ ]
61
+ },
62
+ insertMany: {
63
+ level: 'permission',
64
+ permissions: [
65
+ _nestjsshared.TASK_COMMENT_PERMISSIONS.CREATE
66
+ ]
67
+ },
68
+ getById: {
69
+ level: 'jwt'
70
+ },
71
+ getAll: {
72
+ level: 'permission',
73
+ permissions: [
74
+ _nestjsshared.TASK_COMMENT_PERMISSIONS.READ
75
+ ]
76
+ },
77
+ update: {
78
+ level: 'jwt'
79
+ },
80
+ updateMany: {
81
+ level: 'jwt'
82
+ },
83
+ delete: {
84
+ level: 'permission',
85
+ permissions: [
86
+ _nestjsshared.TASK_COMMENT_PERMISSIONS.DELETE
87
+ ]
88
+ }
89
+ }
90
+ }) {
91
+ constructor(commentService){
92
+ super(commentService), _define_property(this, "commentService", void 0), this.commentService = commentService;
93
+ }
94
+ };
95
+ TaskCommentController = _ts_decorate([
96
+ (0, _swagger.ApiTags)('Task Manager - Comments'),
97
+ (0, _common.Controller)('task-manager/comment'),
98
+ _ts_param(0, (0, _common.Inject)(_taskcommentservice.TaskCommentService)),
99
+ _ts_metadata("design:type", Function),
100
+ _ts_metadata("design:paramtypes", [
101
+ typeof _taskcommentservice.TaskCommentService === "undefined" ? Object : _taskcommentservice.TaskCommentService
102
+ ])
103
+ ], TaskCommentController);
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "TaskLabelController", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return TaskLabelController;
9
+ }
10
+ });
11
+ const _classes = require("@flusys/nestjs-shared/classes");
12
+ const _common = require("@nestjs/common");
13
+ const _swagger = require("@nestjs/swagger");
14
+ const _nestjsshared = require("@flusys/nestjs-shared");
15
+ const _dtos = require("../dtos");
16
+ const _tasklabelservice = require("../services/task-label.service");
17
+ function _define_property(obj, key, value) {
18
+ if (key in obj) {
19
+ Object.defineProperty(obj, key, {
20
+ value: value,
21
+ enumerable: true,
22
+ configurable: true,
23
+ writable: true
24
+ });
25
+ } else {
26
+ obj[key] = value;
27
+ }
28
+ return obj;
29
+ }
30
+ function _ts_decorate(decorators, target, key, desc) {
31
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
32
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
33
+ 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;
34
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
35
+ }
36
+ function _ts_metadata(k, v) {
37
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
38
+ }
39
+ function _ts_param(paramIndex, decorator) {
40
+ return function(target, key) {
41
+ decorator(target, key, paramIndex);
42
+ };
43
+ }
44
+ let TaskLabelController = class TaskLabelController extends (0, _classes.createApiController)(_dtos.CreateTaskLabelDto, _dtos.UpdateTaskLabelDto, _dtos.TaskLabelResponseDto, {
45
+ entityName: 'task.label',
46
+ enabledEndpoints: [
47
+ 'insert',
48
+ 'insertMany',
49
+ 'getById',
50
+ 'getAll',
51
+ 'update',
52
+ 'updateMany',
53
+ 'delete'
54
+ ],
55
+ security: {
56
+ insert: {
57
+ level: 'permission',
58
+ permissions: [
59
+ _nestjsshared.TASK_LABEL_PERMISSIONS.CREATE
60
+ ]
61
+ },
62
+ insertMany: {
63
+ level: 'permission',
64
+ permissions: [
65
+ _nestjsshared.TASK_LABEL_PERMISSIONS.CREATE
66
+ ]
67
+ },
68
+ getById: {
69
+ level: 'permission',
70
+ permissions: [
71
+ _nestjsshared.TASK_LABEL_PERMISSIONS.READ
72
+ ]
73
+ },
74
+ getAll: {
75
+ level: 'permission',
76
+ permissions: [
77
+ _nestjsshared.TASK_LABEL_PERMISSIONS.READ
78
+ ]
79
+ },
80
+ update: {
81
+ level: 'permission',
82
+ permissions: [
83
+ _nestjsshared.TASK_LABEL_PERMISSIONS.UPDATE
84
+ ]
85
+ },
86
+ updateMany: {
87
+ level: 'permission',
88
+ permissions: [
89
+ _nestjsshared.TASK_LABEL_PERMISSIONS.UPDATE
90
+ ]
91
+ },
92
+ delete: {
93
+ level: 'permission',
94
+ permissions: [
95
+ _nestjsshared.TASK_LABEL_PERMISSIONS.DELETE
96
+ ]
97
+ }
98
+ }
99
+ }) {
100
+ constructor(labelService){
101
+ super(labelService), _define_property(this, "labelService", void 0), this.labelService = labelService;
102
+ }
103
+ };
104
+ TaskLabelController = _ts_decorate([
105
+ (0, _swagger.ApiTags)('Task Manager - Labels'),
106
+ (0, _common.Controller)('task-manager/label'),
107
+ _ts_param(0, (0, _common.Inject)(_tasklabelservice.TaskLabelService)),
108
+ _ts_metadata("design:type", Function),
109
+ _ts_metadata("design:paramtypes", [
110
+ typeof _tasklabelservice.TaskLabelService === "undefined" ? Object : _tasklabelservice.TaskLabelService
111
+ ])
112
+ ], TaskLabelController);
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "TaskListController", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return TaskListController;
9
+ }
10
+ });
11
+ const _nestjsshared = require("@flusys/nestjs-shared");
12
+ const _classes = require("@flusys/nestjs-shared/classes");
13
+ const _decorators = require("@flusys/nestjs-shared/decorators");
14
+ const _dtos = require("@flusys/nestjs-shared/dtos");
15
+ const _guards = require("@flusys/nestjs-shared/guards");
16
+ const _common = require("@nestjs/common");
17
+ const _swagger = require("@nestjs/swagger");
18
+ const _config = require("../config");
19
+ const _dtos1 = require("../dtos");
20
+ const _taskboardgateway = require("../gateways/task-board.gateway");
21
+ const _tasklistservice = require("../services/task-list.service");
22
+ function _define_property(obj, key, value) {
23
+ if (key in obj) {
24
+ Object.defineProperty(obj, key, {
25
+ value: value,
26
+ enumerable: true,
27
+ configurable: true,
28
+ writable: true
29
+ });
30
+ } else {
31
+ obj[key] = value;
32
+ }
33
+ return obj;
34
+ }
35
+ function _ts_decorate(decorators, target, key, desc) {
36
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38
+ 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;
39
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
40
+ }
41
+ function _ts_metadata(k, v) {
42
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
+ }
44
+ function _ts_param(paramIndex, decorator) {
45
+ return function(target, key) {
46
+ decorator(target, key, paramIndex);
47
+ };
48
+ }
49
+ let TaskListController = class TaskListController extends (0, _classes.createApiController)(_dtos1.CreateTaskListDto, _dtos1.UpdateTaskListDto, _dtos1.TaskListResponseDto, {
50
+ entityName: 'task.list',
51
+ enabledEndpoints: [
52
+ 'insert',
53
+ 'insertMany',
54
+ 'getById',
55
+ 'getAll',
56
+ 'update',
57
+ 'updateMany',
58
+ 'delete'
59
+ ],
60
+ security: {
61
+ insert: {
62
+ level: 'permission',
63
+ permissions: [
64
+ _nestjsshared.TASK_LIST_PERMISSIONS.CREATE
65
+ ]
66
+ },
67
+ insertMany: {
68
+ level: 'permission',
69
+ permissions: [
70
+ _nestjsshared.TASK_LIST_PERMISSIONS.CREATE
71
+ ]
72
+ },
73
+ getById: {
74
+ level: 'permission',
75
+ permissions: [
76
+ _nestjsshared.TASK_LIST_PERMISSIONS.READ
77
+ ]
78
+ },
79
+ getAll: {
80
+ level: 'permission',
81
+ permissions: [
82
+ _nestjsshared.TASK_LIST_PERMISSIONS.READ
83
+ ]
84
+ },
85
+ update: {
86
+ level: 'permission',
87
+ permissions: [
88
+ _nestjsshared.TASK_LIST_PERMISSIONS.UPDATE
89
+ ]
90
+ },
91
+ updateMany: {
92
+ level: 'permission',
93
+ permissions: [
94
+ _nestjsshared.TASK_LIST_PERMISSIONS.UPDATE
95
+ ]
96
+ },
97
+ delete: {
98
+ level: 'permission',
99
+ permissions: [
100
+ _nestjsshared.TASK_LIST_PERMISSIONS.DELETE
101
+ ]
102
+ }
103
+ }
104
+ }) {
105
+ async reorder(dto) {
106
+ await this.listService.reorderLists(dto);
107
+ this.gateway?.emitToBoardRoom(dto.boardId, {
108
+ type: 'list:reordered',
109
+ boardId: dto.boardId,
110
+ payload: {
111
+ orderedIds: dto.orderedIds
112
+ }
113
+ });
114
+ return {
115
+ success: true,
116
+ message: 'Lists reordered',
117
+ messageKey: _config.TASK_LIST_MESSAGES.REORDER_SUCCESS
118
+ };
119
+ }
120
+ constructor(listService, gateway){
121
+ super(listService), _define_property(this, "listService", void 0), _define_property(this, "gateway", void 0), this.listService = listService, this.gateway = gateway;
122
+ }
123
+ };
124
+ _ts_decorate([
125
+ (0, _common.Post)('reorder'),
126
+ (0, _common.UseGuards)(_guards.JwtAuthGuard, _guards.PermissionGuard),
127
+ (0, _swagger.ApiBearerAuth)(),
128
+ (0, _common.HttpCode)(_common.HttpStatus.OK),
129
+ (0, _decorators.RequirePermission)(_nestjsshared.TASK_LIST_PERMISSIONS.UPDATE),
130
+ (0, _swagger.ApiOperation)({
131
+ summary: 'Reorder lists within a board'
132
+ }),
133
+ (0, _swagger.ApiBody)({
134
+ type: _dtos1.ReorderTaskListsDto
135
+ }),
136
+ (0, _swagger.ApiResponse)({
137
+ status: 200,
138
+ type: _dtos.MessageResponseDto
139
+ }),
140
+ _ts_param(0, (0, _common.Body)()),
141
+ _ts_metadata("design:type", Function),
142
+ _ts_metadata("design:paramtypes", [
143
+ typeof _dtos1.ReorderTaskListsDto === "undefined" ? Object : _dtos1.ReorderTaskListsDto
144
+ ]),
145
+ _ts_metadata("design:returntype", Promise)
146
+ ], TaskListController.prototype, "reorder", null);
147
+ TaskListController = _ts_decorate([
148
+ (0, _swagger.ApiTags)('Task Manager - Lists'),
149
+ (0, _common.Controller)('task-manager/list'),
150
+ _ts_param(0, (0, _common.Inject)(_tasklistservice.TaskListService)),
151
+ _ts_param(1, (0, _common.Optional)()),
152
+ _ts_param(1, (0, _common.Inject)(_taskboardgateway.TaskBoardGateway)),
153
+ _ts_metadata("design:type", Function),
154
+ _ts_metadata("design:paramtypes", [
155
+ typeof _tasklistservice.TaskListService === "undefined" ? Object : _tasklistservice.TaskListService,
156
+ typeof _taskboardgateway.TaskBoardGateway === "undefined" ? Object : _taskboardgateway.TaskBoardGateway
157
+ ])
158
+ ], TaskListController);
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "TaskController", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return TaskController;
9
+ }
10
+ });
11
+ const _classes = require("@flusys/nestjs-shared/classes");
12
+ const _decorators = require("@flusys/nestjs-shared/decorators");
13
+ const _guards = require("@flusys/nestjs-shared/guards");
14
+ const _interfaces = require("@flusys/nestjs-shared/interfaces");
15
+ const _common = require("@nestjs/common");
16
+ const _swagger = require("@nestjs/swagger");
17
+ const _classtransformer = require("class-transformer");
18
+ const _nestjsshared = require("@flusys/nestjs-shared");
19
+ const _config = require("../config");
20
+ const _dtos = require("../dtos");
21
+ const _taskboardgateway = require("../gateways/task-board.gateway");
22
+ const _taskservice = require("../services/task.service");
23
+ function _define_property(obj, key, value) {
24
+ if (key in obj) {
25
+ Object.defineProperty(obj, key, {
26
+ value: value,
27
+ enumerable: true,
28
+ configurable: true,
29
+ writable: true
30
+ });
31
+ } else {
32
+ obj[key] = value;
33
+ }
34
+ return obj;
35
+ }
36
+ function _ts_decorate(decorators, target, key, desc) {
37
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
39
+ 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;
40
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
41
+ }
42
+ function _ts_metadata(k, v) {
43
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
44
+ }
45
+ function _ts_param(paramIndex, decorator) {
46
+ return function(target, key) {
47
+ decorator(target, key, paramIndex);
48
+ };
49
+ }
50
+ let TaskController = class TaskController extends (0, _classes.createApiController)(_dtos.CreateTaskDto, _dtos.UpdateTaskDto, _dtos.TaskResponseDto, {
51
+ entityName: 'task',
52
+ enabledEndpoints: [
53
+ 'insert',
54
+ 'insertMany',
55
+ 'getById',
56
+ 'getAll',
57
+ 'update',
58
+ 'updateMany',
59
+ 'delete'
60
+ ],
61
+ security: {
62
+ insert: {
63
+ level: 'permission',
64
+ permissions: [
65
+ _nestjsshared.TASK_PERMISSIONS.CREATE
66
+ ]
67
+ },
68
+ insertMany: {
69
+ level: 'permission',
70
+ permissions: [
71
+ _nestjsshared.TASK_PERMISSIONS.CREATE
72
+ ]
73
+ },
74
+ getById: {
75
+ level: 'permission',
76
+ permissions: [
77
+ _nestjsshared.TASK_PERMISSIONS.READ
78
+ ]
79
+ },
80
+ getAll: {
81
+ level: 'permission',
82
+ permissions: [
83
+ _nestjsshared.TASK_PERMISSIONS.READ
84
+ ]
85
+ },
86
+ update: {
87
+ level: 'permission',
88
+ permissions: [
89
+ _nestjsshared.TASK_PERMISSIONS.UPDATE
90
+ ]
91
+ },
92
+ updateMany: {
93
+ level: 'permission',
94
+ permissions: [
95
+ _nestjsshared.TASK_PERMISSIONS.UPDATE
96
+ ]
97
+ },
98
+ delete: {
99
+ level: 'permission',
100
+ permissions: [
101
+ _nestjsshared.TASK_PERMISSIONS.DELETE
102
+ ]
103
+ }
104
+ }
105
+ }) {
106
+ async moveTask(dto, user) {
107
+ const task = await this.taskService.moveTask(dto, user);
108
+ const data = (0, _classtransformer.plainToInstance)(_dtos.TaskResponseDto, task, {
109
+ excludeExtraneousValues: true
110
+ });
111
+ this.gateway?.emitToBoardRoom(task.boardId, {
112
+ type: 'task:moved',
113
+ boardId: task.boardId,
114
+ payload: data
115
+ });
116
+ return {
117
+ success: true,
118
+ message: 'Task moved',
119
+ messageKey: _config.TASK_MESSAGES.MOVE_SUCCESS,
120
+ data
121
+ };
122
+ }
123
+ async assignTask(dto, user) {
124
+ const task = await this.taskService.assignTask(dto, user);
125
+ const data = (0, _classtransformer.plainToInstance)(_dtos.TaskResponseDto, task, {
126
+ excludeExtraneousValues: true
127
+ });
128
+ this.gateway?.emitToBoardRoom(task.boardId, {
129
+ type: 'task:updated',
130
+ boardId: task.boardId,
131
+ payload: data
132
+ });
133
+ return {
134
+ success: true,
135
+ message: 'Task assigned',
136
+ messageKey: _config.TASK_MESSAGES.ASSIGN_SUCCESS,
137
+ data
138
+ };
139
+ }
140
+ constructor(taskService, gateway){
141
+ super(taskService), _define_property(this, "taskService", void 0), _define_property(this, "gateway", void 0), this.taskService = taskService, this.gateway = gateway;
142
+ }
143
+ };
144
+ _ts_decorate([
145
+ (0, _common.Post)('move'),
146
+ (0, _common.UseGuards)(_guards.JwtAuthGuard, _guards.PermissionGuard),
147
+ (0, _swagger.ApiBearerAuth)(),
148
+ (0, _common.HttpCode)(_common.HttpStatus.OK),
149
+ (0, _decorators.RequirePermission)(_nestjsshared.TASK_PERMISSIONS.MOVE),
150
+ (0, _swagger.ApiOperation)({
151
+ summary: 'Move task to another list'
152
+ }),
153
+ (0, _swagger.ApiBody)({
154
+ type: _dtos.MoveTaskDto
155
+ }),
156
+ (0, _decorators.ApiResponseDto)(_dtos.TaskResponseDto),
157
+ _ts_param(0, (0, _common.Body)()),
158
+ _ts_param(1, (0, _decorators.CurrentUser)()),
159
+ _ts_metadata("design:type", Function),
160
+ _ts_metadata("design:paramtypes", [
161
+ typeof _dtos.MoveTaskDto === "undefined" ? Object : _dtos.MoveTaskDto,
162
+ typeof _interfaces.ILoggedUserInfo === "undefined" ? Object : _interfaces.ILoggedUserInfo
163
+ ]),
164
+ _ts_metadata("design:returntype", Promise)
165
+ ], TaskController.prototype, "moveTask", null);
166
+ _ts_decorate([
167
+ (0, _common.Post)('assign'),
168
+ (0, _common.UseGuards)(_guards.JwtAuthGuard, _guards.PermissionGuard),
169
+ (0, _swagger.ApiBearerAuth)(),
170
+ (0, _common.HttpCode)(_common.HttpStatus.OK),
171
+ (0, _decorators.RequirePermission)(_nestjsshared.TASK_PERMISSIONS.ASSIGN),
172
+ (0, _swagger.ApiOperation)({
173
+ summary: 'Assign task to a board member'
174
+ }),
175
+ (0, _swagger.ApiBody)({
176
+ type: _dtos.AssignTaskDto
177
+ }),
178
+ (0, _decorators.ApiResponseDto)(_dtos.TaskResponseDto),
179
+ _ts_param(0, (0, _common.Body)()),
180
+ _ts_param(1, (0, _decorators.CurrentUser)()),
181
+ _ts_metadata("design:type", Function),
182
+ _ts_metadata("design:paramtypes", [
183
+ typeof _dtos.AssignTaskDto === "undefined" ? Object : _dtos.AssignTaskDto,
184
+ typeof _interfaces.ILoggedUserInfo === "undefined" ? Object : _interfaces.ILoggedUserInfo
185
+ ]),
186
+ _ts_metadata("design:returntype", Promise)
187
+ ], TaskController.prototype, "assignTask", null);
188
+ TaskController = _ts_decorate([
189
+ (0, _swagger.ApiTags)('Task Manager - Tasks'),
190
+ (0, _common.Controller)('task-manager/task'),
191
+ _ts_param(0, (0, _common.Inject)(_taskservice.TaskService)),
192
+ _ts_param(1, (0, _common.Optional)()),
193
+ _ts_param(1, (0, _common.Inject)(_taskboardgateway.TaskBoardGateway)),
194
+ _ts_metadata("design:type", Function),
195
+ _ts_metadata("design:paramtypes", [
196
+ typeof _taskservice.TaskService === "undefined" ? Object : _taskservice.TaskService,
197
+ typeof _taskboardgateway.TaskBoardGateway === "undefined" ? Object : _taskboardgateway.TaskBoardGateway
198
+ ])
199
+ ], TaskController);
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ _export_star(require("./task-manager-swagger.config"), exports);
6
+ function _export_star(from, to) {
7
+ Object.keys(from).forEach(function(k) {
8
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
9
+ Object.defineProperty(to, k, {
10
+ enumerable: true,
11
+ get: function() {
12
+ return from[k];
13
+ }
14
+ });
15
+ }
16
+ });
17
+ return from;
18
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "taskManagerSwaggerConfig", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return taskManagerSwaggerConfig;
9
+ }
10
+ });
11
+ function taskManagerSwaggerConfig() {
12
+ return {
13
+ title: 'Task Manager API',
14
+ description: `
15
+ ## Task Manager API
16
+
17
+ Manages kanban boards, task lists, tasks, labels, comments, and real-time board collaboration.
18
+
19
+ ### Features
20
+ - Board management with member access control
21
+ - Drag-and-drop task lists with position ordering
22
+ - Tasks with priority, due date, assignee, and label support
23
+ - Label assignment via junction table (many-to-many)
24
+ - Task comments and activity log
25
+ - Real-time updates via WebSocket (Socket.IO)
26
+
27
+ ### Endpoints
28
+
29
+ - \`POST /task-manager/board/*\` — Board CRUD + member management
30
+
31
+ - \`POST /task-manager/list/*\` — List CRUD + reorder
32
+
33
+ - \`POST /task-manager/task/*\` — Task CRUD + move + assign
34
+
35
+ - \`POST /task-manager/label/*\` — Label CRUD
36
+
37
+ - \`POST /task-manager/comment/*\` — Comment CRUD
38
+ `,
39
+ version: '1.0',
40
+ path: 'api/docs/task-manager',
41
+ bearerAuth: true
42
+ };
43
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ _export_star(require("./task-board.dto"), exports);
6
+ _export_star(require("./task-list.dto"), exports);
7
+ _export_star(require("./task.dto"), exports);
8
+ _export_star(require("./task-label.dto"), exports);
9
+ _export_star(require("./task-comment.dto"), exports);
10
+ function _export_star(from, to) {
11
+ Object.keys(from).forEach(function(k) {
12
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
13
+ Object.defineProperty(to, k, {
14
+ enumerable: true,
15
+ get: function() {
16
+ return from[k];
17
+ }
18
+ });
19
+ }
20
+ });
21
+ return from;
22
+ }