Skip to content

backends-web-backend


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

EventBus

analytics?

AnalyticsService

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; }>