add projectId to error message

This commit is contained in:
Danny Martini 2025-01-14 13:29:50 +01:00
parent 9f4727f362
commit da0fbfefc6
No known key found for this signature in database
2 changed files with 14 additions and 11 deletions

View file

@ -37,8 +37,8 @@ class UnlicensedProjectRoleError extends BadRequestError {
} }
class ProjectNotFoundError extends NotFoundError { class ProjectNotFoundError extends NotFoundError {
constructor() { constructor(projectId: string) {
super('Project not found.'); super(`Could not find project with ID: ${projectId}`);
} }
} }
@ -82,7 +82,7 @@ export class ProjectService {
const project = await this.getProjectWithScope(user, projectId, ['project:delete']); const project = await this.getProjectWithScope(user, projectId, ['project:delete']);
if (!project || project.type !== 'team') { if (!project || project.type !== 'team') {
throw new ProjectNotFoundError(); throw new ProjectNotFoundError(projectId);
} }
let targetProject: Project | null = null; let targetProject: Project | null = null;
@ -190,7 +190,7 @@ export class ProjectService {
{ name, icon }, { name, icon },
); );
if (!result.affected) { if (!result.affected) {
throw new ProjectNotFoundError(); throw new ProjectNotFoundError(projectId);
} }
} }
@ -236,7 +236,7 @@ export class ProjectService {
relations: { projectRelations: true }, relations: { projectRelations: true },
}); });
if (!project) { if (!project) {
throw new ProjectNotFoundError(); throw new ProjectNotFoundError(projectId);
} }
return project; return project;
} }
@ -256,7 +256,7 @@ export class ProjectService {
async deleteUserFromProject(projectId: string, userId: string) { async deleteUserFromProject(projectId: string, userId: string) {
const projectExists = await this.projectRepository.existsBy({ id: projectId }); const projectExists = await this.projectRepository.existsBy({ id: projectId });
if (!projectExists) { if (!projectExists) {
throw new ProjectNotFoundError(); throw new ProjectNotFoundError(projectId);
} }
// TODO: do we need to prevent project owner from being removed? // TODO: do we need to prevent project owner from being removed?
@ -266,7 +266,7 @@ export class ProjectService {
async changeUserRoleInProject(projectId: string, userId: string, role: ProjectRole) { async changeUserRoleInProject(projectId: string, userId: string, role: ProjectRole) {
const projectUserExists = await this.projectRelationRepository.existsBy({ projectId, userId }); const projectUserExists = await this.projectRelationRepository.existsBy({ projectId, userId });
if (!projectUserExists) { if (!projectUserExists) {
throw new ProjectNotFoundError(); throw new ProjectNotFoundError(projectId);
} }
// TODO: do we need to block any specific roles here? // TODO: do we need to block any specific roles here?

View file

@ -492,7 +492,7 @@ describe('Projects in Public API', () => {
.send(payload); .send(payload);
expect(response.status).toBe(404); expect(response.status).toBe(404);
expect(response.body).toHaveProperty('message', 'Project not found.'); expect(response.body).toHaveProperty('message', 'Could not find project with ID: 123456');
}); });
it('should add expected users to project', async () => { it('should add expected users to project', async () => {
@ -647,7 +647,7 @@ describe('Projects in Public API', () => {
.send({ role: 'project:editor' }) .send({ role: 'project:editor' })
.expect(404); .expect(404);
expect(response.body).toHaveProperty('message', 'Project not found.'); expect(response.body).toHaveProperty('message', 'Could not find project with ID: 123456');
}); });
it('should reject with 404 if user is not in the project', async () => { it('should reject with 404 if user is not in the project', async () => {
@ -663,7 +663,10 @@ describe('Projects in Public API', () => {
.send({ role: 'project:editor' }) .send({ role: 'project:editor' })
.expect(404); .expect(404);
expect(response.body).toHaveProperty('message', 'Project not found.'); expect(response.body).toHaveProperty(
'message',
`Could not find project with ID: ${project.id}`,
);
}); });
}); });
}); });
@ -752,7 +755,7 @@ describe('Projects in Public API', () => {
.delete(`/projects/123456/users/${member.id}`); .delete(`/projects/123456/users/${member.id}`);
expect(response.status).toBe(404); expect(response.status).toBe(404);
expect(response.body).toHaveProperty('message', 'Project not found.'); expect(response.body).toHaveProperty('message', 'Could not find project with ID: 123456');
}); });
it('should remain unchanged if user if not in project', async () => { it('should remain unchanged if user if not in project', async () => {