Class: ProjectsService
Defined in: backends/web-backend/src/projects/projects.service.ts:120
Constructors
Constructor
new ProjectsService(
projectModel,userModel,teamModel,eventBus,analytics?):ProjectsService
Defined in: backends/web-backend/src/projects/projects.service.ts:121
Parameters
projectModel
Model<Document<unknown, { }, Project, { }, { }> & Project & object & object>
userModel
Model<Document<unknown, { }, User, { }, { }> & User & object & object>
teamModel
Model<Document<unknown, { }, Team, { }, { }> & Team & object & object>
eventBus
analytics?
Returns
ProjectsService
Methods
createProject()
createProject(
payload,acting):Promise<{id:string;mode:"internal-events"|"internal-hazards"|"external-hazards"|"full-scope";modeLabel:string;myRole:"viewer"|"editor"|"owner";name:string;ownerFullName:string;ownerInitials:string;ownerUsername:string;pageLayout:"modern"|"legacy";pinned:boolean;progress:number;sharedTeams:object[];sharedUsers:object[];state:"active"|"baseline"|"archived";status:Record<string,"baseline"|"in-progress"|"not-started"|"na">;updatedAt:string;version:number; }>
Defined in: backends/web-backend/src/projects/projects.service.ts:129
Parameters
payload
mode
"internal-events" | "internal-hazards" | "external-hazards" | "full-scope" = RiskModeSchema
name
string = ...
pageLayout?
"modern" | "legacy" = ...
acting
ActingUser
Returns
Promise<{ id: string; mode: "internal-events" | "internal-hazards" | "external-hazards" | "full-scope"; modeLabel: string; myRole: "viewer" | "editor" | "owner"; name: string; ownerFullName: string; ownerInitials: string; ownerUsername: string; pageLayout: "modern" | "legacy"; pinned: boolean; progress: number; sharedTeams: object[]; sharedUsers: object[]; state: "active" | "baseline" | "archived"; status: Record<string, "baseline" | "in-progress" | "not-started" | "na">; updatedAt: string; version: number; }>
deleteProject()
deleteProject(
id,acting):Promise<void>
Defined in: backends/web-backend/src/projects/projects.service.ts:240
Parameters
id
string
acting
ActingUser
Returns
Promise<void>
duplicateProject()
duplicateProject(
id,acting):Promise<{id:string;mode:"internal-events"|"internal-hazards"|"external-hazards"|"full-scope";modeLabel:string;myRole:"viewer"|"editor"|"owner";name:string;ownerFullName:string;ownerInitials:string;ownerUsername:string;pageLayout:"modern"|"legacy";pinned:boolean;progress:number;sharedTeams:object[];sharedUsers:object[];state:"active"|"baseline"|"archived";status:Record<string,"baseline"|"in-progress"|"not-started"|"na">;updatedAt:string;version:number; }>
Defined in: backends/web-backend/src/projects/projects.service.ts:223
Parameters
id
string
acting
ActingUser
Returns
Promise<{ id: string; mode: "internal-events" | "internal-hazards" | "external-hazards" | "full-scope"; modeLabel: string; myRole: "viewer" | "editor" | "owner"; name: string; ownerFullName: string; ownerInitials: string; ownerUsername: string; pageLayout: "modern" | "legacy"; pinned: boolean; progress: number; sharedTeams: object[]; sharedUsers: object[]; state: "active" | "baseline" | "archived"; status: Record<string, "baseline" | "in-progress" | "not-started" | "na">; updatedAt: string; version: number; }>
getOwnedProjects()
getOwnedProjects(
acting):Promise<{projects:object[]; }>
Defined in: backends/web-backend/src/projects/projects.service.ts:168
Parameters
acting
ActingUser
Returns
Promise<{ projects: object[]; }>
getProject()
getProject(
id,acting):Promise<{id:string;mode:"internal-events"|"internal-hazards"|"external-hazards"|"full-scope";modeLabel:string;myRole:"viewer"|"editor"|"owner";name:string;ownerFullName:string;ownerInitials:string;ownerUsername:string;pageLayout:"modern"|"legacy";pinned:boolean;progress:number;sharedTeams:object[];sharedUsers:object[];state:"active"|"baseline"|"archived";status:Record<string,"baseline"|"in-progress"|"not-started"|"na">;updatedAt:string;version:number; }>
Defined in: backends/web-backend/src/projects/projects.service.ts:193
Parameters
id
string
acting
ActingUser
Returns
Promise<{ id: string; mode: "internal-events" | "internal-hazards" | "external-hazards" | "full-scope"; modeLabel: string; myRole: "viewer" | "editor" | "owner"; name: string; ownerFullName: string; ownerInitials: string; ownerUsername: string; pageLayout: "modern" | "legacy"; pinned: boolean; progress: number; sharedTeams: object[]; sharedUsers: object[]; state: "active" | "baseline" | "archived"; status: Record<string, "baseline" | "in-progress" | "not-started" | "na">; updatedAt: string; version: number; }>
getRecentProject()
getRecentProject(
acting):Promise<{project: {id:string;mode:"internal-events"|"internal-hazards"|"external-hazards"|"full-scope";modeLabel:string;myRole:"viewer"|"editor"|"owner";name:string;ownerFullName:string;ownerInitials:string;ownerUsername:string;pageLayout:"modern"|"legacy";pinned:boolean;progress:number;sharedTeams:object[];sharedUsers:object[];state:"active"|"baseline"|"archived";status:Record<string,"baseline"|"in-progress"|"not-started"|"na">;updatedAt:string;version:number; } |null; }>
Defined in: backends/web-backend/src/projects/projects.service.ts:159
Parameters
acting
ActingUser
Returns
Promise<{ project: { id: string; mode: "internal-events" | "internal-hazards" | "external-hazards" | "full-scope"; modeLabel: string; myRole: "viewer" | "editor" | "owner"; name: string; ownerFullName: string; ownerInitials: string; ownerUsername: string; pageLayout: "modern" | "legacy"; pinned: boolean; progress: number; sharedTeams: object[]; sharedUsers: object[]; state: "active" | "baseline" | "archived"; status: Record<string, "baseline" | "in-progress" | "not-started" | "na">; updatedAt: string; version: number; } | null; }>
getSharedProjects()
getSharedProjects(
acting):Promise<{projects:object[]; }>
Defined in: backends/web-backend/src/projects/projects.service.ts:177
Parameters
acting
ActingUser
Returns
Promise<{ projects: object[]; }>
resolveAccess()
resolveAccess(
id,acting):Promise<{doc:Document<unknown, { },Project, { }, { }> &Project&object&object;role:"viewer"|"editor"|"owner"; }>
Defined in: backends/web-backend/src/projects/projects.service.ts:203
Parameters
id
string
acting
ActingUser
Returns
Promise<{ doc: Document<unknown, { }, Project, { }, { }> & Project & object & object; role: "viewer" | "editor" | "owner"; }>
shareWithTeam()
shareWithTeam(
id,teamId,role,acting):Promise<{id:string;mode:"internal-events"|"internal-hazards"|"external-hazards"|"full-scope";modeLabel:string;myRole:"viewer"|"editor"|"owner";name:string;ownerFullName:string;ownerInitials:string;ownerUsername:string;pageLayout:"modern"|"legacy";pinned:boolean;progress:number;sharedTeams:object[];sharedUsers:object[];state:"active"|"baseline"|"archived";status:Record<string,"baseline"|"in-progress"|"not-started"|"na">;updatedAt:string;version:number; }>
Defined in: backends/web-backend/src/projects/projects.service.ts:247
Parameters
id
string
teamId
string
role
"viewer" | "editor"
acting
ActingUser
Returns
Promise<{ id: string; mode: "internal-events" | "internal-hazards" | "external-hazards" | "full-scope"; modeLabel: string; myRole: "viewer" | "editor" | "owner"; name: string; ownerFullName: string; ownerInitials: string; ownerUsername: string; pageLayout: "modern" | "legacy"; pinned: boolean; progress: number; sharedTeams: object[]; sharedUsers: object[]; state: "active" | "baseline" | "archived"; status: Record<string, "baseline" | "in-progress" | "not-started" | "na">; updatedAt: string; version: number; }>
shareWithUser()
shareWithUser(
id,identifier,role,acting):Promise<{id:string;mode:"internal-events"|"internal-hazards"|"external-hazards"|"full-scope";modeLabel:string;myRole:"viewer"|"editor"|"owner";name:string;ownerFullName:string;ownerInitials:string;ownerUsername:string;pageLayout:"modern"|"legacy";pinned:boolean;progress:number;sharedTeams:object[];sharedUsers:object[];state:"active"|"baseline"|"archived";status:Record<string,"baseline"|"in-progress"|"not-started"|"na">;updatedAt:string;version:number; }>
Defined in: backends/web-backend/src/projects/projects.service.ts:298
Parameters
id
string
identifier
string
role
"viewer" | "editor"
acting
ActingUser
Returns
Promise<{ id: string; mode: "internal-events" | "internal-hazards" | "external-hazards" | "full-scope"; modeLabel: string; myRole: "viewer" | "editor" | "owner"; name: string; ownerFullName: string; ownerInitials: string; ownerUsername: string; pageLayout: "modern" | "legacy"; pinned: boolean; progress: number; sharedTeams: object[]; sharedUsers: object[]; state: "active" | "baseline" | "archived"; status: Record<string, "baseline" | "in-progress" | "not-started" | "na">; updatedAt: string; version: number; }>
unshareFromTeam()
unshareFromTeam(
id,teamId,acting):Promise<void>
Defined in: backends/web-backend/src/projects/projects.service.ts:270
Parameters
id
string
teamId
string
acting
ActingUser
Returns
Promise<void>
unshareFromUser()
unshareFromUser(
id,username,acting):Promise<void>
Defined in: backends/web-backend/src/projects/projects.service.ts:321
Parameters
id
string
username
string
acting
ActingUser
Returns
Promise<void>
updateProject()
updateProject(
id,payload,acting):Promise<{id:string;mode:"internal-events"|"internal-hazards"|"external-hazards"|"full-scope";modeLabel:string;myRole:"viewer"|"editor"|"owner";name:string;ownerFullName:string;ownerInitials:string;ownerUsername:string;pageLayout:"modern"|"legacy";pinned:boolean;progress:number;sharedTeams:object[];sharedUsers:object[];state:"active"|"baseline"|"archived";status:Record<string,"baseline"|"in-progress"|"not-started"|"na">;updatedAt:string;version:number; }>
Defined in: backends/web-backend/src/projects/projects.service.ts:213
Parameters
id
string
payload
name?
string = ...
pageLayout?
"modern" | "legacy" = ...
pinned?
boolean = ...
state?
"active" | "baseline" | "archived" = ...
acting
ActingUser
Returns
Promise<{ id: string; mode: "internal-events" | "internal-hazards" | "external-hazards" | "full-scope"; modeLabel: string; myRole: "viewer" | "editor" | "owner"; name: string; ownerFullName: string; ownerInitials: string; ownerUsername: string; pageLayout: "modern" | "legacy"; pinned: boolean; progress: number; sharedTeams: object[]; sharedUsers: object[]; state: "active" | "baseline" | "archived"; status: Record<string, "baseline" | "in-progress" | "not-started" | "na">; updatedAt: string; version: number; }>
updateTeamShareRole()
updateTeamShareRole(
id,teamId,role,acting):Promise<{id:string;mode:"internal-events"|"internal-hazards"|"external-hazards"|"full-scope";modeLabel:string;myRole:"viewer"|"editor"|"owner";name:string;ownerFullName:string;ownerInitials:string;ownerUsername:string;pageLayout:"modern"|"legacy";pinned:boolean;progress:number;sharedTeams:object[];sharedUsers:object[];state:"active"|"baseline"|"archived";status:Record<string,"baseline"|"in-progress"|"not-started"|"na">;updatedAt:string;version:number; }>
Defined in: backends/web-backend/src/projects/projects.service.ts:288
Parameters
id
string
teamId
string
role
"viewer" | "editor"
acting
ActingUser
Returns
Promise<{ id: string; mode: "internal-events" | "internal-hazards" | "external-hazards" | "full-scope"; modeLabel: string; myRole: "viewer" | "editor" | "owner"; name: string; ownerFullName: string; ownerInitials: string; ownerUsername: string; pageLayout: "modern" | "legacy"; pinned: boolean; progress: number; sharedTeams: object[]; sharedUsers: object[]; state: "active" | "baseline" | "archived"; status: Record<string, "baseline" | "in-progress" | "not-started" | "na">; updatedAt: string; version: number; }>
updateUserShareRole()
updateUserShareRole(
id,username,role,acting):Promise<{id:string;mode:"internal-events"|"internal-hazards"|"external-hazards"|"full-scope";modeLabel:string;myRole:"viewer"|"editor"|"owner";name:string;ownerFullName:string;ownerInitials:string;ownerUsername:string;pageLayout:"modern"|"legacy";pinned:boolean;progress:number;sharedTeams:object[];sharedUsers:object[];state:"active"|"baseline"|"archived";status:Record<string,"baseline"|"in-progress"|"not-started"|"na">;updatedAt:string;version:number; }>
Defined in: backends/web-backend/src/projects/projects.service.ts:337
Parameters
id
string
username
string
role
"viewer" | "editor"
acting
ActingUser
Returns
Promise<{ id: string; mode: "internal-events" | "internal-hazards" | "external-hazards" | "full-scope"; modeLabel: string; myRole: "viewer" | "editor" | "owner"; name: string; ownerFullName: string; ownerInitials: string; ownerUsername: string; pageLayout: "modern" | "legacy"; pinned: boolean; progress: number; sharedTeams: object[]; sharedUsers: object[]; state: "active" | "baseline" | "archived"; status: Record<string, "baseline" | "in-progress" | "not-started" | "na">; updatedAt: string; version: number; }>
