@flusys/nestjs-task-manager 7.0.2 → 8.0.0-beta.1
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/config/index.d.ts +3 -3
- package/controllers/index.d.ts +5 -5
- package/controllers/task-board.controller.d.ts +3 -3
- package/controllers/task-comment.controller.d.ts +2 -2
- package/controllers/task-label.controller.d.ts +2 -2
- package/controllers/task-list.controller.d.ts +3 -3
- package/controllers/task.controller.d.ts +4 -4
- package/docs/index.d.ts +1 -1
- package/docs/task-manager-swagger.config.d.ts +1 -1
- package/dtos/index.d.ts +5 -5
- package/dtos/task-board.dto.d.ts +1 -1
- package/dtos/task.dto.d.ts +2 -2
- package/entities/index.d.ts +19 -19
- package/entities/task-board-with-company.entity.d.ts +1 -1
- package/fesm/234.js +1393 -0
- package/fesm/431.js +981 -0
- package/fesm/827.js +1054 -0
- package/fesm/988.js +881 -0
- package/fesm/config/index.js +156 -3
- package/fesm/controllers/index.js +21 -5
- package/fesm/docs/index.js +58 -1
- package/fesm/dtos/index.js +280 -5
- package/fesm/entities/index.js +26 -46
- package/fesm/gateways/index.js +288 -1
- package/fesm/index.js +440 -9
- package/fesm/interfaces/index.js +16 -2
- package/fesm/modules/index.js +210 -1
- package/fesm/runtime.js +85 -0
- package/fesm/services/index.js +53 -8
- package/gateways/index.d.ts +1 -1
- package/gateways/task-board.gateway.d.ts +3 -3
- package/index.d.ts +9 -9
- package/interfaces/index.d.ts +2 -2
- package/interfaces/task-manager-module.interface.d.ts +3 -3
- package/interfaces/task.interface.d.ts +2 -2
- package/modules/index.d.ts +1 -1
- package/modules/task-manager.module.d.ts +2 -2
- package/package.json +26 -36
- package/services/index.d.ts +8 -8
- package/services/task-activity.service.d.ts +1 -1
- package/services/task-board.service.d.ts +5 -5
- package/services/task-comment.service.d.ts +4 -4
- package/services/task-label.service.d.ts +4 -4
- package/services/task-list.service.d.ts +4 -4
- package/services/task-manager-config.service.d.ts +3 -3
- package/services/task-manager-datasource.provider.d.ts +3 -3
- package/services/task.service.d.ts +7 -7
- package/cjs/config/event-actions.js +0 -37
- package/cjs/config/index.js +0 -20
- package/cjs/config/message-keys.js +0 -92
- package/cjs/config/task-manager.constants.js +0 -11
- package/cjs/controllers/index.js +0 -22
- package/cjs/controllers/task-board.controller.js +0 -219
- package/cjs/controllers/task-board.controller.spec.js +0 -132
- package/cjs/controllers/task-comment.controller.js +0 -103
- package/cjs/controllers/task-comment.controller.spec.js +0 -86
- package/cjs/controllers/task-label.controller.js +0 -112
- package/cjs/controllers/task-label.controller.spec.js +0 -88
- package/cjs/controllers/task-list.controller.js +0 -158
- package/cjs/controllers/task-list.controller.spec.js +0 -112
- package/cjs/controllers/task.controller.js +0 -199
- package/cjs/controllers/task.controller.spec.js +0 -131
- package/cjs/docs/index.js +0 -18
- package/cjs/docs/task-manager-swagger.config.js +0 -43
- package/cjs/docs/task-manager-swagger.config.spec.js +0 -28
- package/cjs/dtos/index.js +0 -22
- package/cjs/dtos/task-board.dto.js +0 -310
- package/cjs/dtos/task-comment.dto.js +0 -131
- package/cjs/dtos/task-label.dto.js +0 -120
- package/cjs/dtos/task-list.dto.js +0 -198
- package/cjs/dtos/task.dto.js +0 -367
- package/cjs/entities/index.js +0 -72
- package/cjs/entities/index.spec.js +0 -30
- package/cjs/entities/task-activity.entity.js +0 -98
- package/cjs/entities/task-assignee.entity.js +0 -67
- package/cjs/entities/task-board-member.entity.js +0 -94
- package/cjs/entities/task-board-with-company.entity.js +0 -57
- package/cjs/entities/task-board.entity.js +0 -88
- package/cjs/entities/task-comment.entity.js +0 -80
- package/cjs/entities/task-label.entity.js +0 -72
- package/cjs/entities/task-list.entity.js +0 -104
- package/cjs/entities/task-task-label.entity.js +0 -67
- package/cjs/entities/task.entity.js +0 -151
- package/cjs/gateways/index.js +0 -18
- package/cjs/gateways/task-board.gateway.js +0 -167
- package/cjs/gateways/task-board.gateway.spec.js +0 -243
- package/cjs/index.js +0 -26
- package/cjs/interfaces/index.js +0 -19
- package/cjs/interfaces/task-manager-module.interface.js +0 -4
- package/cjs/interfaces/task.interface.js +0 -4
- package/cjs/modules/index.js +0 -18
- package/cjs/modules/task-manager.module.js +0 -135
- package/cjs/modules/task-manager.module.spec.js +0 -144
- package/cjs/services/index.js +0 -25
- package/cjs/services/task-activity.service.js +0 -76
- package/cjs/services/task-activity.service.spec.js +0 -125
- package/cjs/services/task-board.service.js +0 -247
- package/cjs/services/task-board.service.spec.js +0 -465
- package/cjs/services/task-comment.service.js +0 -103
- package/cjs/services/task-comment.service.spec.js +0 -160
- package/cjs/services/task-label.service.js +0 -97
- package/cjs/services/task-label.service.spec.js +0 -138
- package/cjs/services/task-list.service.js +0 -130
- package/cjs/services/task-list.service.spec.js +0 -284
- package/cjs/services/task-manager-config.service.js +0 -69
- package/cjs/services/task-manager-config.service.spec.js +0 -98
- package/cjs/services/task-manager-datasource.provider.js +0 -84
- package/cjs/services/task-manager-datasource.provider.spec.js +0 -131
- package/cjs/services/task.service.js +0 -398
- package/cjs/services/task.service.spec.js +0 -700
- package/fesm/config/event-actions.js +0 -16
- package/fesm/config/message-keys.js +0 -65
- package/fesm/config/task-manager.constants.js +0 -1
- package/fesm/controllers/task-board.controller.js +0 -209
- package/fesm/controllers/task-board.controller.spec.js +0 -128
- package/fesm/controllers/task-comment.controller.js +0 -93
- package/fesm/controllers/task-comment.controller.spec.js +0 -82
- package/fesm/controllers/task-label.controller.js +0 -102
- package/fesm/controllers/task-label.controller.spec.js +0 -84
- package/fesm/controllers/task-list.controller.js +0 -148
- package/fesm/controllers/task-list.controller.spec.js +0 -108
- package/fesm/controllers/task.controller.js +0 -189
- package/fesm/controllers/task.controller.spec.js +0 -127
- package/fesm/docs/task-manager-swagger.config.js +0 -33
- package/fesm/docs/task-manager-swagger.config.spec.js +0 -24
- package/fesm/dtos/task-board.dto.js +0 -277
- package/fesm/dtos/task-comment.dto.js +0 -110
- package/fesm/dtos/task-label.dto.js +0 -99
- package/fesm/dtos/task-list.dto.js +0 -174
- package/fesm/dtos/task.dto.js +0 -337
- package/fesm/entities/index.spec.js +0 -26
- package/fesm/entities/task-activity.entity.js +0 -88
- package/fesm/entities/task-assignee.entity.js +0 -57
- package/fesm/entities/task-board-member.entity.js +0 -76
- package/fesm/entities/task-board-with-company.entity.js +0 -47
- package/fesm/entities/task-board.entity.js +0 -78
- package/fesm/entities/task-comment.entity.js +0 -70
- package/fesm/entities/task-label.entity.js +0 -62
- package/fesm/entities/task-list.entity.js +0 -94
- package/fesm/entities/task-task-label.entity.js +0 -57
- package/fesm/entities/task.entity.js +0 -133
- package/fesm/gateways/task-board.gateway.js +0 -157
- package/fesm/gateways/task-board.gateway.spec.js +0 -239
- package/fesm/interfaces/task-manager-module.interface.js +0 -1
- package/fesm/interfaces/task.interface.js +0 -1
- package/fesm/modules/task-manager.module.js +0 -125
- package/fesm/modules/task-manager.module.spec.js +0 -140
- package/fesm/services/task-activity.service.js +0 -66
- package/fesm/services/task-activity.service.spec.js +0 -121
- package/fesm/services/task-board.service.js +0 -237
- package/fesm/services/task-board.service.spec.js +0 -461
- package/fesm/services/task-comment.service.js +0 -93
- package/fesm/services/task-comment.service.spec.js +0 -156
- package/fesm/services/task-label.service.js +0 -87
- package/fesm/services/task-label.service.spec.js +0 -134
- package/fesm/services/task-list.service.js +0 -120
- package/fesm/services/task-list.service.spec.js +0 -280
- package/fesm/services/task-manager-config.service.js +0 -59
- package/fesm/services/task-manager-config.service.spec.js +0 -94
- package/fesm/services/task-manager-datasource.provider.js +0 -74
- package/fesm/services/task-manager-datasource.provider.spec.js +0 -127
- package/fesm/services/task.service.js +0 -388
- package/fesm/services/task.service.spec.js +0 -696
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { DatabaseMode } from '@flusys/nestjs-core';
|
|
2
|
-
import { IModuleConfigService } from '@flusys/nestjs-shared/interfaces';
|
|
3
|
-
import { TaskManagerModuleOptions } from '../interfaces';
|
|
1
|
+
import { type DatabaseMode } from '@flusys/nestjs-core';
|
|
2
|
+
import { type IModuleConfigService } from '@flusys/nestjs-shared/interfaces';
|
|
3
|
+
import { type TaskManagerModuleOptions } from '../interfaces/index.js';
|
|
4
4
|
export declare class TaskManagerConfigService implements IModuleConfigService {
|
|
5
5
|
private readonly options;
|
|
6
6
|
constructor(options: TaskManagerModuleOptions);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { IDatabaseConfig, ITenantDatabaseConfig } from '@flusys/nestjs-core';
|
|
1
|
+
import { type IDatabaseConfig, type ITenantDatabaseConfig } from '@flusys/nestjs-core';
|
|
2
2
|
import { MultiTenantDataSourceService } from '@flusys/nestjs-shared/modules';
|
|
3
|
-
import { Request } from 'express';
|
|
3
|
+
import { type Request } from 'express';
|
|
4
4
|
import { DataSource } from 'typeorm';
|
|
5
|
-
import { TaskManagerConfigService } from './task-manager-config.service';
|
|
5
|
+
import { TaskManagerConfigService } from './task-manager-config.service.js';
|
|
6
6
|
export declare class TaskManagerDataSourceProvider extends MultiTenantDataSourceService {
|
|
7
7
|
private readonly configService;
|
|
8
8
|
protected static readonly tenantConnections: Map<string, DataSource>;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { ApiService, HybridCache } from '@flusys/nestjs-shared/classes';
|
|
2
2
|
import { FilterAndPaginationDto } from '@flusys/nestjs-shared/dtos';
|
|
3
|
-
import { ILoggedUserInfo } from '@flusys/nestjs-shared/interfaces';
|
|
3
|
+
import { type ILoggedUserInfo } from '@flusys/nestjs-shared/interfaces';
|
|
4
4
|
import { UtilsService } from '@flusys/nestjs-shared/modules';
|
|
5
|
-
import { QueryRunner, SelectQueryBuilder } from 'typeorm';
|
|
6
|
-
import { AssignTaskDto, CreateTaskDto, MoveTaskDto, UpdateTaskDto } from '../dtos';
|
|
7
|
-
import { Task } from '../entities';
|
|
8
|
-
import { TaskActivityService } from './task-activity.service';
|
|
9
|
-
import { TaskBoardService } from './task-board.service';
|
|
10
|
-
import { TaskManagerDataSourceProvider } from './task-manager-datasource.provider';
|
|
5
|
+
import { type QueryRunner, SelectQueryBuilder } from 'typeorm';
|
|
6
|
+
import { AssignTaskDto, CreateTaskDto, MoveTaskDto, UpdateTaskDto } from '../dtos/index.js';
|
|
7
|
+
import { Task } from '../entities/index.js';
|
|
8
|
+
import { TaskActivityService } from './task-activity.service.js';
|
|
9
|
+
import { TaskBoardService } from './task-board.service.js';
|
|
10
|
+
import { TaskManagerDataSourceProvider } from './task-manager-datasource.provider.js';
|
|
11
11
|
export declare class TaskService extends ApiService<CreateTaskDto, UpdateTaskDto, Task, Task> {
|
|
12
12
|
protected cacheManager: HybridCache;
|
|
13
13
|
protected utilsService: UtilsService;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Domain event actions published by the task manager module, alongside the CRUD
|
|
3
|
-
* lifecycle actions every ApiService emits.
|
|
4
|
-
*/ "use strict";
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
function _export(target, all) {
|
|
9
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
10
|
-
enumerable: true,
|
|
11
|
-
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
_export(exports, {
|
|
15
|
-
get TASK_MANAGER_EVENT_ACTIONS () {
|
|
16
|
-
return TASK_MANAGER_EVENT_ACTIONS;
|
|
17
|
-
},
|
|
18
|
-
get TASK_MANAGER_EVENT_ENTITIES () {
|
|
19
|
-
return TASK_MANAGER_EVENT_ENTITIES;
|
|
20
|
-
},
|
|
21
|
-
get TASK_MANAGER_EVENT_MODULE () {
|
|
22
|
-
return TASK_MANAGER_EVENT_MODULE;
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
const TASK_MANAGER_EVENT_ACTIONS = {
|
|
26
|
-
MOVED: 'moved',
|
|
27
|
-
ASSIGNED: 'assigned',
|
|
28
|
-
REORDERED: 'reordered'
|
|
29
|
-
};
|
|
30
|
-
const TASK_MANAGER_EVENT_ENTITIES = {
|
|
31
|
-
TASK: 'task',
|
|
32
|
-
TASK_BOARD: 'task_board',
|
|
33
|
-
TASK_LIST: 'task_list',
|
|
34
|
-
TASK_LABEL: 'task_label',
|
|
35
|
-
TASK_COMMENT: 'task_comment'
|
|
36
|
-
};
|
|
37
|
-
const TASK_MANAGER_EVENT_MODULE = 'task-manager';
|
package/cjs/config/index.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
_export_star(require("./event-actions"), exports);
|
|
6
|
-
_export_star(require("./message-keys"), exports);
|
|
7
|
-
_export_star(require("./task-manager.constants"), exports);
|
|
8
|
-
function _export_star(from, to) {
|
|
9
|
-
Object.keys(from).forEach(function(k) {
|
|
10
|
-
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
|
|
11
|
-
Object.defineProperty(to, k, {
|
|
12
|
-
enumerable: true,
|
|
13
|
-
get: function() {
|
|
14
|
-
return from[k];
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
return from;
|
|
20
|
-
}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
function _export(target, all) {
|
|
6
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
_export(exports, {
|
|
12
|
-
get TASK_BOARD_MESSAGES () {
|
|
13
|
-
return TASK_BOARD_MESSAGES;
|
|
14
|
-
},
|
|
15
|
-
get TASK_COMMENT_MESSAGES () {
|
|
16
|
-
return TASK_COMMENT_MESSAGES;
|
|
17
|
-
},
|
|
18
|
-
get TASK_LABEL_MESSAGES () {
|
|
19
|
-
return TASK_LABEL_MESSAGES;
|
|
20
|
-
},
|
|
21
|
-
get TASK_LIST_MESSAGES () {
|
|
22
|
-
return TASK_LIST_MESSAGES;
|
|
23
|
-
},
|
|
24
|
-
get TASK_MESSAGES () {
|
|
25
|
-
return TASK_MESSAGES;
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
const TASK_BOARD_MESSAGES = {
|
|
29
|
-
NOT_FOUND: 'task.board.not.found',
|
|
30
|
-
CREATE_SUCCESS: 'task.board.create.success',
|
|
31
|
-
CREATE_MANY_SUCCESS: 'task.board.create.many.success',
|
|
32
|
-
GET_SUCCESS: 'task.board.get.success',
|
|
33
|
-
GET_ALL_SUCCESS: 'task.board.get.all.success',
|
|
34
|
-
UPDATE_SUCCESS: 'task.board.update.success',
|
|
35
|
-
UPDATE_MANY_SUCCESS: 'task.board.update.many.success',
|
|
36
|
-
DELETE_SUCCESS: 'task.board.delete.success',
|
|
37
|
-
RESTORE_SUCCESS: 'task.board.restore.success',
|
|
38
|
-
MEMBER_ADDED: 'task.board.member.added',
|
|
39
|
-
MEMBER_REMOVED: 'task.board.member.removed',
|
|
40
|
-
MEMBER_NOT_FOUND: 'task.board.member.not.found',
|
|
41
|
-
MEMBER_ALREADY_EXISTS: 'task.board.member.already.exists',
|
|
42
|
-
MEMBER_GET_ALL_SUCCESS: 'task.board.member.get.all.success'
|
|
43
|
-
};
|
|
44
|
-
const TASK_LIST_MESSAGES = {
|
|
45
|
-
NOT_FOUND: 'task.list.not.found',
|
|
46
|
-
CREATE_SUCCESS: 'task.list.create.success',
|
|
47
|
-
CREATE_MANY_SUCCESS: 'task.list.create.many.success',
|
|
48
|
-
GET_SUCCESS: 'task.list.get.success',
|
|
49
|
-
GET_ALL_SUCCESS: 'task.list.get.all.success',
|
|
50
|
-
UPDATE_SUCCESS: 'task.list.update.success',
|
|
51
|
-
UPDATE_MANY_SUCCESS: 'task.list.update.many.success',
|
|
52
|
-
DELETE_SUCCESS: 'task.list.delete.success',
|
|
53
|
-
RESTORE_SUCCESS: 'task.list.restore.success',
|
|
54
|
-
REORDER_SUCCESS: 'task.list.reorder.success'
|
|
55
|
-
};
|
|
56
|
-
const TASK_MESSAGES = {
|
|
57
|
-
NOT_FOUND: 'task.not.found',
|
|
58
|
-
CREATE_SUCCESS: 'task.create.success',
|
|
59
|
-
CREATE_MANY_SUCCESS: 'task.create.many.success',
|
|
60
|
-
GET_SUCCESS: 'task.get.success',
|
|
61
|
-
GET_ALL_SUCCESS: 'task.get.all.success',
|
|
62
|
-
UPDATE_SUCCESS: 'task.update.success',
|
|
63
|
-
UPDATE_MANY_SUCCESS: 'task.update.many.success',
|
|
64
|
-
DELETE_SUCCESS: 'task.delete.success',
|
|
65
|
-
RESTORE_SUCCESS: 'task.restore.success',
|
|
66
|
-
MOVE_SUCCESS: 'task.move.success',
|
|
67
|
-
ASSIGN_SUCCESS: 'task.assign.success',
|
|
68
|
-
ASSIGNEE_NOT_BOARD_MEMBER: 'task.assignee.not.board.member'
|
|
69
|
-
};
|
|
70
|
-
const TASK_LABEL_MESSAGES = {
|
|
71
|
-
NOT_FOUND: 'task.label.not.found',
|
|
72
|
-
CREATE_SUCCESS: 'task.label.create.success',
|
|
73
|
-
CREATE_MANY_SUCCESS: 'task.label.create.many.success',
|
|
74
|
-
GET_SUCCESS: 'task.label.get.success',
|
|
75
|
-
GET_ALL_SUCCESS: 'task.label.get.all.success',
|
|
76
|
-
UPDATE_SUCCESS: 'task.label.update.success',
|
|
77
|
-
UPDATE_MANY_SUCCESS: 'task.label.update.many.success',
|
|
78
|
-
DELETE_SUCCESS: 'task.label.delete.success',
|
|
79
|
-
RESTORE_SUCCESS: 'task.label.restore.success'
|
|
80
|
-
};
|
|
81
|
-
const TASK_COMMENT_MESSAGES = {
|
|
82
|
-
NOT_FOUND: 'task.comment.not.found',
|
|
83
|
-
CREATE_SUCCESS: 'task.comment.create.success',
|
|
84
|
-
CREATE_MANY_SUCCESS: 'task.comment.create.many.success',
|
|
85
|
-
GET_SUCCESS: 'task.comment.get.success',
|
|
86
|
-
GET_ALL_SUCCESS: 'task.comment.get.all.success',
|
|
87
|
-
UPDATE_SUCCESS: 'task.comment.update.success',
|
|
88
|
-
UPDATE_MANY_SUCCESS: 'task.comment.update.many.success',
|
|
89
|
-
DELETE_SUCCESS: 'task.comment.delete.success',
|
|
90
|
-
RESTORE_SUCCESS: 'task.comment.restore.success',
|
|
91
|
-
FORBIDDEN: 'task.comment.forbidden'
|
|
92
|
-
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "TASK_MANAGER_MODULE_OPTIONS", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return TASK_MANAGER_MODULE_OPTIONS;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const TASK_MANAGER_MODULE_OPTIONS = 'TASK_MANAGER_MODULE_OPTIONS';
|
package/cjs/controllers/index.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
_export_star(require("./task-board.controller"), exports);
|
|
6
|
-
_export_star(require("./task-list.controller"), exports);
|
|
7
|
-
_export_star(require("./task.controller"), exports);
|
|
8
|
-
_export_star(require("./task-label.controller"), exports);
|
|
9
|
-
_export_star(require("./task-comment.controller"), 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
|
-
}
|
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "TaskBoardController", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return TaskBoardController;
|
|
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 _interfaces = require("@flusys/nestjs-shared/interfaces");
|
|
17
|
-
const _common = require("@nestjs/common");
|
|
18
|
-
const _swagger = require("@nestjs/swagger");
|
|
19
|
-
const _classtransformer = require("class-transformer");
|
|
20
|
-
const _config = require("../config");
|
|
21
|
-
const _dtos1 = require("../dtos");
|
|
22
|
-
const _taskboardservice = require("../services/task-board.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 TaskBoardController = class TaskBoardController extends (0, _classes.createApiController)(_dtos1.CreateTaskBoardDto, _dtos1.UpdateTaskBoardDto, _dtos1.TaskBoardResponseDto, {
|
|
51
|
-
entityName: 'task.board',
|
|
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_BOARD_PERMISSIONS.CREATE
|
|
66
|
-
]
|
|
67
|
-
},
|
|
68
|
-
insertMany: {
|
|
69
|
-
level: 'permission',
|
|
70
|
-
permissions: [
|
|
71
|
-
_nestjsshared.TASK_BOARD_PERMISSIONS.CREATE
|
|
72
|
-
]
|
|
73
|
-
},
|
|
74
|
-
getById: {
|
|
75
|
-
level: 'permission',
|
|
76
|
-
permissions: [
|
|
77
|
-
_nestjsshared.TASK_BOARD_PERMISSIONS.READ
|
|
78
|
-
]
|
|
79
|
-
},
|
|
80
|
-
getAll: {
|
|
81
|
-
level: 'permission',
|
|
82
|
-
permissions: [
|
|
83
|
-
_nestjsshared.TASK_BOARD_PERMISSIONS.READ
|
|
84
|
-
]
|
|
85
|
-
},
|
|
86
|
-
update: {
|
|
87
|
-
level: 'permission',
|
|
88
|
-
permissions: [
|
|
89
|
-
_nestjsshared.TASK_BOARD_PERMISSIONS.UPDATE
|
|
90
|
-
]
|
|
91
|
-
},
|
|
92
|
-
updateMany: {
|
|
93
|
-
level: 'permission',
|
|
94
|
-
permissions: [
|
|
95
|
-
_nestjsshared.TASK_BOARD_PERMISSIONS.UPDATE
|
|
96
|
-
]
|
|
97
|
-
},
|
|
98
|
-
delete: {
|
|
99
|
-
level: 'permission',
|
|
100
|
-
permissions: [
|
|
101
|
-
_nestjsshared.TASK_BOARD_PERMISSIONS.DELETE
|
|
102
|
-
]
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}) {
|
|
106
|
-
async addMember(dto, user) {
|
|
107
|
-
const member = await this.boardService.addMember(dto, user);
|
|
108
|
-
return {
|
|
109
|
-
success: true,
|
|
110
|
-
message: 'Member added to board',
|
|
111
|
-
messageKey: _config.TASK_BOARD_MESSAGES.MEMBER_ADDED,
|
|
112
|
-
data: (0, _classtransformer.plainToInstance)(_dtos1.TaskBoardMemberResponseDto, member, {
|
|
113
|
-
excludeExtraneousValues: true
|
|
114
|
-
})
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
async removeMember(dto) {
|
|
118
|
-
await this.boardService.removeMember(dto);
|
|
119
|
-
return {
|
|
120
|
-
success: true,
|
|
121
|
-
message: 'Member removed',
|
|
122
|
-
messageKey: _config.TASK_BOARD_MESSAGES.MEMBER_REMOVED
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
async getMembers(dto) {
|
|
126
|
-
const members = await this.boardService.getMembers(dto.boardId);
|
|
127
|
-
const data = (0, _classtransformer.plainToInstance)(_dtos1.TaskBoardMemberResponseDto, members, {
|
|
128
|
-
excludeExtraneousValues: true
|
|
129
|
-
});
|
|
130
|
-
return {
|
|
131
|
-
success: true,
|
|
132
|
-
message: 'Board members retrieved',
|
|
133
|
-
messageKey: _config.TASK_BOARD_MESSAGES.MEMBER_GET_ALL_SUCCESS,
|
|
134
|
-
data,
|
|
135
|
-
meta: {
|
|
136
|
-
total: data.length,
|
|
137
|
-
page: 0,
|
|
138
|
-
pageSize: data.length,
|
|
139
|
-
count: data.length
|
|
140
|
-
}
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
constructor(boardService){
|
|
144
|
-
super(boardService), _define_property(this, "boardService", void 0), this.boardService = boardService;
|
|
145
|
-
}
|
|
146
|
-
};
|
|
147
|
-
_ts_decorate([
|
|
148
|
-
(0, _common.Post)('add-member'),
|
|
149
|
-
(0, _common.UseGuards)(_guards.JwtAuthGuard, _guards.PermissionGuard),
|
|
150
|
-
(0, _swagger.ApiBearerAuth)(),
|
|
151
|
-
(0, _common.HttpCode)(_common.HttpStatus.OK),
|
|
152
|
-
(0, _decorators.RequirePermission)(_nestjsshared.TASK_BOARD_PERMISSIONS.MANAGE_MEMBERS),
|
|
153
|
-
(0, _swagger.ApiOperation)({
|
|
154
|
-
summary: 'Add user to board'
|
|
155
|
-
}),
|
|
156
|
-
(0, _swagger.ApiBody)({
|
|
157
|
-
type: _dtos1.AddBoardMemberDto
|
|
158
|
-
}),
|
|
159
|
-
(0, _decorators.ApiResponseDto)(_dtos1.TaskBoardMemberResponseDto),
|
|
160
|
-
_ts_param(0, (0, _common.Body)()),
|
|
161
|
-
_ts_param(1, (0, _decorators.CurrentUser)()),
|
|
162
|
-
_ts_metadata("design:type", Function),
|
|
163
|
-
_ts_metadata("design:paramtypes", [
|
|
164
|
-
typeof _dtos1.AddBoardMemberDto === "undefined" ? Object : _dtos1.AddBoardMemberDto,
|
|
165
|
-
typeof _interfaces.ILoggedUserInfo === "undefined" ? Object : _interfaces.ILoggedUserInfo
|
|
166
|
-
]),
|
|
167
|
-
_ts_metadata("design:returntype", Promise)
|
|
168
|
-
], TaskBoardController.prototype, "addMember", null);
|
|
169
|
-
_ts_decorate([
|
|
170
|
-
(0, _common.Post)('remove-member'),
|
|
171
|
-
(0, _common.UseGuards)(_guards.JwtAuthGuard, _guards.PermissionGuard),
|
|
172
|
-
(0, _swagger.ApiBearerAuth)(),
|
|
173
|
-
(0, _common.HttpCode)(_common.HttpStatus.OK),
|
|
174
|
-
(0, _decorators.RequirePermission)(_nestjsshared.TASK_BOARD_PERMISSIONS.MANAGE_MEMBERS),
|
|
175
|
-
(0, _swagger.ApiOperation)({
|
|
176
|
-
summary: 'Remove user from board'
|
|
177
|
-
}),
|
|
178
|
-
(0, _swagger.ApiBody)({
|
|
179
|
-
type: _dtos1.RemoveBoardMemberDto
|
|
180
|
-
}),
|
|
181
|
-
(0, _swagger.ApiResponse)({
|
|
182
|
-
status: 200,
|
|
183
|
-
type: _dtos.MessageResponseDto
|
|
184
|
-
}),
|
|
185
|
-
_ts_param(0, (0, _common.Body)()),
|
|
186
|
-
_ts_metadata("design:type", Function),
|
|
187
|
-
_ts_metadata("design:paramtypes", [
|
|
188
|
-
typeof _dtos1.RemoveBoardMemberDto === "undefined" ? Object : _dtos1.RemoveBoardMemberDto
|
|
189
|
-
]),
|
|
190
|
-
_ts_metadata("design:returntype", Promise)
|
|
191
|
-
], TaskBoardController.prototype, "removeMember", null);
|
|
192
|
-
_ts_decorate([
|
|
193
|
-
(0, _common.Post)('get-members'),
|
|
194
|
-
(0, _common.UseGuards)(_guards.JwtAuthGuard),
|
|
195
|
-
(0, _swagger.ApiBearerAuth)(),
|
|
196
|
-
(0, _common.HttpCode)(_common.HttpStatus.OK),
|
|
197
|
-
(0, _swagger.ApiOperation)({
|
|
198
|
-
summary: 'Get all board members'
|
|
199
|
-
}),
|
|
200
|
-
(0, _swagger.ApiBody)({
|
|
201
|
-
type: _dtos1.GetBoardMembersDto
|
|
202
|
-
}),
|
|
203
|
-
(0, _decorators.ApiResponseDto)(_dtos1.TaskBoardMemberResponseDto, true),
|
|
204
|
-
_ts_param(0, (0, _common.Body)()),
|
|
205
|
-
_ts_metadata("design:type", Function),
|
|
206
|
-
_ts_metadata("design:paramtypes", [
|
|
207
|
-
typeof _dtos1.GetBoardMembersDto === "undefined" ? Object : _dtos1.GetBoardMembersDto
|
|
208
|
-
]),
|
|
209
|
-
_ts_metadata("design:returntype", Promise)
|
|
210
|
-
], TaskBoardController.prototype, "getMembers", null);
|
|
211
|
-
TaskBoardController = _ts_decorate([
|
|
212
|
-
(0, _swagger.ApiTags)('Task Manager - Boards'),
|
|
213
|
-
(0, _common.Controller)('task-manager/board'),
|
|
214
|
-
_ts_param(0, (0, _common.Inject)(_taskboardservice.TaskBoardService)),
|
|
215
|
-
_ts_metadata("design:type", Function),
|
|
216
|
-
_ts_metadata("design:paramtypes", [
|
|
217
|
-
typeof _taskboardservice.TaskBoardService === "undefined" ? Object : _taskboardservice.TaskBoardService
|
|
218
|
-
])
|
|
219
|
-
], TaskBoardController);
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
const _loggedusermock = require("@test-utils/mocks/logged-user.mock");
|
|
6
|
-
const _taskboardcontroller = require("./task-board.controller");
|
|
7
|
-
function buildBoard(overrides = {}) {
|
|
8
|
-
return {
|
|
9
|
-
id: 'board-uuid-1',
|
|
10
|
-
name: 'Sprint Board',
|
|
11
|
-
description: null,
|
|
12
|
-
isActive: true,
|
|
13
|
-
readOnly: false,
|
|
14
|
-
createdAt: new Date(),
|
|
15
|
-
updatedAt: new Date(),
|
|
16
|
-
...overrides
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
describe('TaskBoardController', ()=>{
|
|
20
|
-
let controller;
|
|
21
|
-
let mockBoardService;
|
|
22
|
-
beforeEach(()=>{
|
|
23
|
-
mockBoardService = {
|
|
24
|
-
insert: jest.fn(),
|
|
25
|
-
findById: jest.fn(),
|
|
26
|
-
getAll: jest.fn(),
|
|
27
|
-
update: jest.fn(),
|
|
28
|
-
delete: jest.fn(),
|
|
29
|
-
addMember: jest.fn(),
|
|
30
|
-
removeMember: jest.fn(),
|
|
31
|
-
getMembers: jest.fn()
|
|
32
|
-
};
|
|
33
|
-
controller = new _taskboardcontroller.TaskBoardController(mockBoardService);
|
|
34
|
-
});
|
|
35
|
-
describe('insert', ()=>{
|
|
36
|
-
it('creates a board and returns the mapped response', async ()=>{
|
|
37
|
-
const user = (0, _loggedusermock.buildMockUser)();
|
|
38
|
-
mockBoardService.insert.mockResolvedValue(buildBoard());
|
|
39
|
-
const result = await controller.insert({
|
|
40
|
-
name: 'Sprint Board'
|
|
41
|
-
}, user);
|
|
42
|
-
expect(mockBoardService.insert).toHaveBeenCalledWith({
|
|
43
|
-
name: 'Sprint Board'
|
|
44
|
-
}, user);
|
|
45
|
-
expect(result.success).toBe(true);
|
|
46
|
-
expect(result.data).toEqual(expect.objectContaining({
|
|
47
|
-
id: 'board-uuid-1'
|
|
48
|
-
}));
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
describe('getAll', ()=>{
|
|
52
|
-
it('paginates boards and maps the response list', async ()=>{
|
|
53
|
-
mockBoardService.getAll.mockResolvedValue({
|
|
54
|
-
data: [
|
|
55
|
-
buildBoard()
|
|
56
|
-
],
|
|
57
|
-
total: 1
|
|
58
|
-
});
|
|
59
|
-
const result = await controller.getAll({}, (0, _loggedusermock.buildMockUser)(), '');
|
|
60
|
-
expect(mockBoardService.getAll).toHaveBeenCalledWith('', {}, (0, _loggedusermock.buildMockUser)());
|
|
61
|
-
expect(result.data).toHaveLength(1);
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
describe('addMember', ()=>{
|
|
65
|
-
it('adds a member to the board and maps the response', async ()=>{
|
|
66
|
-
const user = (0, _loggedusermock.buildMockUser)();
|
|
67
|
-
mockBoardService.addMember.mockResolvedValue({
|
|
68
|
-
id: 'member-1',
|
|
69
|
-
boardId: 'board-uuid-1',
|
|
70
|
-
userId: 'user-2',
|
|
71
|
-
role: 'member'
|
|
72
|
-
});
|
|
73
|
-
const result = await controller.addMember({
|
|
74
|
-
boardId: 'board-uuid-1',
|
|
75
|
-
userId: 'user-2'
|
|
76
|
-
}, user);
|
|
77
|
-
expect(mockBoardService.addMember).toHaveBeenCalledWith({
|
|
78
|
-
boardId: 'board-uuid-1',
|
|
79
|
-
userId: 'user-2'
|
|
80
|
-
}, user);
|
|
81
|
-
expect(result.success).toBe(true);
|
|
82
|
-
expect(result.data).toEqual(expect.objectContaining({
|
|
83
|
-
userId: 'user-2'
|
|
84
|
-
}));
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
describe('removeMember', ()=>{
|
|
88
|
-
it('removes a member from the board', async ()=>{
|
|
89
|
-
mockBoardService.removeMember.mockResolvedValue(undefined);
|
|
90
|
-
const result = await controller.removeMember({
|
|
91
|
-
boardId: 'board-uuid-1',
|
|
92
|
-
userId: 'user-2'
|
|
93
|
-
});
|
|
94
|
-
expect(mockBoardService.removeMember).toHaveBeenCalledWith({
|
|
95
|
-
boardId: 'board-uuid-1',
|
|
96
|
-
userId: 'user-2'
|
|
97
|
-
});
|
|
98
|
-
expect(result.success).toBe(true);
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
describe('getMembers', ()=>{
|
|
102
|
-
it('returns all members for a board with a computed pagination meta', async ()=>{
|
|
103
|
-
mockBoardService.getMembers.mockResolvedValue([
|
|
104
|
-
{
|
|
105
|
-
id: 'member-1',
|
|
106
|
-
userId: 'user-2',
|
|
107
|
-
role: 'member'
|
|
108
|
-
}
|
|
109
|
-
]);
|
|
110
|
-
const result = await controller.getMembers({
|
|
111
|
-
boardId: 'board-uuid-1'
|
|
112
|
-
});
|
|
113
|
-
expect(mockBoardService.getMembers).toHaveBeenCalledWith('board-uuid-1');
|
|
114
|
-
expect(result.data).toHaveLength(1);
|
|
115
|
-
expect(result.meta).toEqual(expect.objectContaining({
|
|
116
|
-
total: 1,
|
|
117
|
-
count: 1
|
|
118
|
-
}));
|
|
119
|
-
});
|
|
120
|
-
it('returns an empty list with zeroed meta when the board has no members', async ()=>{
|
|
121
|
-
mockBoardService.getMembers.mockResolvedValue([]);
|
|
122
|
-
const result = await controller.getMembers({
|
|
123
|
-
boardId: 'board-uuid-1'
|
|
124
|
-
});
|
|
125
|
-
expect(result.data).toEqual([]);
|
|
126
|
-
expect(result.meta).toEqual(expect.objectContaining({
|
|
127
|
-
total: 0,
|
|
128
|
-
count: 0
|
|
129
|
-
}));
|
|
130
|
-
});
|
|
131
|
-
});
|
|
132
|
-
});
|