@bpinhosilva/agent-orchestrator 1.0.0-alpha.21 → 1.0.0-alpha.23
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/CHANGELOG.md +16 -0
- package/README.md +198 -28
- package/dist/agents/agents.controller.js +5 -0
- package/dist/agents/agents.controller.js.map +1 -1
- package/dist/agents/dto/agent-request.dto.js +2 -1
- package/dist/agents/dto/agent-request.dto.js.map +1 -1
- package/dist/agents/dto/create-agent.dto.js +6 -1
- package/dist/agents/dto/create-agent.dto.js.map +1 -1
- package/dist/app.module.js +5 -0
- package/dist/app.module.js.map +1 -1
- package/dist/auth/auth.controller.d.ts +6 -1
- package/dist/auth/auth.controller.js +23 -7
- package/dist/auth/auth.controller.js.map +1 -1
- package/dist/auth/auth.service.d.ts +1 -0
- package/dist/auth/decorators/current-user.decorator.d.ts +1 -0
- package/dist/auth/decorators/current-user.decorator.js +9 -0
- package/dist/auth/decorators/current-user.decorator.js.map +1 -0
- package/dist/auth/decorators/roles.decorator.d.ts +3 -0
- package/dist/auth/decorators/roles.decorator.js +8 -0
- package/dist/auth/decorators/roles.decorator.js.map +1 -0
- package/dist/auth/entities/refresh-token.entity.js +2 -1
- package/dist/auth/entities/refresh-token.entity.js.map +1 -1
- package/dist/auth/guards/roles.guard.d.ts +7 -0
- package/dist/auth/guards/roles.guard.js +52 -0
- package/dist/auth/guards/roles.guard.js.map +1 -0
- package/dist/common/storage.service.d.ts +2 -0
- package/dist/common/storage.service.js +27 -0
- package/dist/common/storage.service.js.map +1 -1
- package/dist/config/env.validation.js +2 -0
- package/dist/config/env.validation.js.map +1 -1
- package/dist/config/typeorm.js +1 -1
- package/dist/config/typeorm.js.map +1 -1
- package/dist/main.js +16 -13
- package/dist/main.js.map +1 -1
- package/dist/migrations/1775103764402-AddRbacAndProjectMembership.d.ts +6 -0
- package/dist/migrations/1775103764402-AddRbacAndProjectMembership.js +124 -0
- package/dist/migrations/1775103764402-AddRbacAndProjectMembership.js.map +1 -0
- package/dist/models/models.controller.js +5 -0
- package/dist/models/models.controller.js.map +1 -1
- package/dist/projects/dto/add-member.dto.d.ts +5 -0
- package/dist/projects/dto/add-member.dto.js +33 -0
- package/dist/projects/dto/add-member.dto.js.map +1 -0
- package/dist/projects/entities/project-member.entity.d.ts +13 -0
- package/dist/projects/entities/project-member.entity.js +61 -0
- package/dist/projects/entities/project-member.entity.js.map +1 -0
- package/dist/projects/entities/project.entity.d.ts +2 -0
- package/dist/projects/entities/project.entity.js +9 -2
- package/dist/projects/entities/project.entity.js.map +1 -1
- package/dist/projects/projects.controller.d.ts +10 -5
- package/dist/projects/projects.controller.js +64 -15
- package/dist/projects/projects.controller.js.map +1 -1
- package/dist/projects/projects.module.js +5 -1
- package/dist/projects/projects.module.js.map +1 -1
- package/dist/projects/projects.service.d.ts +14 -6
- package/dist/projects/projects.service.js +125 -12
- package/dist/projects/projects.service.js.map +1 -1
- package/dist/providers/providers.controller.js +5 -0
- package/dist/providers/providers.controller.js.map +1 -1
- package/dist/tasks/entities/recurrent-task-exec.entity.js +1 -0
- package/dist/tasks/entities/recurrent-task-exec.entity.js.map +1 -1
- package/dist/tasks/entities/recurrent-task.entity.d.ts +2 -0
- package/dist/tasks/entities/recurrent-task.entity.js +14 -2
- package/dist/tasks/entities/recurrent-task.entity.js.map +1 -1
- package/dist/tasks/recurrent-tasks.controller.d.ts +9 -6
- package/dist/tasks/recurrent-tasks.controller.js +51 -30
- package/dist/tasks/recurrent-tasks.controller.js.map +1 -1
- package/dist/tasks/recurrent-tasks.service.d.ts +5 -5
- package/dist/tasks/recurrent-tasks.service.js +24 -11
- package/dist/tasks/recurrent-tasks.service.js.map +1 -1
- package/dist/tasks/task-scheduler.service.d.ts +4 -1
- package/dist/tasks/task-scheduler.service.js +15 -2
- package/dist/tasks/task-scheduler.service.js.map +1 -1
- package/dist/tasks/tasks.controller.d.ts +11 -8
- package/dist/tasks/tasks.controller.js +43 -23
- package/dist/tasks/tasks.controller.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/ui/assets/AgentFleet-CC0h_Ar0.js +1 -0
- package/dist/ui/assets/AgentFleet-CC0h_Ar0.js.map +1 -0
- package/dist/ui/assets/ConfirmDialog-mRH8i_xK.js +10 -0
- package/dist/ui/assets/ConfirmDialog-mRH8i_xK.js.map +1 -0
- package/dist/ui/assets/InitialsAvatar-0mIRaTK8.js +1 -0
- package/dist/ui/assets/InitialsAvatar-0mIRaTK8.js.map +1 -0
- package/dist/ui/assets/MarkdownField-flCuU7w3.js +1 -0
- package/dist/ui/assets/MarkdownField-flCuU7w3.js.map +1 -0
- package/dist/ui/assets/ProjectDetail-CY-VSV2D.js +1 -0
- package/dist/ui/assets/ProjectDetail-CY-VSV2D.js.map +1 -0
- package/dist/ui/assets/Providers-C9_lxOG1.js +1 -0
- package/dist/ui/assets/Providers-C9_lxOG1.js.map +1 -0
- package/dist/ui/assets/Scheduler-Du2cIGfB.js +1 -0
- package/dist/ui/assets/Scheduler-Du2cIGfB.js.map +1 -0
- package/dist/ui/assets/TaskDetail-BdQJCVo3.js +1 -0
- package/dist/ui/assets/TaskDetail-BdQJCVo3.js.map +1 -0
- package/dist/ui/assets/TaskManager-CWDh69pf.js +8 -0
- package/dist/ui/assets/TaskManager-CWDh69pf.js.map +1 -0
- package/dist/ui/assets/{activity-CYFCUKYz.js → activity-CIlCK2jL.js} +1 -1
- package/dist/ui/assets/activity-CIlCK2jL.js.map +1 -0
- package/dist/ui/assets/{brain-D1LPqnhA.js → brain-_N041Xks.js} +1 -1
- package/dist/ui/assets/brain-_N041Xks.js.map +1 -0
- package/dist/ui/assets/check-DgCfni6J.js +1 -0
- package/dist/ui/assets/check-DgCfni6J.js.map +1 -0
- package/dist/ui/assets/clock-C0d1RzP_.js +1 -0
- package/dist/ui/assets/clock-C0d1RzP_.js.map +1 -0
- package/dist/ui/assets/cn-i-5ItZGU.js +1 -0
- package/dist/ui/assets/cn-i-5ItZGU.js.map +1 -0
- package/dist/ui/assets/{eye-DSoNYXlu.js → eye-RB18-re_.js} +1 -1
- package/dist/ui/assets/eye-RB18-re_.js.map +1 -0
- package/dist/ui/assets/index-CCsHBe__.css +1 -0
- package/dist/ui/assets/index-yzhzS93F.js +2 -0
- package/dist/ui/assets/index-yzhzS93F.js.map +1 -0
- package/dist/ui/assets/{layers-BQR0gbW3.js → layers-D5ECV506.js} +1 -1
- package/dist/ui/assets/layers-D5ECV506.js.map +1 -0
- package/dist/ui/assets/providers-BMRq_pkm.js +1 -0
- package/dist/ui/assets/providers-BMRq_pkm.js.map +1 -0
- package/dist/ui/assets/rolldown-runtime-COnpUsM8.js +1 -0
- package/dist/ui/assets/{send-Cgv_rLex.js → send-BA7-sXzg.js} +1 -1
- package/dist/ui/assets/send-BA7-sXzg.js.map +1 -0
- package/dist/ui/assets/{shield-check-02qtz3Au.js → shield-check-D7JIluse.js} +1 -1
- package/dist/ui/assets/shield-check-D7JIluse.js.map +1 -0
- package/dist/ui/assets/{sparkles-cO3r5TCU.js → sparkles-CCXaTT3H.js} +1 -1
- package/dist/ui/assets/sparkles-CCXaTT3H.js.map +1 -0
- package/dist/ui/assets/{tasks-BZ0wO0e9.js → tasks-DEHCZk48.js} +1 -1
- package/dist/ui/assets/tasks-DEHCZk48.js.map +1 -0
- package/dist/ui/assets/{trash-2-7e8TY3SJ.js → trash-2-BNP4kC5c.js} +1 -1
- package/dist/ui/assets/trash-2-BNP4kC5c.js.map +1 -0
- package/dist/ui/assets/{trending-up-Dh3I3BnW.js → trending-up-DBTQIgW8.js} +1 -1
- package/dist/ui/assets/trending-up-DBTQIgW8.js.map +1 -0
- package/dist/ui/assets/useNotification-DK-pV16c.js +6 -0
- package/dist/ui/assets/useNotification-DK-pV16c.js.map +1 -0
- package/dist/ui/assets/{user-sikuVJBW.js → user-Cp55HCCi.js} +1 -1
- package/dist/ui/assets/user-Cp55HCCi.js.map +1 -0
- package/dist/ui/assets/vendor-dnd-CxfOy4-Z.js +5 -0
- package/dist/ui/assets/vendor-dnd-CxfOy4-Z.js.map +1 -0
- package/dist/ui/assets/vendor-forms-HC2wK6B9.js +39 -0
- package/dist/ui/assets/vendor-forms-HC2wK6B9.js.map +1 -0
- package/dist/ui/assets/vendor-markdown-Dl_1qnne.js +29 -0
- package/dist/ui/assets/vendor-markdown-Dl_1qnne.js.map +1 -0
- package/dist/ui/assets/vendor-motion-CkXYvnuI.js +9 -0
- package/dist/ui/assets/vendor-motion-CkXYvnuI.js.map +1 -0
- package/dist/ui/assets/vendor-query-DQlZ8h7P.js +1 -0
- package/dist/ui/assets/vendor-query-DQlZ8h7P.js.map +1 -0
- package/dist/ui/assets/vendor-react-CiDbU5Ns.js +11 -0
- package/dist/ui/assets/vendor-react-CiDbU5Ns.js.map +1 -0
- package/dist/ui/assets/{zap-CFqyHdPJ.js → zap-D1sST66b.js} +1 -1
- package/dist/ui/assets/zap-D1sST66b.js.map +1 -0
- package/dist/ui/index.html +9 -4
- package/dist/users/entities/user.entity.d.ts +5 -0
- package/dist/users/entities/user.entity.js +10 -1
- package/dist/users/entities/user.entity.js.map +1 -1
- package/dist/users/users.controller.d.ts +0 -2
- package/dist/users/users.controller.js +3 -12
- package/dist/users/users.controller.js.map +1 -1
- package/dist/users/users.service.js +9 -1
- package/dist/users/users.service.js.map +1 -1
- package/package.json +3 -2
- package/dist/ui/assets/AgentFleet-CQIXvils.js +0 -6
- package/dist/ui/assets/ConfirmDialog-nQ8F6FEz.js +0 -1
- package/dist/ui/assets/MarkdownField-BvkVHJZh.js +0 -29
- package/dist/ui/assets/ProjectDetail-CZ-tFtQo.js +0 -1
- package/dist/ui/assets/Providers-C61nXOPZ.js +0 -1
- package/dist/ui/assets/Scheduler-BwWeFfsh.js +0 -1
- package/dist/ui/assets/TaskDetail-BKQ3Vgnu.js +0 -1
- package/dist/ui/assets/TaskManager-CCOnj4Gq.js +0 -16
- package/dist/ui/assets/check-BZcW41Vk.js +0 -1
- package/dist/ui/assets/clock-vIUNSAVw.js +0 -1
- package/dist/ui/assets/file-text-DyBkf5PF.js +0 -1
- package/dist/ui/assets/index-BX3YIi49.css +0 -1
- package/dist/ui/assets/index-Ctbpa_Ei.js +0 -20
- package/dist/ui/assets/providers-C3SQm75E.js +0 -1
- package/dist/ui/assets/useNotification-nXJIHD_q.js +0 -6
|
@@ -13,6 +13,7 @@ exports.Project = exports.ProjectStatus = void 0;
|
|
|
13
13
|
const openapi = require("@nestjs/swagger");
|
|
14
14
|
const typeorm_1 = require("typeorm");
|
|
15
15
|
const agent_entity_1 = require("../../agents/entities/agent.entity");
|
|
16
|
+
const project_member_entity_1 = require("./project-member.entity");
|
|
16
17
|
var ProjectStatus;
|
|
17
18
|
(function (ProjectStatus) {
|
|
18
19
|
ProjectStatus["PLANNING"] = "planning";
|
|
@@ -27,10 +28,11 @@ let Project = class Project {
|
|
|
27
28
|
description;
|
|
28
29
|
status;
|
|
29
30
|
ownerAgent;
|
|
31
|
+
members;
|
|
30
32
|
createdAt;
|
|
31
33
|
updatedAt;
|
|
32
34
|
static _OPENAPI_METADATA_FACTORY() {
|
|
33
|
-
return { id: { required: true, type: () => String }, title: { required: true, type: () => String }, description: { required: true, type: () => String }, status: { required: true, enum: require("./project.entity").ProjectStatus }, ownerAgent: { required: true, type: () => require("../../agents/entities/agent.entity").AgentEntity, nullable: true }, createdAt: { required: true, type: () => Date }, updatedAt: { required: true, type: () => Date } };
|
|
35
|
+
return { id: { required: true, type: () => String }, title: { required: true, type: () => String }, description: { required: true, type: () => String }, status: { required: true, enum: require("./project.entity").ProjectStatus }, ownerAgent: { required: true, type: () => require("../../agents/entities/agent.entity").AgentEntity, nullable: true }, members: { required: true, type: () => [require("./project-member.entity").ProjectMember] }, createdAt: { required: true, type: () => Date }, updatedAt: { required: true, type: () => Date } };
|
|
34
36
|
}
|
|
35
37
|
};
|
|
36
38
|
exports.Project = Project;
|
|
@@ -63,6 +65,10 @@ __decorate([
|
|
|
63
65
|
}),
|
|
64
66
|
__metadata("design:type", Object)
|
|
65
67
|
], Project.prototype, "ownerAgent", void 0);
|
|
68
|
+
__decorate([
|
|
69
|
+
(0, typeorm_1.OneToMany)(() => project_member_entity_1.ProjectMember, (member) => member.project),
|
|
70
|
+
__metadata("design:type", Array)
|
|
71
|
+
], Project.prototype, "members", void 0);
|
|
66
72
|
__decorate([
|
|
67
73
|
(0, typeorm_1.CreateDateColumn)(),
|
|
68
74
|
__metadata("design:type", Date)
|
|
@@ -72,6 +78,7 @@ __decorate([
|
|
|
72
78
|
__metadata("design:type", Date)
|
|
73
79
|
], Project.prototype, "updatedAt", void 0);
|
|
74
80
|
exports.Project = Project = __decorate([
|
|
75
|
-
(0, typeorm_1.Entity)('projects')
|
|
81
|
+
(0, typeorm_1.Entity)('projects'),
|
|
82
|
+
(0, typeorm_1.Index)(['status'])
|
|
76
83
|
], Project);
|
|
77
84
|
//# sourceMappingURL=project.entity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.entity.js","sourceRoot":"","sources":["../../../src/projects/entities/project.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"project.entity.js","sourceRoot":"","sources":["../../../src/projects/entities/project.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qCASiB;AACjB,qEAAiE;AACjE,mEAAwD;AAExD,IAAY,aAMX;AAND,WAAY,aAAa;IACvB,sCAAqB,CAAA;IACrB,kCAAiB,CAAA;IACjB,oCAAmB,CAAA;IACnB,wCAAuB,CAAA;IACvB,sCAAqB,CAAA;AACvB,CAAC,EANW,aAAa,6BAAb,aAAa,QAMxB;AAIM,IAAM,OAAO,GAAb,MAAM,OAAO;IAElB,EAAE,CAAS;IAGX,KAAK,CAAS;IAGd,WAAW,CAAS;IAOpB,MAAM,CAAgB;IAQtB,UAAU,CAAqB;IAG/B,OAAO,CAAkB;IAGzB,SAAS,CAAO;IAGhB,SAAS,CAAO;;;;CACjB,CAAA;AAjCY,0BAAO;AAElB;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;mCACpB;AAGX;IADC,IAAA,gBAAM,GAAE;;sCACK;AAGd;IADC,IAAA,gBAAM,EAAC,MAAM,CAAC;;4CACK;AAOpB;IALC,IAAA,gBAAM,EAAC;QACN,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,aAAa,CAAC,QAAQ;KAChC,CAAC;;uCACoB;AAQtB;IANC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,0BAAW,EAAE;QAC5B,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,UAAU;KACrB,CAAC;;2CAC6B;AAG/B;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qCAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;;wCAClC;AAGzB;IADC,IAAA,0BAAgB,GAAE;8BACR,IAAI;0CAAC;AAGhB;IADC,IAAA,0BAAgB,GAAE;8BACR,IAAI;0CAAC;kBAhCL,OAAO;IAFnB,IAAA,gBAAM,EAAC,UAAU,CAAC;IAClB,IAAA,eAAK,EAAC,CAAC,QAAQ,CAAC,CAAC;GACL,OAAO,CAiCnB"}
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import { ProjectsService } from './projects.service';
|
|
2
2
|
import { CreateProjectDto } from './dto/create-project.dto';
|
|
3
3
|
import { UpdateProjectDto } from './dto/update-project.dto';
|
|
4
|
+
import { AddMemberDto } from './dto/add-member.dto';
|
|
5
|
+
import { User } from '../users/entities/user.entity';
|
|
4
6
|
export declare class ProjectsController {
|
|
5
7
|
private readonly projectsService;
|
|
6
8
|
constructor(projectsService: ProjectsService);
|
|
7
|
-
create(createProjectDto: CreateProjectDto): Promise<import("./entities/project.entity").Project>;
|
|
8
|
-
findAll(): Promise<import("./entities/project.entity").Project[]>;
|
|
9
|
-
findOne(id: string): Promise<import("./entities/project.entity").Project>;
|
|
10
|
-
update(id: string, updateProjectDto: UpdateProjectDto): Promise<import("./entities/project.entity").Project>;
|
|
11
|
-
remove(id: string): Promise<void>;
|
|
9
|
+
create(createProjectDto: CreateProjectDto, user: User): Promise<import("./entities/project.entity").Project>;
|
|
10
|
+
findAll(user: User): Promise<import("./entities/project.entity").Project[]>;
|
|
11
|
+
findOne(id: string, user: User): Promise<import("./entities/project.entity").Project>;
|
|
12
|
+
update(id: string, updateProjectDto: UpdateProjectDto, user: User): Promise<import("./entities/project.entity").Project>;
|
|
13
|
+
remove(id: string, user: User): Promise<void>;
|
|
14
|
+
addMember(id: string, addMemberDto: AddMemberDto, user: User): Promise<import("./entities/project-member.entity").ProjectMember>;
|
|
15
|
+
getMembers(id: string, user: User): Promise<import("./entities/project-member.entity").ProjectMember[]>;
|
|
16
|
+
removeMember(id: string, userId: string, user: User): Promise<void>;
|
|
12
17
|
}
|
|
@@ -18,25 +18,37 @@ const common_1 = require("@nestjs/common");
|
|
|
18
18
|
const projects_service_1 = require("./projects.service");
|
|
19
19
|
const create_project_dto_1 = require("./dto/create-project.dto");
|
|
20
20
|
const update_project_dto_1 = require("./dto/update-project.dto");
|
|
21
|
+
const add_member_dto_1 = require("./dto/add-member.dto");
|
|
22
|
+
const current_user_decorator_1 = require("../auth/decorators/current-user.decorator");
|
|
23
|
+
const user_entity_1 = require("../users/entities/user.entity");
|
|
21
24
|
let ProjectsController = class ProjectsController {
|
|
22
25
|
projectsService;
|
|
23
26
|
constructor(projectsService) {
|
|
24
27
|
this.projectsService = projectsService;
|
|
25
28
|
}
|
|
26
|
-
create(createProjectDto) {
|
|
27
|
-
return this.projectsService.create(createProjectDto);
|
|
29
|
+
create(createProjectDto, user) {
|
|
30
|
+
return this.projectsService.create(createProjectDto, user);
|
|
28
31
|
}
|
|
29
|
-
findAll() {
|
|
30
|
-
return this.projectsService.findAll();
|
|
32
|
+
findAll(user) {
|
|
33
|
+
return this.projectsService.findAll(user);
|
|
31
34
|
}
|
|
32
|
-
findOne(id) {
|
|
33
|
-
return this.projectsService.findOne(id);
|
|
35
|
+
findOne(id, user) {
|
|
36
|
+
return this.projectsService.findOne(id, user);
|
|
34
37
|
}
|
|
35
|
-
update(id, updateProjectDto) {
|
|
36
|
-
return this.projectsService.update(id, updateProjectDto);
|
|
38
|
+
update(id, updateProjectDto, user) {
|
|
39
|
+
return this.projectsService.update(id, updateProjectDto, user);
|
|
37
40
|
}
|
|
38
|
-
remove(id) {
|
|
39
|
-
return this.projectsService.remove(id);
|
|
41
|
+
remove(id, user) {
|
|
42
|
+
return this.projectsService.remove(id, user);
|
|
43
|
+
}
|
|
44
|
+
addMember(id, addMemberDto, user) {
|
|
45
|
+
return this.projectsService.addMember(id, addMemberDto, user);
|
|
46
|
+
}
|
|
47
|
+
getMembers(id, user) {
|
|
48
|
+
return this.projectsService.getMembers(id, user);
|
|
49
|
+
}
|
|
50
|
+
removeMember(id, userId, user) {
|
|
51
|
+
return this.projectsService.removeMember(id, userId, user);
|
|
40
52
|
}
|
|
41
53
|
};
|
|
42
54
|
exports.ProjectsController = ProjectsController;
|
|
@@ -44,23 +56,27 @@ __decorate([
|
|
|
44
56
|
(0, common_1.Post)(),
|
|
45
57
|
openapi.ApiResponse({ status: 201, type: require("./entities/project.entity").Project }),
|
|
46
58
|
__param(0, (0, common_1.Body)()),
|
|
59
|
+
__param(1, (0, current_user_decorator_1.CurrentUser)()),
|
|
47
60
|
__metadata("design:type", Function),
|
|
48
|
-
__metadata("design:paramtypes", [create_project_dto_1.CreateProjectDto
|
|
61
|
+
__metadata("design:paramtypes", [create_project_dto_1.CreateProjectDto,
|
|
62
|
+
user_entity_1.User]),
|
|
49
63
|
__metadata("design:returntype", void 0)
|
|
50
64
|
], ProjectsController.prototype, "create", null);
|
|
51
65
|
__decorate([
|
|
52
66
|
(0, common_1.Get)(),
|
|
53
67
|
openapi.ApiResponse({ status: 200, type: [require("./entities/project.entity").Project] }),
|
|
68
|
+
__param(0, (0, current_user_decorator_1.CurrentUser)()),
|
|
54
69
|
__metadata("design:type", Function),
|
|
55
|
-
__metadata("design:paramtypes", []),
|
|
70
|
+
__metadata("design:paramtypes", [user_entity_1.User]),
|
|
56
71
|
__metadata("design:returntype", void 0)
|
|
57
72
|
], ProjectsController.prototype, "findAll", null);
|
|
58
73
|
__decorate([
|
|
59
74
|
(0, common_1.Get)(':id'),
|
|
60
75
|
openapi.ApiResponse({ status: 200, type: require("./entities/project.entity").Project }),
|
|
61
76
|
__param(0, (0, common_1.Param)('id')),
|
|
77
|
+
__param(1, (0, current_user_decorator_1.CurrentUser)()),
|
|
62
78
|
__metadata("design:type", Function),
|
|
63
|
-
__metadata("design:paramtypes", [String]),
|
|
79
|
+
__metadata("design:paramtypes", [String, user_entity_1.User]),
|
|
64
80
|
__metadata("design:returntype", void 0)
|
|
65
81
|
], ProjectsController.prototype, "findOne", null);
|
|
66
82
|
__decorate([
|
|
@@ -68,18 +84,51 @@ __decorate([
|
|
|
68
84
|
openapi.ApiResponse({ status: 200, type: require("./entities/project.entity").Project }),
|
|
69
85
|
__param(0, (0, common_1.Param)('id')),
|
|
70
86
|
__param(1, (0, common_1.Body)()),
|
|
87
|
+
__param(2, (0, current_user_decorator_1.CurrentUser)()),
|
|
71
88
|
__metadata("design:type", Function),
|
|
72
|
-
__metadata("design:paramtypes", [String, update_project_dto_1.UpdateProjectDto
|
|
89
|
+
__metadata("design:paramtypes", [String, update_project_dto_1.UpdateProjectDto,
|
|
90
|
+
user_entity_1.User]),
|
|
73
91
|
__metadata("design:returntype", void 0)
|
|
74
92
|
], ProjectsController.prototype, "update", null);
|
|
75
93
|
__decorate([
|
|
76
94
|
(0, common_1.Delete)(':id'),
|
|
77
95
|
openapi.ApiResponse({ status: 200 }),
|
|
78
96
|
__param(0, (0, common_1.Param)('id')),
|
|
97
|
+
__param(1, (0, current_user_decorator_1.CurrentUser)()),
|
|
79
98
|
__metadata("design:type", Function),
|
|
80
|
-
__metadata("design:paramtypes", [String]),
|
|
99
|
+
__metadata("design:paramtypes", [String, user_entity_1.User]),
|
|
81
100
|
__metadata("design:returntype", void 0)
|
|
82
101
|
], ProjectsController.prototype, "remove", null);
|
|
102
|
+
__decorate([
|
|
103
|
+
(0, common_1.Post)(':id/members'),
|
|
104
|
+
openapi.ApiResponse({ status: 201, type: require("./entities/project-member.entity").ProjectMember }),
|
|
105
|
+
__param(0, (0, common_1.Param)('id')),
|
|
106
|
+
__param(1, (0, common_1.Body)()),
|
|
107
|
+
__param(2, (0, current_user_decorator_1.CurrentUser)()),
|
|
108
|
+
__metadata("design:type", Function),
|
|
109
|
+
__metadata("design:paramtypes", [String, add_member_dto_1.AddMemberDto,
|
|
110
|
+
user_entity_1.User]),
|
|
111
|
+
__metadata("design:returntype", void 0)
|
|
112
|
+
], ProjectsController.prototype, "addMember", null);
|
|
113
|
+
__decorate([
|
|
114
|
+
(0, common_1.Get)(':id/members'),
|
|
115
|
+
openapi.ApiResponse({ status: 200, type: [require("./entities/project-member.entity").ProjectMember] }),
|
|
116
|
+
__param(0, (0, common_1.Param)('id')),
|
|
117
|
+
__param(1, (0, current_user_decorator_1.CurrentUser)()),
|
|
118
|
+
__metadata("design:type", Function),
|
|
119
|
+
__metadata("design:paramtypes", [String, user_entity_1.User]),
|
|
120
|
+
__metadata("design:returntype", void 0)
|
|
121
|
+
], ProjectsController.prototype, "getMembers", null);
|
|
122
|
+
__decorate([
|
|
123
|
+
(0, common_1.Delete)(':id/members/:userId'),
|
|
124
|
+
openapi.ApiResponse({ status: 200 }),
|
|
125
|
+
__param(0, (0, common_1.Param)('id')),
|
|
126
|
+
__param(1, (0, common_1.Param)('userId')),
|
|
127
|
+
__param(2, (0, current_user_decorator_1.CurrentUser)()),
|
|
128
|
+
__metadata("design:type", Function),
|
|
129
|
+
__metadata("design:paramtypes", [String, String, user_entity_1.User]),
|
|
130
|
+
__metadata("design:returntype", void 0)
|
|
131
|
+
], ProjectsController.prototype, "removeMember", null);
|
|
83
132
|
exports.ProjectsController = ProjectsController = __decorate([
|
|
84
133
|
(0, common_1.Controller)('projects'),
|
|
85
134
|
__metadata("design:paramtypes", [projects_service_1.ProjectsService])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.controller.js","sourceRoot":"","sources":["../../src/projects/projects.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAQwB;AACxB,yDAAqD;AACrD,iEAA4D;AAC5D,iEAA4D;
|
|
1
|
+
{"version":3,"file":"projects.controller.js","sourceRoot":"","sources":["../../src/projects/projects.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,13 +12,17 @@ const typeorm_1 = require("@nestjs/typeorm");
|
|
|
12
12
|
const projects_service_1 = require("./projects.service");
|
|
13
13
|
const projects_controller_1 = require("./projects.controller");
|
|
14
14
|
const project_entity_1 = require("./entities/project.entity");
|
|
15
|
+
const project_member_entity_1 = require("./entities/project-member.entity");
|
|
15
16
|
const agent_entity_1 = require("../agents/entities/agent.entity");
|
|
17
|
+
const user_entity_1 = require("../users/entities/user.entity");
|
|
16
18
|
let ProjectsModule = class ProjectsModule {
|
|
17
19
|
};
|
|
18
20
|
exports.ProjectsModule = ProjectsModule;
|
|
19
21
|
exports.ProjectsModule = ProjectsModule = __decorate([
|
|
20
22
|
(0, common_1.Module)({
|
|
21
|
-
imports: [
|
|
23
|
+
imports: [
|
|
24
|
+
typeorm_1.TypeOrmModule.forFeature([project_entity_1.Project, project_member_entity_1.ProjectMember, agent_entity_1.AgentEntity, user_entity_1.User]),
|
|
25
|
+
],
|
|
22
26
|
controllers: [projects_controller_1.ProjectsController],
|
|
23
27
|
providers: [projects_service_1.ProjectsService],
|
|
24
28
|
exports: [projects_service_1.ProjectsService],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.module.js","sourceRoot":"","sources":["../../src/projects/projects.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,6CAAgD;AAChD,yDAAqD;AACrD,+DAA2D;AAC3D,8DAAoD;AACpD,kEAA8D;
|
|
1
|
+
{"version":3,"file":"projects.module.js","sourceRoot":"","sources":["../../src/projects/projects.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,6CAAgD;AAChD,yDAAqD;AACrD,+DAA2D;AAC3D,8DAAoD;AACpD,4EAAiE;AACjE,kEAA8D;AAC9D,+DAAqD;AAU9C,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,wCAAc;yBAAd,cAAc;IAR1B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC,CAAC,wBAAO,EAAE,qCAAa,EAAE,0BAAW,EAAE,kBAAI,CAAC,CAAC;SACtE;QACD,WAAW,EAAE,CAAC,wCAAkB,CAAC;QACjC,SAAS,EAAE,CAAC,kCAAe,CAAC;QAC5B,OAAO,EAAE,CAAC,kCAAe,CAAC;KAC3B,CAAC;GACW,cAAc,CAAG"}
|
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
import { Repository } from 'typeorm';
|
|
2
2
|
import { CreateProjectDto } from './dto/create-project.dto';
|
|
3
3
|
import { UpdateProjectDto } from './dto/update-project.dto';
|
|
4
|
+
import { AddMemberDto } from './dto/add-member.dto';
|
|
4
5
|
import { Project } from './entities/project.entity';
|
|
6
|
+
import { ProjectMember } from './entities/project-member.entity';
|
|
7
|
+
import { User } from '../users/entities/user.entity';
|
|
5
8
|
export declare class ProjectsService {
|
|
6
9
|
private readonly projectsRepository;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
private readonly memberRepository;
|
|
11
|
+
private readonly userRepository;
|
|
12
|
+
constructor(projectsRepository: Repository<Project>, memberRepository: Repository<ProjectMember>, userRepository: Repository<User>);
|
|
13
|
+
create(createProjectDto: CreateProjectDto, user: User): Promise<Project>;
|
|
14
|
+
findAll(user: User): Promise<Project[]>;
|
|
15
|
+
findOne(id: string, user: User): Promise<Project>;
|
|
16
|
+
update(id: string, updateProjectDto: UpdateProjectDto, user: User): Promise<Project>;
|
|
17
|
+
remove(id: string, user: User): Promise<void>;
|
|
18
|
+
addMember(projectId: string, addMemberDto: AddMemberDto, user: User): Promise<ProjectMember>;
|
|
19
|
+
removeMember(projectId: string, targetUserId: string, user: User): Promise<void>;
|
|
20
|
+
getMembers(projectId: string, user: User): Promise<ProjectMember[]>;
|
|
13
21
|
}
|
|
@@ -17,12 +17,18 @@ const common_1 = require("@nestjs/common");
|
|
|
17
17
|
const typeorm_1 = require("@nestjs/typeorm");
|
|
18
18
|
const typeorm_2 = require("typeorm");
|
|
19
19
|
const project_entity_1 = require("./entities/project.entity");
|
|
20
|
+
const project_member_entity_1 = require("./entities/project-member.entity");
|
|
21
|
+
const user_entity_1 = require("../users/entities/user.entity");
|
|
20
22
|
let ProjectsService = class ProjectsService {
|
|
21
23
|
projectsRepository;
|
|
22
|
-
|
|
24
|
+
memberRepository;
|
|
25
|
+
userRepository;
|
|
26
|
+
constructor(projectsRepository, memberRepository, userRepository) {
|
|
23
27
|
this.projectsRepository = projectsRepository;
|
|
28
|
+
this.memberRepository = memberRepository;
|
|
29
|
+
this.userRepository = userRepository;
|
|
24
30
|
}
|
|
25
|
-
async create(createProjectDto) {
|
|
31
|
+
async create(createProjectDto, user) {
|
|
26
32
|
return this.projectsRepository.manager.transaction(async (manager) => {
|
|
27
33
|
const project = manager.create(project_entity_1.Project, {
|
|
28
34
|
title: createProjectDto.title,
|
|
@@ -32,25 +38,58 @@ let ProjectsService = class ProjectsService {
|
|
|
32
38
|
? { id: createProjectDto.ownerAgentId }
|
|
33
39
|
: null,
|
|
34
40
|
});
|
|
35
|
-
|
|
41
|
+
const savedProject = await manager.save(project);
|
|
42
|
+
const membership = manager.create(project_member_entity_1.ProjectMember, {
|
|
43
|
+
project: savedProject,
|
|
44
|
+
user: { id: user.id },
|
|
45
|
+
role: project_member_entity_1.ProjectMemberRole.OWNER,
|
|
46
|
+
});
|
|
47
|
+
await manager.save(membership);
|
|
48
|
+
return savedProject;
|
|
36
49
|
});
|
|
37
50
|
}
|
|
38
|
-
async findAll() {
|
|
39
|
-
|
|
51
|
+
async findAll(user) {
|
|
52
|
+
if (user.role === user_entity_1.UserRole.ADMIN) {
|
|
53
|
+
return this.projectsRepository.find();
|
|
54
|
+
}
|
|
55
|
+
return this.projectsRepository
|
|
56
|
+
.createQueryBuilder('project')
|
|
57
|
+
.innerJoin('project.members', 'pm', 'pm.userId = :userId', {
|
|
58
|
+
userId: user.id,
|
|
59
|
+
})
|
|
60
|
+
.getMany();
|
|
40
61
|
}
|
|
41
|
-
async findOne(id) {
|
|
42
|
-
const project = await this.projectsRepository.findOne({
|
|
62
|
+
async findOne(id, user) {
|
|
63
|
+
const project = await this.projectsRepository.findOne({
|
|
64
|
+
where: { id },
|
|
65
|
+
relations: ['members', 'members.user'],
|
|
66
|
+
});
|
|
43
67
|
if (!project) {
|
|
44
68
|
throw new common_1.NotFoundException(`Project with ID ${id} not found`);
|
|
45
69
|
}
|
|
70
|
+
if (user.role !== user_entity_1.UserRole.ADMIN) {
|
|
71
|
+
const isMember = project.members.some((m) => m.user.id === user.id);
|
|
72
|
+
if (!isMember) {
|
|
73
|
+
throw new common_1.ForbiddenException('Access denied');
|
|
74
|
+
}
|
|
75
|
+
}
|
|
46
76
|
return project;
|
|
47
77
|
}
|
|
48
|
-
async update(id, updateProjectDto) {
|
|
78
|
+
async update(id, updateProjectDto, user) {
|
|
49
79
|
return this.projectsRepository.manager.transaction(async (manager) => {
|
|
50
|
-
const project = await manager.findOne(project_entity_1.Project, {
|
|
80
|
+
const project = await manager.findOne(project_entity_1.Project, {
|
|
81
|
+
where: { id },
|
|
82
|
+
relations: ['members', 'members.user'],
|
|
83
|
+
});
|
|
51
84
|
if (!project) {
|
|
52
85
|
throw new common_1.NotFoundException(`Project with ID ${id} not found`);
|
|
53
86
|
}
|
|
87
|
+
if (user.role !== user_entity_1.UserRole.ADMIN) {
|
|
88
|
+
const isMember = project.members.some((m) => m.user.id === user.id);
|
|
89
|
+
if (!isMember) {
|
|
90
|
+
throw new common_1.ForbiddenException('Access denied');
|
|
91
|
+
}
|
|
92
|
+
}
|
|
54
93
|
if (updateProjectDto.title !== undefined)
|
|
55
94
|
project.title = updateProjectDto.title;
|
|
56
95
|
if (updateProjectDto.description !== undefined)
|
|
@@ -65,15 +104,89 @@ let ProjectsService = class ProjectsService {
|
|
|
65
104
|
return manager.save(project);
|
|
66
105
|
});
|
|
67
106
|
}
|
|
68
|
-
async remove(id) {
|
|
69
|
-
const project = await this.findOne(
|
|
107
|
+
async remove(id, user) {
|
|
108
|
+
const project = await this.projectsRepository.findOne({
|
|
109
|
+
where: { id },
|
|
110
|
+
relations: ['members', 'members.user'],
|
|
111
|
+
});
|
|
112
|
+
if (!project) {
|
|
113
|
+
throw new common_1.NotFoundException(`Project with ID ${id} not found`);
|
|
114
|
+
}
|
|
115
|
+
if (user.role !== user_entity_1.UserRole.ADMIN) {
|
|
116
|
+
const ownership = project.members.find((m) => m.user.id === user.id && m.role === project_member_entity_1.ProjectMemberRole.OWNER);
|
|
117
|
+
if (!ownership) {
|
|
118
|
+
throw new common_1.ForbiddenException('Only the project owner can delete this project');
|
|
119
|
+
}
|
|
120
|
+
}
|
|
70
121
|
await this.projectsRepository.remove(project);
|
|
71
122
|
}
|
|
123
|
+
async addMember(projectId, addMemberDto, user) {
|
|
124
|
+
const project = await this.projectsRepository.findOne({
|
|
125
|
+
where: { id: projectId },
|
|
126
|
+
relations: ['members', 'members.user'],
|
|
127
|
+
});
|
|
128
|
+
if (!project) {
|
|
129
|
+
throw new common_1.NotFoundException(`Project with ID ${projectId} not found`);
|
|
130
|
+
}
|
|
131
|
+
if (user.role !== user_entity_1.UserRole.ADMIN) {
|
|
132
|
+
const ownership = project.members.find((m) => m.user.id === user.id && m.role === project_member_entity_1.ProjectMemberRole.OWNER);
|
|
133
|
+
if (!ownership) {
|
|
134
|
+
throw new common_1.ForbiddenException('Only the project owner can manage members');
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
const existing = project.members.find((m) => m.user.id === addMemberDto.userId);
|
|
138
|
+
if (existing) {
|
|
139
|
+
throw new common_1.ConflictException('User is already a member of this project');
|
|
140
|
+
}
|
|
141
|
+
const targetUser = await this.userRepository.findOne({
|
|
142
|
+
where: { id: addMemberDto.userId },
|
|
143
|
+
});
|
|
144
|
+
if (!targetUser) {
|
|
145
|
+
throw new common_1.NotFoundException(`User with ID ${addMemberDto.userId} not found`);
|
|
146
|
+
}
|
|
147
|
+
const membership = this.memberRepository.create({
|
|
148
|
+
project: { id: projectId },
|
|
149
|
+
user: targetUser,
|
|
150
|
+
role: addMemberDto.role ?? project_member_entity_1.ProjectMemberRole.MEMBER,
|
|
151
|
+
});
|
|
152
|
+
return this.memberRepository.save(membership);
|
|
153
|
+
}
|
|
154
|
+
async removeMember(projectId, targetUserId, user) {
|
|
155
|
+
const project = await this.projectsRepository.findOne({
|
|
156
|
+
where: { id: projectId },
|
|
157
|
+
relations: ['members', 'members.user'],
|
|
158
|
+
});
|
|
159
|
+
if (!project) {
|
|
160
|
+
throw new common_1.NotFoundException(`Project with ID ${projectId} not found`);
|
|
161
|
+
}
|
|
162
|
+
if (user.role !== user_entity_1.UserRole.ADMIN) {
|
|
163
|
+
const ownership = project.members.find((m) => m.user.id === user.id && m.role === project_member_entity_1.ProjectMemberRole.OWNER);
|
|
164
|
+
if (!ownership) {
|
|
165
|
+
throw new common_1.ForbiddenException('Only the project owner can manage members');
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
const membership = project.members.find((m) => m.user.id === targetUserId);
|
|
169
|
+
if (!membership) {
|
|
170
|
+
throw new common_1.NotFoundException('User is not a member of this project');
|
|
171
|
+
}
|
|
172
|
+
if (membership.role === project_member_entity_1.ProjectMemberRole.OWNER) {
|
|
173
|
+
throw new common_1.ForbiddenException('Cannot remove the project owner');
|
|
174
|
+
}
|
|
175
|
+
await this.memberRepository.remove(membership);
|
|
176
|
+
}
|
|
177
|
+
async getMembers(projectId, user) {
|
|
178
|
+
const project = await this.findOne(projectId, user);
|
|
179
|
+
return project.members;
|
|
180
|
+
}
|
|
72
181
|
};
|
|
73
182
|
exports.ProjectsService = ProjectsService;
|
|
74
183
|
exports.ProjectsService = ProjectsService = __decorate([
|
|
75
184
|
(0, common_1.Injectable)(),
|
|
76
185
|
__param(0, (0, typeorm_1.InjectRepository)(project_entity_1.Project)),
|
|
77
|
-
|
|
186
|
+
__param(1, (0, typeorm_1.InjectRepository)(project_member_entity_1.ProjectMember)),
|
|
187
|
+
__param(2, (0, typeorm_1.InjectRepository)(user_entity_1.User)),
|
|
188
|
+
__metadata("design:paramtypes", [typeorm_2.Repository,
|
|
189
|
+
typeorm_2.Repository,
|
|
190
|
+
typeorm_2.Repository])
|
|
78
191
|
], ProjectsService);
|
|
79
192
|
//# sourceMappingURL=projects.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.service.js","sourceRoot":"","sources":["../../src/projects/projects.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"projects.service.js","sourceRoot":"","sources":["../../src/projects/projects.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,8 @@ const common_1 = require("@nestjs/common");
|
|
|
18
18
|
const providers_service_1 = require("./providers.service");
|
|
19
19
|
const create_provider_dto_1 = require("./dto/create-provider.dto");
|
|
20
20
|
const update_provider_dto_1 = require("./dto/update-provider.dto");
|
|
21
|
+
const roles_decorator_1 = require("../auth/decorators/roles.decorator");
|
|
22
|
+
const user_entity_1 = require("../users/entities/user.entity");
|
|
21
23
|
let ProvidersController = class ProvidersController {
|
|
22
24
|
providersService;
|
|
23
25
|
constructor(providersService) {
|
|
@@ -44,6 +46,7 @@ let ProvidersController = class ProvidersController {
|
|
|
44
46
|
};
|
|
45
47
|
exports.ProvidersController = ProvidersController;
|
|
46
48
|
__decorate([
|
|
49
|
+
(0, roles_decorator_1.Roles)(user_entity_1.UserRole.ADMIN),
|
|
47
50
|
(0, common_1.Post)(),
|
|
48
51
|
openapi.ApiResponse({ status: 201, type: require("./entities/provider.entity").Provider }),
|
|
49
52
|
__param(0, (0, common_1.Body)()),
|
|
@@ -75,6 +78,7 @@ __decorate([
|
|
|
75
78
|
__metadata("design:returntype", void 0)
|
|
76
79
|
], ProvidersController.prototype, "findModels", null);
|
|
77
80
|
__decorate([
|
|
81
|
+
(0, roles_decorator_1.Roles)(user_entity_1.UserRole.ADMIN),
|
|
78
82
|
(0, common_1.Patch)(':id'),
|
|
79
83
|
openapi.ApiResponse({ status: 200, type: require("./entities/provider.entity").Provider }),
|
|
80
84
|
__param(0, (0, common_1.Param)('id')),
|
|
@@ -84,6 +88,7 @@ __decorate([
|
|
|
84
88
|
__metadata("design:returntype", void 0)
|
|
85
89
|
], ProvidersController.prototype, "update", null);
|
|
86
90
|
__decorate([
|
|
91
|
+
(0, roles_decorator_1.Roles)(user_entity_1.UserRole.ADMIN),
|
|
87
92
|
(0, common_1.Delete)(':id'),
|
|
88
93
|
openapi.ApiResponse({ status: 200 }),
|
|
89
94
|
__param(0, (0, common_1.Param)('id')),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.controller.js","sourceRoot":"","sources":["../../src/providers/providers.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAQwB;AACxB,2DAAuD;AACvD,mEAA8D;AAC9D,mEAA8D;
|
|
1
|
+
{"version":3,"file":"providers.controller.js","sourceRoot":"","sources":["../../src/providers/providers.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAQwB;AACxB,2DAAuD;AACvD,mEAA8D;AAC9D,mEAA8D;AAC9D,wEAA2D;AAC3D,+DAAyD;AAGlD,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IACD;IAA7B,YAA6B,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAAG,CAAC;IAInE,MAAM,CAAS,iBAAoC;QACjD,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;IAGD,OAAO;QACL,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;IACzC,CAAC;IAGD,OAAO,CAAc,EAAU;QAC7B,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;IAGD,UAAU,CAAc,EAAU;QAChC,OAAO,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IAID,MAAM,CACS,EAAU,EACf,iBAAoC;QAE5C,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAC7D,CAAC;IAID,MAAM,CAAc,EAAU;QAC5B,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF,CAAA;AAtCY,kDAAmB;AAK9B;IAFC,IAAA,uBAAK,EAAC,sBAAQ,CAAC,KAAK,CAAC;IACrB,IAAA,aAAI,GAAE;;IACC,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAoB,uCAAiB;;iDAElD;AAGD;IADC,IAAA,YAAG,GAAE;;;;;kDAGL;AAGD;IADC,IAAA,YAAG,EAAC,KAAK,CAAC;;IACF,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;kDAEnB;AAGD;IADC,IAAA,YAAG,EAAC,YAAY,CAAC;;IACN,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;qDAEtB;AAID;IAFC,IAAA,uBAAK,EAAC,sBAAQ,CAAC,KAAK,CAAC;IACrB,IAAA,cAAK,EAAC,KAAK,CAAC;;IAEV,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IACX,WAAA,IAAA,aAAI,GAAE,CAAA;;6CAAoB,uCAAiB;;iDAG7C;AAID;IAFC,IAAA,uBAAK,EAAC,sBAAQ,CAAC,KAAK,CAAC;IACrB,IAAA,eAAM,EAAC,KAAK,CAAC;;IACN,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;iDAElB;8BArCU,mBAAmB;IAD/B,IAAA,mBAAU,EAAC,WAAW,CAAC;qCAEyB,oCAAgB;GADpD,mBAAmB,CAsC/B"}
|
|
@@ -38,6 +38,7 @@ __decorate([
|
|
|
38
38
|
__metadata("design:type", String)
|
|
39
39
|
], RecurrentTaskExec.prototype, "id", void 0);
|
|
40
40
|
__decorate([
|
|
41
|
+
(0, typeorm_1.Index)(),
|
|
41
42
|
(0, typeorm_1.ManyToOne)(() => recurrent_task_entity_1.RecurrentTask, (rt) => rt.executions, {
|
|
42
43
|
nullable: false,
|
|
43
44
|
onDelete: 'CASCADE',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recurrent-task-exec.entity.js","sourceRoot":"","sources":["../../../src/tasks/entities/recurrent-task-exec.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"recurrent-task-exec.entity.js","sourceRoot":"","sources":["../../../src/tasks/entities/recurrent-task-exec.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qCAQiB;AACjB,mEAAwD;AAExD,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;IACnB,mCAAqB,CAAA;AACvB,CAAC,EALW,UAAU,0BAAV,UAAU,QAKrB;AAGM,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAE5B,EAAE,CAAS;IAOX,aAAa,CAAgB;IAO7B,MAAM,CAAa;IAGnB,MAAM,CAAS;IAGf,SAAS,CAAS;IAGlB,SAAS,CAAO;IAGhB,SAAS,CAAO;;;;CACjB,CAAA;AA7BY,8CAAiB;AAE5B;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;6CACpB;AAOX;IALC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qCAAa,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE;QACrD,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,SAAS;KACpB,CAAC;8BACa,qCAAa;wDAAC;AAO7B;IALC,IAAA,gBAAM,EAAC;QACN,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,UAAU,CAAC,OAAO;KAC5B,CAAC;;iDACiB;AAGnB;IADC,IAAA,gBAAM,EAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACpB;AAGf;IADC,IAAA,gBAAM,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDAChB;AAGlB;IADC,IAAA,0BAAgB,GAAE;8BACR,IAAI;oDAAC;AAGhB;IADC,IAAA,0BAAgB,GAAE;8BACR,IAAI;oDAAC;4BA5BL,iBAAiB;IAD7B,IAAA,gBAAM,EAAC,sBAAsB,CAAC;GAClB,iBAAiB,CA6B7B"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AgentEntity } from '../../agents/entities/agent.entity';
|
|
2
2
|
import { RecurrentTaskExec } from './recurrent-task-exec.entity';
|
|
3
3
|
import { TaskPriority } from './task.entity';
|
|
4
|
+
import { Project } from '../../projects/entities/project.entity';
|
|
4
5
|
export declare enum RecurrentTaskStatus {
|
|
5
6
|
ACTIVE = "active",
|
|
6
7
|
PAUSED = "paused",
|
|
@@ -14,6 +15,7 @@ export declare class RecurrentTask {
|
|
|
14
15
|
priority: TaskPriority;
|
|
15
16
|
cronExpression: string;
|
|
16
17
|
assignee: AgentEntity;
|
|
18
|
+
project: Project | null;
|
|
17
19
|
executions: RecurrentTaskExec[];
|
|
18
20
|
createdAt: Date;
|
|
19
21
|
updatedAt: Date;
|
|
@@ -15,6 +15,7 @@ const typeorm_1 = require("typeorm");
|
|
|
15
15
|
const agent_entity_1 = require("../../agents/entities/agent.entity");
|
|
16
16
|
const recurrent_task_exec_entity_1 = require("./recurrent-task-exec.entity");
|
|
17
17
|
const task_entity_1 = require("./task.entity");
|
|
18
|
+
const project_entity_1 = require("../../projects/entities/project.entity");
|
|
18
19
|
var RecurrentTaskStatus;
|
|
19
20
|
(function (RecurrentTaskStatus) {
|
|
20
21
|
RecurrentTaskStatus["ACTIVE"] = "active";
|
|
@@ -29,11 +30,12 @@ let RecurrentTask = class RecurrentTask {
|
|
|
29
30
|
priority;
|
|
30
31
|
cronExpression;
|
|
31
32
|
assignee;
|
|
33
|
+
project;
|
|
32
34
|
executions;
|
|
33
35
|
createdAt;
|
|
34
36
|
updatedAt;
|
|
35
37
|
static _OPENAPI_METADATA_FACTORY() {
|
|
36
|
-
return { id: { required: true, type: () => String }, title: { required: true, type: () => String }, description: { required: true, type: () => String }, status: { required: true, enum: require("./recurrent-task.entity").RecurrentTaskStatus }, priority: { required: true, enum: require("./task.entity").TaskPriority }, cronExpression: { required: true, type: () => String }, assignee: { required: true, type: () => require("../../agents/entities/agent.entity").AgentEntity }, executions: { required: true, type: () => [require("./recurrent-task-exec.entity").RecurrentTaskExec] }, createdAt: { required: true, type: () => Date }, updatedAt: { required: true, type: () => Date } };
|
|
38
|
+
return { id: { required: true, type: () => String }, title: { required: true, type: () => String }, description: { required: true, type: () => String }, status: { required: true, enum: require("./recurrent-task.entity").RecurrentTaskStatus }, priority: { required: true, enum: require("./task.entity").TaskPriority }, cronExpression: { required: true, type: () => String }, assignee: { required: true, type: () => require("../../agents/entities/agent.entity").AgentEntity }, project: { required: true, type: () => require("../../projects/entities/project.entity").Project, nullable: true }, executions: { required: true, type: () => [require("./recurrent-task-exec.entity").RecurrentTaskExec] }, createdAt: { required: true, type: () => Date }, updatedAt: { required: true, type: () => Date } };
|
|
37
39
|
}
|
|
38
40
|
};
|
|
39
41
|
exports.RecurrentTask = RecurrentTask;
|
|
@@ -77,6 +79,15 @@ __decorate([
|
|
|
77
79
|
}),
|
|
78
80
|
__metadata("design:type", agent_entity_1.AgentEntity)
|
|
79
81
|
], RecurrentTask.prototype, "assignee", void 0);
|
|
82
|
+
__decorate([
|
|
83
|
+
(0, typeorm_1.Index)(),
|
|
84
|
+
(0, typeorm_1.ManyToOne)(() => project_entity_1.Project, {
|
|
85
|
+
nullable: true,
|
|
86
|
+
eager: false,
|
|
87
|
+
onDelete: 'CASCADE',
|
|
88
|
+
}),
|
|
89
|
+
__metadata("design:type", Object)
|
|
90
|
+
], RecurrentTask.prototype, "project", void 0);
|
|
80
91
|
__decorate([
|
|
81
92
|
(0, typeorm_1.OneToMany)(() => recurrent_task_exec_entity_1.RecurrentTaskExec, (exec) => exec.recurrentTask),
|
|
82
93
|
__metadata("design:type", Array)
|
|
@@ -90,6 +101,7 @@ __decorate([
|
|
|
90
101
|
__metadata("design:type", Date)
|
|
91
102
|
], RecurrentTask.prototype, "updatedAt", void 0);
|
|
92
103
|
exports.RecurrentTask = RecurrentTask = __decorate([
|
|
93
|
-
(0, typeorm_1.Entity)('recurrent_tasks')
|
|
104
|
+
(0, typeorm_1.Entity)('recurrent_tasks'),
|
|
105
|
+
(0, typeorm_1.Index)(['status'])
|
|
94
106
|
], RecurrentTask);
|
|
95
107
|
//# sourceMappingURL=recurrent-task.entity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recurrent-task.entity.js","sourceRoot":"","sources":["../../../src/tasks/entities/recurrent-task.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"recurrent-task.entity.js","sourceRoot":"","sources":["../../../src/tasks/entities/recurrent-task.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qCASiB;AACjB,qEAAiE;AACjE,6EAAiE;AACjE,+CAA6C;AAC7C,2EAAiE;AAEjE,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,wCAAiB,CAAA;IACjB,wCAAiB,CAAA;IACjB,sCAAe,CAAA;AACjB,CAAC,EAJW,mBAAmB,mCAAnB,mBAAmB,QAI9B;AAIM,IAAM,aAAa,GAAnB,MAAM,aAAa;IAExB,EAAE,CAAS;IAGX,KAAK,CAAS;IAGd,WAAW,CAAS;IAOpB,MAAM,CAAsB;IAO5B,QAAQ,CAAe;IAGvB,cAAc,CAAS;IAOvB,QAAQ,CAAc;IAQtB,OAAO,CAAiB;IAGxB,UAAU,CAAsB;IAGhC,SAAS,CAAO;IAGhB,SAAS,CAAO;;;;CACjB,CAAA;AAlDY,sCAAa;AAExB;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;yCACpB;AAGX;IADC,IAAA,gBAAM,GAAE;;4CACK;AAGd;IADC,IAAA,gBAAM,EAAC,MAAM,CAAC;;kDACK;AAOpB;IALC,IAAA,gBAAM,EAAC;QACN,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,mBAAmB,CAAC,MAAM;KACpC,CAAC;;6CAC0B;AAO5B;IALC,IAAA,gBAAM,EAAC;QACN,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,0BAAY;QAClB,OAAO,EAAE,0BAAY,CAAC,MAAM;KAC7B,CAAC;;+CACqB;AAGvB;IADC,IAAA,gBAAM,GAAE;;qDACc;AAOvB;IALC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,0BAAW,EAAE;QAC5B,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,SAAS;KACpB,CAAC;8BACQ,0BAAW;+CAAC;AAQtB;IANC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,wBAAO,EAAE;QACxB,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,SAAS;KACpB,CAAC;;8CACsB;AAGxB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,8CAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC;;iDACjC;AAGhC;IADC,IAAA,0BAAgB,GAAE;8BACR,IAAI;gDAAC;AAGhB;IADC,IAAA,0BAAgB,GAAE;8BACR,IAAI;gDAAC;wBAjDL,aAAa;IAFzB,IAAA,gBAAM,EAAC,iBAAiB,CAAC;IACzB,IAAA,eAAK,EAAC,CAAC,QAAQ,CAAC,CAAC;GACL,aAAa,CAkDzB"}
|