@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.
- package/README.md +245 -0
- package/cjs/config/index.js +19 -0
- package/cjs/config/message-keys.js +92 -0
- package/cjs/config/task-manager.constants.js +11 -0
- package/cjs/controllers/index.js +22 -0
- package/cjs/controllers/task-board.controller.js +219 -0
- package/cjs/controllers/task-comment.controller.js +103 -0
- package/cjs/controllers/task-label.controller.js +112 -0
- package/cjs/controllers/task-list.controller.js +158 -0
- package/cjs/controllers/task.controller.js +199 -0
- package/cjs/docs/index.js +18 -0
- package/cjs/docs/task-manager-swagger.config.js +43 -0
- package/cjs/dtos/index.js +22 -0
- package/cjs/dtos/task-board.dto.js +310 -0
- package/cjs/dtos/task-comment.dto.js +131 -0
- package/cjs/dtos/task-label.dto.js +120 -0
- package/cjs/dtos/task-list.dto.js +198 -0
- package/cjs/dtos/task.dto.js +367 -0
- package/cjs/entities/index.js +72 -0
- package/cjs/entities/task-activity.entity.js +98 -0
- package/cjs/entities/task-assignee.entity.js +67 -0
- package/cjs/entities/task-board-member.entity.js +94 -0
- package/cjs/entities/task-board-with-company.entity.js +57 -0
- package/cjs/entities/task-board.entity.js +88 -0
- package/cjs/entities/task-comment.entity.js +80 -0
- package/cjs/entities/task-label.entity.js +72 -0
- package/cjs/entities/task-list.entity.js +104 -0
- package/cjs/entities/task-task-label.entity.js +67 -0
- package/cjs/entities/task.entity.js +151 -0
- package/cjs/gateways/index.js +18 -0
- package/cjs/gateways/task-board.gateway.js +199 -0
- package/cjs/index.js +26 -0
- package/cjs/interfaces/index.js +19 -0
- package/cjs/interfaces/task-manager-module.interface.js +4 -0
- package/cjs/interfaces/task.interface.js +4 -0
- package/cjs/modules/index.js +18 -0
- package/cjs/modules/task-manager.module.js +131 -0
- package/cjs/services/index.js +25 -0
- package/cjs/services/task-activity.service.js +76 -0
- package/cjs/services/task-board.service.js +235 -0
- package/cjs/services/task-comment.service.js +103 -0
- package/cjs/services/task-label.service.js +97 -0
- package/cjs/services/task-list.service.js +115 -0
- package/cjs/services/task-manager-config.service.js +69 -0
- package/cjs/services/task-manager-datasource.provider.js +84 -0
- package/cjs/services/task.service.js +359 -0
- package/config/index.d.ts +2 -0
- package/config/message-keys.d.ts +65 -0
- package/config/task-manager.constants.d.ts +1 -0
- package/controllers/index.d.ts +5 -0
- package/controllers/task-board.controller.d.ts +27 -0
- package/controllers/task-comment.controller.d.ts +22 -0
- package/controllers/task-label.controller.d.ts +22 -0
- package/controllers/task-list.controller.d.ts +26 -0
- package/controllers/task.controller.d.ts +28 -0
- package/docs/index.d.ts +1 -0
- package/docs/task-manager-swagger.config.d.ts +2 -0
- package/dtos/index.d.ts +5 -0
- package/dtos/task-board.dto.d.ts +44 -0
- package/dtos/task-comment.dto.d.ts +16 -0
- package/dtos/task-label.dto.d.ts +16 -0
- package/dtos/task-list.dto.d.ts +26 -0
- package/dtos/task.dto.d.ts +48 -0
- package/entities/index.d.ts +22 -0
- package/entities/task-activity.entity.d.ts +9 -0
- package/entities/task-assignee.entity.d.ts +5 -0
- package/entities/task-board-member.entity.d.ts +12 -0
- package/entities/task-board-with-company.entity.d.ts +4 -0
- package/entities/task-board.entity.d.ts +8 -0
- package/entities/task-comment.entity.d.ts +7 -0
- package/entities/task-label.entity.d.ts +6 -0
- package/entities/task-list.entity.d.ts +9 -0
- package/entities/task-task-label.entity.d.ts +5 -0
- package/entities/task.entity.d.ts +23 -0
- package/fesm/config/index.js +2 -0
- package/fesm/config/message-keys.js +65 -0
- package/fesm/config/task-manager.constants.js +1 -0
- package/fesm/controllers/index.js +5 -0
- package/fesm/controllers/task-board.controller.js +209 -0
- package/fesm/controllers/task-comment.controller.js +93 -0
- package/fesm/controllers/task-label.controller.js +102 -0
- package/fesm/controllers/task-list.controller.js +148 -0
- package/fesm/controllers/task.controller.js +189 -0
- package/fesm/docs/index.js +1 -0
- package/fesm/docs/task-manager-swagger.config.js +33 -0
- package/fesm/dtos/index.js +5 -0
- package/fesm/dtos/task-board.dto.js +277 -0
- package/fesm/dtos/task-comment.dto.js +110 -0
- package/fesm/dtos/task-label.dto.js +99 -0
- package/fesm/dtos/task-list.dto.js +174 -0
- package/fesm/dtos/task.dto.js +337 -0
- package/fesm/entities/index.js +46 -0
- package/fesm/entities/task-activity.entity.js +88 -0
- package/fesm/entities/task-assignee.entity.js +57 -0
- package/fesm/entities/task-board-member.entity.js +76 -0
- package/fesm/entities/task-board-with-company.entity.js +47 -0
- package/fesm/entities/task-board.entity.js +78 -0
- package/fesm/entities/task-comment.entity.js +70 -0
- package/fesm/entities/task-label.entity.js +62 -0
- package/fesm/entities/task-list.entity.js +94 -0
- package/fesm/entities/task-task-label.entity.js +57 -0
- package/fesm/entities/task.entity.js +133 -0
- package/fesm/gateways/index.js +1 -0
- package/fesm/gateways/task-board.gateway.js +148 -0
- package/fesm/index.js +9 -0
- package/fesm/interfaces/index.js +2 -0
- package/fesm/interfaces/task-manager-module.interface.js +1 -0
- package/fesm/interfaces/task.interface.js +1 -0
- package/fesm/modules/index.js +1 -0
- package/fesm/modules/task-manager.module.js +121 -0
- package/fesm/services/index.js +8 -0
- package/fesm/services/task-activity.service.js +66 -0
- package/fesm/services/task-board.service.js +225 -0
- package/fesm/services/task-comment.service.js +93 -0
- package/fesm/services/task-label.service.js +87 -0
- package/fesm/services/task-list.service.js +105 -0
- package/fesm/services/task-manager-config.service.js +59 -0
- package/fesm/services/task-manager-datasource.provider.js +74 -0
- package/fesm/services/task.service.js +349 -0
- package/gateways/index.d.ts +1 -0
- package/gateways/task-board.gateway.d.ts +22 -0
- package/index.d.ts +9 -0
- package/interfaces/index.d.ts +2 -0
- package/interfaces/task-manager-module.interface.d.ts +19 -0
- package/interfaces/task.interface.d.ts +52 -0
- package/modules/index.d.ts +1 -0
- package/modules/task-manager.module.d.ts +8 -0
- package/package.json +91 -0
- package/services/index.d.ts +8 -0
- package/services/task-activity.service.d.ts +8 -0
- package/services/task-board.service.d.ts +32 -0
- package/services/task-comment.service.d.ts +18 -0
- package/services/task-label.service.d.ts +18 -0
- package/services/task-list.service.d.ts +19 -0
- package/services/task-manager-config.service.d.ts +12 -0
- package/services/task-manager-datasource.provider.d.ts +18 -0
- package/services/task.service.d.ts +44 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ApiService, HybridCache } from '@flusys/nestjs-shared/classes';
|
|
2
|
+
import { ILoggedUserInfo } from '@flusys/nestjs-shared/interfaces';
|
|
3
|
+
import { UtilsService } from '@flusys/nestjs-shared/modules';
|
|
4
|
+
import { SelectQueryBuilder } from 'typeorm';
|
|
5
|
+
import { CreateTaskListDto, ReorderTaskListsDto, UpdateTaskListDto } from '../dtos';
|
|
6
|
+
import { TaskList } from '../entities';
|
|
7
|
+
import { TaskManagerDataSourceProvider } from './task-manager-datasource.provider';
|
|
8
|
+
export declare class TaskListService extends ApiService<CreateTaskListDto, UpdateTaskListDto, TaskList, TaskList> {
|
|
9
|
+
protected cacheManager: HybridCache;
|
|
10
|
+
protected utilsService: UtilsService;
|
|
11
|
+
private readonly dataSourceProvider;
|
|
12
|
+
constructor(cacheManager: HybridCache, utilsService: UtilsService, dataSourceProvider: TaskManagerDataSourceProvider);
|
|
13
|
+
convertSingleDtoToEntity(dto: CreateTaskListDto | UpdateTaskListDto, _user: ILoggedUserInfo | null): Promise<TaskList>;
|
|
14
|
+
protected getFilterQuery(query: SelectQueryBuilder<TaskList>, filter: Record<string, unknown>, _user: ILoggedUserInfo | null): Promise<{
|
|
15
|
+
query: SelectQueryBuilder<TaskList>;
|
|
16
|
+
isRaw: boolean;
|
|
17
|
+
}>;
|
|
18
|
+
reorderLists(dto: ReorderTaskListsDto): Promise<void>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DatabaseMode } from '@flusys/nestjs-core';
|
|
2
|
+
import { IModuleConfigService } from '@flusys/nestjs-shared/interfaces';
|
|
3
|
+
import { TaskManagerModuleOptions } from '../interfaces';
|
|
4
|
+
export declare class TaskManagerConfigService implements IModuleConfigService {
|
|
5
|
+
private readonly options;
|
|
6
|
+
constructor(options: TaskManagerModuleOptions);
|
|
7
|
+
isCompanyFeatureEnabled(): boolean;
|
|
8
|
+
getDatabaseMode(): DatabaseMode;
|
|
9
|
+
isMultiTenant(): boolean;
|
|
10
|
+
getJwtSecret(): string | undefined;
|
|
11
|
+
getOptions(): TaskManagerModuleOptions;
|
|
12
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IDatabaseConfig, ITenantDatabaseConfig } from '@flusys/nestjs-core';
|
|
2
|
+
import { MultiTenantDataSourceService } from '@flusys/nestjs-shared/modules';
|
|
3
|
+
import { Request } from 'express';
|
|
4
|
+
import { DataSource } from 'typeorm';
|
|
5
|
+
import { TaskManagerConfigService } from './task-manager-config.service';
|
|
6
|
+
export declare class TaskManagerDataSourceProvider extends MultiTenantDataSourceService {
|
|
7
|
+
private readonly configService;
|
|
8
|
+
protected static readonly tenantConnections: Map<string, DataSource>;
|
|
9
|
+
protected static singleDataSource: DataSource | null;
|
|
10
|
+
protected static readonly tenantsRegistry: Map<string, ITenantDatabaseConfig>;
|
|
11
|
+
protected static initialized: boolean;
|
|
12
|
+
protected static readonly connectionLocks: Map<string, Promise<DataSource>>;
|
|
13
|
+
protected static singleConnectionLock: Promise<DataSource> | null;
|
|
14
|
+
constructor(configService: TaskManagerConfigService, request?: Request);
|
|
15
|
+
private static buildParentOptions;
|
|
16
|
+
getEnableCompanyFeatureForTenant(tenant?: ITenantDatabaseConfig): boolean;
|
|
17
|
+
protected createDataSourceFromConfig(config: IDatabaseConfig): Promise<DataSource>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ApiService, HybridCache } from '@flusys/nestjs-shared/classes';
|
|
2
|
+
import { FilterAndPaginationDto } from '@flusys/nestjs-shared/dtos';
|
|
3
|
+
import { ILoggedUserInfo } from '@flusys/nestjs-shared/interfaces';
|
|
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';
|
|
11
|
+
export declare class TaskService extends ApiService<CreateTaskDto, UpdateTaskDto, Task, Task> {
|
|
12
|
+
protected cacheManager: HybridCache;
|
|
13
|
+
protected utilsService: UtilsService;
|
|
14
|
+
private readonly dataSourceProvider;
|
|
15
|
+
private readonly boardService;
|
|
16
|
+
private readonly activityService;
|
|
17
|
+
private taskLabelRepository;
|
|
18
|
+
private fullLabelRepository;
|
|
19
|
+
private taskAssigneeRepository;
|
|
20
|
+
private pendingLabelIds;
|
|
21
|
+
private pendingAssigneeIds;
|
|
22
|
+
constructor(cacheManager: HybridCache, utilsService: UtilsService, dataSourceProvider: TaskManagerDataSourceProvider, boardService: TaskBoardService, activityService: TaskActivityService);
|
|
23
|
+
convertSingleDtoToEntity(dto: CreateTaskDto | UpdateTaskDto, user: ILoggedUserInfo | null): Promise<Task>;
|
|
24
|
+
protected afterInsertOperation(entities: Task[], user: ILoggedUserInfo | null, _qr: QueryRunner): Promise<void>;
|
|
25
|
+
protected afterUpdateOperation(entities: Task[], _user: ILoggedUserInfo | null, _qr: QueryRunner): Promise<void>;
|
|
26
|
+
protected getFilterQuery(query: SelectQueryBuilder<Task>, filter: Record<string, unknown>, _user: ILoggedUserInfo | null): Promise<{
|
|
27
|
+
query: SelectQueryBuilder<Task>;
|
|
28
|
+
isRaw: boolean;
|
|
29
|
+
}>;
|
|
30
|
+
getAll(search: string, filterAndPaginationDto: FilterAndPaginationDto, user: ILoggedUserInfo | null): Promise<{
|
|
31
|
+
data: Task[];
|
|
32
|
+
total: number;
|
|
33
|
+
}>;
|
|
34
|
+
moveTask(dto: MoveTaskDto, user: ILoggedUserInfo): Promise<Task>;
|
|
35
|
+
assignTask(dto: AssignTaskDto, user: ILoggedUserInfo): Promise<Task>;
|
|
36
|
+
private syncAssignees;
|
|
37
|
+
private syncLabels;
|
|
38
|
+
private loadLabelsForTasks;
|
|
39
|
+
private loadAssigneesForTasks;
|
|
40
|
+
private loadAssigneesForTask;
|
|
41
|
+
private ensureLabelRepository;
|
|
42
|
+
private ensureFullLabelRepository;
|
|
43
|
+
private ensureAssigneeRepository;
|
|
44
|
+
}
|