From bc7f9bfacbbc530eaa4daf9f819f8c9a72eabdad Mon Sep 17 00:00:00 2001 From: Thomas Feldtkeller Date: Wed, 15 Jan 2025 11:43:20 +0100 Subject: [PATCH 01/16] membership service --- .../service/room-membership.service.spec.ts | 94 ++++++++++++++++++- .../service/room-membership.service.ts | 20 ++++ 2 files changed, 113 insertions(+), 1 deletion(-) diff --git a/apps/server/src/modules/room-membership/service/room-membership.service.spec.ts b/apps/server/src/modules/room-membership/service/room-membership.service.spec.ts index 7ee7e21aac2..5cb93d8291b 100644 --- a/apps/server/src/modules/room-membership/service/room-membership.service.spec.ts +++ b/apps/server/src/modules/room-membership/service/room-membership.service.spec.ts @@ -1,6 +1,6 @@ import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { MongoMemoryDatabaseModule } from '@infra/database'; -import { Group, GroupService, GroupTypes } from '@modules/group'; +import { Group, GroupService, GroupTypes, GroupUser } from '@modules/group'; import { RoleDto, RoleService } from '@modules/role'; import { RoomService } from '@modules/room/domain'; import { roomFactory } from '@modules/room/testing'; @@ -10,6 +10,7 @@ import { BadRequestException } from '@nestjs/common/exceptions'; import { Test, TestingModule } from '@nestjs/testing'; import { RoleName } from '@shared/domain/interface'; import { groupFactory, roleDtoFactory, roleFactory, userDoFactory, userFactory } from '@shared/testing'; +import { ObjectId } from 'bson'; import { RoomMembershipAuthorizable } from '../do/room-membership-authorizable.do'; import { RoomMembershipRepo } from '../repo/room-membership.repo'; import { roomMembershipFactory } from '../testing'; @@ -314,6 +315,97 @@ describe('RoomMembershipService', () => { }); }); + describe('changeRoleOfRoomMembers', () => { + describe('when roomMembership does not exist', () => { + it('should throw an exception', async () => { + roomMembershipRepo.findByRoomId.mockResolvedValue(null); + + await expect( + service.changeRoleOfRoomMembers(new ObjectId().toHexString(), [], RoleName.ROOMEDITOR) + ).rejects.toThrowError(BadRequestException); + }); + }); + + describe('when roomMembership exists', () => { + const setup = () => { + const user = userFactory.buildWithId(); + const otherUser = userFactory.buildWithId(); + const userNotInRoom = userFactory.buildWithId(); + const school = schoolFactory.build(); + const viewerRole = roleFactory.buildWithId({ name: RoleName.ROOMVIEWER }); + const editorRole = roleFactory.buildWithId({ name: RoleName.ROOMEDITOR }); + const group = groupFactory.build({ + type: GroupTypes.ROOM, + organizationId: school.id, + users: [ + { userId: user.id, roleId: viewerRole.id }, + { userId: otherUser.id, roleId: viewerRole.id }, + ], + }); + const room = roomFactory.build({ schoolId: school.id }); + const roomMembership = roomMembershipFactory.build({ + roomId: room.id, + userGroupId: group.id, + schoolId: school.id, + }); + + roomMembershipRepo.findByRoomId.mockResolvedValue(roomMembership); + groupService.findById.mockResolvedValue(group); + roleService.findByName.mockResolvedValue(editorRole); + + return { + user, + otherUser, + userNotInRoom, + room, + roomMembership, + group, + viewerRole, + editorRole, + }; + }; + + it('should change role of user to editor', async () => { + const { user, room, group, editorRole } = setup(); + + await service.changeRoleOfRoomMembers(room.id, [user.id], RoleName.ROOMEDITOR); + + expect(groupService.save).toHaveBeenCalledWith( + expect.objectContaining({ + id: group.id, + users: expect.arrayContaining([{ userId: user.id, roleId: editorRole.id }]) as GroupUser[], + }) + ); + }); + + it('should not change role of other user', async () => { + const { user, otherUser, room, group, viewerRole } = setup(); + + await service.changeRoleOfRoomMembers(room.id, [user.id], RoleName.ROOMEDITOR); + + expect(groupService.save).toHaveBeenCalledWith( + expect.objectContaining({ + id: group.id, + users: expect.arrayContaining([{ userId: otherUser.id, roleId: viewerRole.id }]) as GroupUser[], + }) + ); + }); + + it('should ignore changing a user that is not in the room', async () => { + const { userNotInRoom, room, group } = setup(); + + await service.changeRoleOfRoomMembers(room.id, [userNotInRoom.id], RoleName.ROOMEDITOR); + + expect(groupService.save).toHaveBeenCalledWith( + expect.objectContaining({ + id: group.id, + users: expect.not.arrayContaining([expect.objectContaining({ userId: userNotInRoom.id })]) as GroupUser[], + }) + ); + }); + }); + }); + describe('deleteRoomMembership', () => { describe('when roomMembership does not exist', () => { const setup = () => { diff --git a/apps/server/src/modules/room-membership/service/room-membership.service.ts b/apps/server/src/modules/room-membership/service/room-membership.service.ts index ad6af25fa37..e10734a1836 100644 --- a/apps/server/src/modules/room-membership/service/room-membership.service.ts +++ b/apps/server/src/modules/room-membership/service/room-membership.service.ts @@ -103,6 +103,26 @@ export class RoomMembershipService { await this.handleGuestRoleRemoval(userIds, roomMembership.schoolId); } + public async changeRoleOfRoomMembers(roomId: EntityId, userIds: EntityId[], roleName: RoleName): Promise { + const roomMembership = await this.roomMembershipRepo.findByRoomId(roomId); + if (roomMembership === null) { + throw new BadRequestException('Room member not found'); + } + + const group = await this.groupService.findById(roomMembership.userGroupId); + const role = await this.roleService.findByName(roleName); + + group.users.forEach((groupUser) => { + if (userIds.includes(groupUser.userId)) { + groupUser.roleId = role.id; + } + }); + + await this.groupService.save(group); + + return Promise.resolve(); + } + public async getRoomMembershipAuthorizablesByUserId(userId: EntityId): Promise { const groupPage = await this.groupService.findGroups({ userId, groupTypes: [GroupTypes.ROOM] }); const groupIds = groupPage.data.map((group) => group.id); From 9da8ddb4a81c22232023de53d5cd3ce61109c788 Mon Sep 17 00:00:00 2001 From: Thomas Feldtkeller Date: Fri, 17 Jan 2025 12:46:42 +0100 Subject: [PATCH 02/16] add skeleton for controller and uc --- .../src/modules/room/api/room.controller.ts | 14 ++ apps/server/src/modules/room/api/room.uc.ts | 22 ++- .../api/test/room-change-role.api.spec.ts | 159 ++++++++++++++++++ .../domain/interface/permission.enum.ts | 1 + 4 files changed, 190 insertions(+), 6 deletions(-) create mode 100644 apps/server/src/modules/room/api/test/room-change-role.api.spec.ts diff --git a/apps/server/src/modules/room/api/room.controller.ts b/apps/server/src/modules/room/api/room.controller.ts index b130516f93c..106f8871d8d 100644 --- a/apps/server/src/modules/room/api/room.controller.ts +++ b/apps/server/src/modules/room/api/room.controller.ts @@ -164,6 +164,20 @@ export class RoomController { await this.roomUc.addMembersToRoom(currentUser.userId, urlParams.roomId, bodyParams.userIds); } + @Patch(':roomId/members/roles') + @ApiOperation({ summary: 'Change the roles that members have within the room' }) + @ApiResponse({ status: HttpStatus.OK, description: 'Adding successful', type: String }) + @ApiResponse({ status: HttpStatus.BAD_REQUEST, type: ApiValidationError }) + @ApiResponse({ status: HttpStatus.UNAUTHORIZED, type: UnauthorizedException }) + @ApiResponse({ status: HttpStatus.FORBIDDEN, type: ForbiddenException }) + @ApiResponse({ status: '5XX', type: ErrorResponse }) + public async changeRolesOfMembers( + @CurrentUser() currentUser: ICurrentUser, + @Param() urlParams: RoomUrlParams + ): Promise { + await this.roomUc.changeRolesOfMembers(currentUser.userId, urlParams.roomId); + } + @Patch(':roomId/members/remove') @ApiOperation({ summary: 'Remove members from a room' }) @ApiResponse({ status: HttpStatus.OK, description: 'Removing successful', type: String }) diff --git a/apps/server/src/modules/room/api/room.uc.ts b/apps/server/src/modules/room/api/room.uc.ts index 39ed7379be0..e9e9f518727 100644 --- a/apps/server/src/modules/room/api/room.uc.ts +++ b/apps/server/src/modules/room/api/room.uc.ts @@ -125,12 +125,6 @@ export class RoomUc { return memberResponses; } - public async addMembersToRoom(currentUserId: EntityId, roomId: EntityId, userIds: Array): Promise { - this.checkFeatureEnabled(); - await this.checkRoomAuthorization(currentUserId, roomId, Action.write, [Permission.ROOM_MEMBERS_ADD]); - await this.roomMembershipService.addMembersToRoom(roomId, userIds); - } - private mapToMember(member: UserWithRoomRoles, user: UserDO): RoomMemberResponse { return new RoomMemberResponse({ userId: member.userId, @@ -141,6 +135,22 @@ export class RoomUc { }); } + public async addMembersToRoom(currentUserId: EntityId, roomId: EntityId, userIds: Array): Promise { + this.checkFeatureEnabled(); + await this.checkRoomAuthorization(currentUserId, roomId, Action.write, [Permission.ROOM_MEMBERS_ADD]); + await this.roomMembershipService.addMembersToRoom(roomId, userIds); + } + + public async changeRolesOfMembers( + currentUserId: EntityId, + roomId: EntityId + // userIds: Array + ): Promise { + this.checkFeatureEnabled(); + await this.checkRoomAuthorization(currentUserId, roomId, Action.write, [Permission.ROOM_MEMBERS_CHANGE_ROLE]); + return Promise.resolve(); + } + public async removeMembersFromRoom(currentUserId: EntityId, roomId: EntityId, userIds: EntityId[]): Promise { this.checkFeatureEnabled(); await this.checkRoomAuthorization(currentUserId, roomId, Action.write, [Permission.ROOM_MEMBERS_REMOVE]); diff --git a/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts b/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts new file mode 100644 index 00000000000..9ccded27eda --- /dev/null +++ b/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts @@ -0,0 +1,159 @@ +import { EntityManager } from '@mikro-orm/mongodb'; +import { HttpStatus, INestApplication } from '@nestjs/common'; +import { Test } from '@nestjs/testing'; +import { Permission } from '@shared/domain/interface/permission.enum'; +import { RoleName } from '@shared/domain/interface/rolename.enum'; +import { + TestApiClient, + UserAndAccountTestFactory, + cleanupCollections, + groupEntityFactory, + roleFactory, + schoolEntityFactory, +} from '@shared/testing'; +import { GroupEntityTypes } from '@modules/group/entity/group.entity'; +import { roomMembershipEntityFactory } from '@src/modules/room-membership/testing/room-membership-entity.factory'; +import { ServerTestModule, serverConfig, type ServerConfig } from '@modules/server'; +import { roomEntityFactory } from '../../testing/room-entity.factory'; + +describe('Room Controller (API)', () => { + let app: INestApplication; + let em: EntityManager; + let testApiClient: TestApiClient; + let config: ServerConfig; + + beforeAll(async () => { + const moduleFixture = await Test.createTestingModule({ + imports: [ServerTestModule], + }).compile(); + + app = moduleFixture.createNestApplication(); + await app.init(); + em = app.get(EntityManager); + testApiClient = new TestApiClient(app, 'rooms'); + + config = serverConfig(); + }); + + beforeEach(async () => { + await cleanupCollections(em); + config.FEATURE_ROOMS_ENABLED = true; + }); + + afterAll(async () => { + await app.close(); + }); + + describe('PATCH /rooms/:roomId/members/roles', () => { + const setupRoomWithMembers = async () => { + const school = schoolEntityFactory.buildWithId(); + const { teacherAccount, teacherUser } = UserAndAccountTestFactory.buildTeacher({ school }); + const { teacherAccount: otherTeacherAccount, teacherUser: otherTeacherUser } = + UserAndAccountTestFactory.buildTeacher({ school: teacherUser.school }); + const room = roomEntityFactory.buildWithId({ schoolId: teacherUser.school.id }); + const teacherGuestRole = roleFactory.buildWithId({ name: RoleName.GUESTTEACHER }); + const studentGuestRole = roleFactory.buildWithId({ name: RoleName.GUESTSTUDENT }); + const role = roleFactory.buildWithId({ + name: RoleName.ROOMADMIN, + permissions: [ + Permission.ROOM_VIEW, + Permission.ROOM_EDIT, + Permission.ROOM_MEMBERS_ADD, + Permission.ROOM_MEMBERS_REMOVE, + Permission.ROOM_MEMBERS_CHANGE_ROLE, + ], + }); + const roomEditorRole = roleFactory.buildWithId({ + name: RoleName.ROOMEDITOR, + permissions: [Permission.ROOM_VIEW, Permission.ROOM_EDIT], + }); + // TODO: add more than one user + const userGroupEntity = groupEntityFactory.buildWithId({ + users: [{ role, user: teacherUser }], + type: GroupEntityTypes.ROOM, + organization: teacherUser.school, + externalSource: undefined, + }); + + const roomMemberships = roomMembershipEntityFactory.build({ + userGroupId: userGroupEntity.id, + roomId: room.id, + schoolId: school.id, + }); + await em.persistAndFlush([ + room, + roomMemberships, + teacherAccount, + teacherUser, + teacherGuestRole, + studentGuestRole, + roomEditorRole, + otherTeacherUser, + otherTeacherAccount, + userGroupEntity, + ]); + em.clear(); + + const loggedInClient = await testApiClient.login(teacherAccount); + + return { loggedInClient, room, otherTeacherUser }; + }; + + describe('when the user is not authenticated', () => { + it('should return a 401 error', async () => { + const { room } = await setupRoomWithMembers(); + + const response = await testApiClient.patch(`/${room.id}/members/roles`); + + expect(response.status).toBe(HttpStatus.UNAUTHORIZED); + }); + }); + + describe('when the user has not the required permissions', () => { + const setupLoggedInUser = async () => { + const { teacherAccount, teacherUser } = UserAndAccountTestFactory.buildTeacher(); + await em.persistAndFlush([teacherAccount, teacherUser]); + + const loggedInClient = await testApiClient.login(teacherAccount); + + return { loggedInClient }; + }; + + it('should return forbidden error', async () => { + const { room, otherTeacherUser } = await setupRoomWithMembers(); + const { loggedInClient } = await setupLoggedInUser(); + + const response = await loggedInClient.patch(`/${room.id}/members/roles`, { + userIds: [otherTeacherUser.id], + }); + + expect(response.status).toBe(HttpStatus.FORBIDDEN); + }); + }); + + describe('when the feature is disabled', () => { + it('should return a 403 error', async () => { + const { loggedInClient, room, otherTeacherUser } = await setupRoomWithMembers(); + config.FEATURE_ROOMS_ENABLED = false; + + const response = await loggedInClient.patch(`/${room.id}/members/roles`, { + userIds: [otherTeacherUser.id], + }); + + expect(response.status).toBe(HttpStatus.FORBIDDEN); + }); + }); + + describe('when the user has the required permissions', () => { + it('should return OK', async () => { + const { loggedInClient, room, otherTeacherUser } = await setupRoomWithMembers(); + + const response = await loggedInClient.patch(`/${room.id}/members/roles`, { + userIds: [otherTeacherUser.id], + }); + + expect(response.status).toBe(HttpStatus.OK); + }); + }); + }); +}); diff --git a/apps/server/src/shared/domain/interface/permission.enum.ts b/apps/server/src/shared/domain/interface/permission.enum.ts index bd1c2b0d255..f677991d4a9 100644 --- a/apps/server/src/shared/domain/interface/permission.enum.ts +++ b/apps/server/src/shared/domain/interface/permission.enum.ts @@ -106,6 +106,7 @@ export enum Permission { ROOM_DELETE = 'ROOM_DELETE', ROOM_MEMBERS_ADD = 'ROOM_MEMBERS_ADD', ROOM_MEMBERS_REMOVE = 'ROOM_MEMBERS_REMOVE', + ROOM_MEMBERS_CHANGE_ROLE = 'ROOM_MEMBERS_CHANGE_ROLE', ROOM_CHANGE_OWNER = 'ROOM_CHANGE_OWNER', SCHOOL_CHAT_MANAGE = 'SCHOOL_CHAT_MANAGE', SCHOOL_CREATE = 'SCHOOL_CREATE', From dcbaa826ed43a7f43ac321f47372c76b403a266f Mon Sep 17 00:00:00 2001 From: Thomas Feldtkeller Date: Fri, 17 Jan 2025 16:07:22 +0100 Subject: [PATCH 03/16] define api for changing roles in rooms --- .../request/change-room-role.body.params.ts | 22 ++++++++ .../src/modules/room/api/room.controller.ts | 11 +++- apps/server/src/modules/room/api/room.uc.ts | 5 +- .../api/test/room-change-role.api.spec.ts | 50 +++++++++---------- .../room/testing/room-roles.test.factory.ts | 50 +++++++++++++++++++ 5 files changed, 107 insertions(+), 31 deletions(-) create mode 100644 apps/server/src/modules/room/api/dto/request/change-room-role.body.params.ts create mode 100644 apps/server/src/modules/room/testing/room-roles.test.factory.ts diff --git a/apps/server/src/modules/room/api/dto/request/change-room-role.body.params.ts b/apps/server/src/modules/room/api/dto/request/change-room-role.body.params.ts new file mode 100644 index 00000000000..022734b341f --- /dev/null +++ b/apps/server/src/modules/room/api/dto/request/change-room-role.body.params.ts @@ -0,0 +1,22 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { RoleName, RoomRole } from '@shared/domain/interface'; +import { IsArray, IsMongoId } from 'class-validator'; + +export type AssignableRoomRole = Exclude; + +export class ChangeRoomRoleBodyParams { + @ApiProperty({ + description: 'The IDs of the users', + required: true, + }) + @IsArray() + @IsMongoId({ each: true }) + public userIds!: string[]; + + @ApiProperty({ + description: 'The role to assign to the users. Must be a Room Role role other than ROOMOWNER.', + required: true, + enum: RoleName, + }) + public roleName!: AssignableRoomRole; +} diff --git a/apps/server/src/modules/room/api/room.controller.ts b/apps/server/src/modules/room/api/room.controller.ts index 106f8871d8d..f2c3d872e35 100644 --- a/apps/server/src/modules/room/api/room.controller.ts +++ b/apps/server/src/modules/room/api/room.controller.ts @@ -33,6 +33,7 @@ import { RoomListResponse } from './dto/response/room-list.response'; import { RoomMemberListResponse } from './dto/response/room-member.response'; import { RoomMapper } from './mapper/room.mapper'; import { RoomUc } from './room.uc'; +import { ChangeRoomRoleBodyParams } from './dto/request/change-room-role.body.params'; @ApiTags('Room') @JwtAuthentication() @@ -173,9 +174,15 @@ export class RoomController { @ApiResponse({ status: '5XX', type: ErrorResponse }) public async changeRolesOfMembers( @CurrentUser() currentUser: ICurrentUser, - @Param() urlParams: RoomUrlParams + @Param() urlParams: RoomUrlParams, + @Body() bodyParams: ChangeRoomRoleBodyParams ): Promise { - await this.roomUc.changeRolesOfMembers(currentUser.userId, urlParams.roomId); + await this.roomUc.changeRolesOfMembers( + currentUser.userId, + urlParams.roomId, + bodyParams.userIds, + bodyParams.roleName + ); } @Patch(':roomId/members/remove') diff --git a/apps/server/src/modules/room/api/room.uc.ts b/apps/server/src/modules/room/api/room.uc.ts index e9e9f518727..be43861f782 100644 --- a/apps/server/src/modules/room/api/room.uc.ts +++ b/apps/server/src/modules/room/api/room.uc.ts @@ -143,8 +143,9 @@ export class RoomUc { public async changeRolesOfMembers( currentUserId: EntityId, - roomId: EntityId - // userIds: Array + roomId: EntityId, + userIds: Array, + roleName: string ): Promise { this.checkFeatureEnabled(); await this.checkRoomAuthorization(currentUserId, roomId, Action.write, [Permission.ROOM_MEMBERS_CHANGE_ROLE]); diff --git a/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts b/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts index 9ccded27eda..ca377b0cd05 100644 --- a/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts +++ b/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts @@ -1,7 +1,6 @@ import { EntityManager } from '@mikro-orm/mongodb'; import { HttpStatus, INestApplication } from '@nestjs/common'; import { Test } from '@nestjs/testing'; -import { Permission } from '@shared/domain/interface/permission.enum'; import { RoleName } from '@shared/domain/interface/rolename.enum'; import { TestApiClient, @@ -10,11 +9,13 @@ import { groupEntityFactory, roleFactory, schoolEntityFactory, + userFactory, } from '@shared/testing'; import { GroupEntityTypes } from '@modules/group/entity/group.entity'; import { roomMembershipEntityFactory } from '@src/modules/room-membership/testing/room-membership-entity.factory'; import { ServerTestModule, serverConfig, type ServerConfig } from '@modules/server'; import { roomEntityFactory } from '../../testing/room-entity.factory'; +import { RoomRolesTestFactory } from '../../testing/room-roles.test.factory'; describe('Room Controller (API)', () => { let app: INestApplication; @@ -48,28 +49,17 @@ describe('Room Controller (API)', () => { const setupRoomWithMembers = async () => { const school = schoolEntityFactory.buildWithId(); const { teacherAccount, teacherUser } = UserAndAccountTestFactory.buildTeacher({ school }); - const { teacherAccount: otherTeacherAccount, teacherUser: otherTeacherUser } = - UserAndAccountTestFactory.buildTeacher({ school: teacherUser.school }); + const targetUser = userFactory.buildWithId({ school: teacherUser.school }); const room = roomEntityFactory.buildWithId({ schoolId: teacherUser.school.id }); const teacherGuestRole = roleFactory.buildWithId({ name: RoleName.GUESTTEACHER }); const studentGuestRole = roleFactory.buildWithId({ name: RoleName.GUESTSTUDENT }); - const role = roleFactory.buildWithId({ - name: RoleName.ROOMADMIN, - permissions: [ - Permission.ROOM_VIEW, - Permission.ROOM_EDIT, - Permission.ROOM_MEMBERS_ADD, - Permission.ROOM_MEMBERS_REMOVE, - Permission.ROOM_MEMBERS_CHANGE_ROLE, - ], - }); - const roomEditorRole = roleFactory.buildWithId({ - name: RoleName.ROOMEDITOR, - permissions: [Permission.ROOM_VIEW, Permission.ROOM_EDIT], - }); + const { roomEditorRole, roomAdminRole, roomOwnerRole, roomViewerRole } = RoomRolesTestFactory.createRoomRoles(); // TODO: add more than one user const userGroupEntity = groupEntityFactory.buildWithId({ - users: [{ role, user: teacherUser }], + users: [ + { role: roomOwnerRole, user: teacherUser }, + { role: roomViewerRole, user: targetUser }, + ], type: GroupEntityTypes.ROOM, organization: teacherUser.school, externalSource: undefined, @@ -88,15 +78,18 @@ describe('Room Controller (API)', () => { teacherGuestRole, studentGuestRole, roomEditorRole, - otherTeacherUser, - otherTeacherAccount, + roomAdminRole, + roomOwnerRole, + roomViewerRole, + targetUser, + targetUser, userGroupEntity, ]); em.clear(); const loggedInClient = await testApiClient.login(teacherAccount); - return { loggedInClient, room, otherTeacherUser }; + return { loggedInClient, room, targetUser }; }; describe('when the user is not authenticated', () => { @@ -120,11 +113,12 @@ describe('Room Controller (API)', () => { }; it('should return forbidden error', async () => { - const { room, otherTeacherUser } = await setupRoomWithMembers(); + const { room, targetUser } = await setupRoomWithMembers(); const { loggedInClient } = await setupLoggedInUser(); const response = await loggedInClient.patch(`/${room.id}/members/roles`, { - userIds: [otherTeacherUser.id], + userIds: [targetUser.id], + role: RoleName.ROOMEDITOR, }); expect(response.status).toBe(HttpStatus.FORBIDDEN); @@ -133,11 +127,12 @@ describe('Room Controller (API)', () => { describe('when the feature is disabled', () => { it('should return a 403 error', async () => { - const { loggedInClient, room, otherTeacherUser } = await setupRoomWithMembers(); + const { loggedInClient, room, targetUser } = await setupRoomWithMembers(); config.FEATURE_ROOMS_ENABLED = false; const response = await loggedInClient.patch(`/${room.id}/members/roles`, { - userIds: [otherTeacherUser.id], + userIds: [targetUser.id], + role: RoleName.ROOMEDITOR, }); expect(response.status).toBe(HttpStatus.FORBIDDEN); @@ -146,10 +141,11 @@ describe('Room Controller (API)', () => { describe('when the user has the required permissions', () => { it('should return OK', async () => { - const { loggedInClient, room, otherTeacherUser } = await setupRoomWithMembers(); + const { loggedInClient, room, targetUser } = await setupRoomWithMembers(); const response = await loggedInClient.patch(`/${room.id}/members/roles`, { - userIds: [otherTeacherUser.id], + userIds: [targetUser.id], + role: RoleName.ROOMEDITOR, }); expect(response.status).toBe(HttpStatus.OK); diff --git a/apps/server/src/modules/room/testing/room-roles.test.factory.ts b/apps/server/src/modules/room/testing/room-roles.test.factory.ts new file mode 100644 index 00000000000..f59f0938c8d --- /dev/null +++ b/apps/server/src/modules/room/testing/room-roles.test.factory.ts @@ -0,0 +1,50 @@ +import { Role } from '@shared/domain/entity'; +import { Permission, RoleName } from '@shared/domain/interface'; +import { roleFactory } from '@shared/testing'; + +export class RoomRolesTestFactory { + public static createRoomRoles(): { + roomOwnerRole: Role; + roomAdminRole: Role; + roomEditorRole: Role; + roomViewerRole: Role; + } { + const roomOwnerRole = roleFactory.buildWithId({ + name: RoleName.ROOMOWNER, + permissions: [ + Permission.ROOM_VIEW, + Permission.ROOM_EDIT, + Permission.ROOM_MEMBERS_ADD, + Permission.ROOM_MEMBERS_REMOVE, + Permission.ROOM_MEMBERS_CHANGE_ROLE, + Permission.ROOM_DELETE, + Permission.ROOM_CHANGE_OWNER, + ], + }); + const roomAdminRole = roleFactory.buildWithId({ + name: RoleName.ROOMADMIN, + permissions: [ + Permission.ROOM_VIEW, + Permission.ROOM_EDIT, + Permission.ROOM_MEMBERS_ADD, + Permission.ROOM_MEMBERS_REMOVE, + Permission.ROOM_MEMBERS_CHANGE_ROLE, + ], + }); + const roomEditorRole = roleFactory.buildWithId({ + name: RoleName.ROOMEDITOR, + permissions: [Permission.ROOM_VIEW, Permission.ROOM_EDIT], + }); + const roomViewerRole = roleFactory.buildWithId({ + name: RoleName.ROOMVIEWER, + permissions: [Permission.ROOM_VIEW], + }); + + return { + roomOwnerRole, + roomAdminRole, + roomEditorRole, + roomViewerRole, + }; + } +} From 79c943ac6ed2b9310c4261a827a5fe3f9d0ac646 Mon Sep 17 00:00:00 2001 From: Thomas Feldtkeller Date: Mon, 20 Jan 2025 11:07:37 +0100 Subject: [PATCH 04/16] make uc functional --- .../request/change-room-role.body.params.ts | 3 ++- apps/server/src/modules/room/api/room.uc.ts | 5 ++-- .../api/test/room-change-role.api.spec.ts | 24 +++++++++++++++---- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/apps/server/src/modules/room/api/dto/request/change-room-role.body.params.ts b/apps/server/src/modules/room/api/dto/request/change-room-role.body.params.ts index 022734b341f..cee1e64e3aa 100644 --- a/apps/server/src/modules/room/api/dto/request/change-room-role.body.params.ts +++ b/apps/server/src/modules/room/api/dto/request/change-room-role.body.params.ts @@ -1,6 +1,6 @@ import { ApiProperty } from '@nestjs/swagger'; import { RoleName, RoomRole } from '@shared/domain/interface'; -import { IsArray, IsMongoId } from 'class-validator'; +import { IsArray, IsEnum, IsMongoId } from 'class-validator'; export type AssignableRoomRole = Exclude; @@ -18,5 +18,6 @@ export class ChangeRoomRoleBodyParams { required: true, enum: RoleName, }) + @IsEnum(RoleName) public roleName!: AssignableRoomRole; } diff --git a/apps/server/src/modules/room/api/room.uc.ts b/apps/server/src/modules/room/api/room.uc.ts index be43861f782..527dfcd4c5d 100644 --- a/apps/server/src/modules/room/api/room.uc.ts +++ b/apps/server/src/modules/room/api/room.uc.ts @@ -5,7 +5,7 @@ import { Injectable } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { FeatureDisabledLoggableException } from '@shared/common/loggable-exception'; import { Page, UserDO } from '@shared/domain/domainobject'; -import { IFindOptions, Permission } from '@shared/domain/interface'; +import { IFindOptions, Permission, RoleName } from '@shared/domain/interface'; import { EntityId } from '@shared/domain/types'; import { BoardExternalReferenceType, ColumnBoard, ColumnBoardService } from '@modules/board'; import { Room, RoomService } from '../domain'; @@ -145,10 +145,11 @@ export class RoomUc { currentUserId: EntityId, roomId: EntityId, userIds: Array, - roleName: string + roleName: RoleName ): Promise { this.checkFeatureEnabled(); await this.checkRoomAuthorization(currentUserId, roomId, Action.write, [Permission.ROOM_MEMBERS_CHANGE_ROLE]); + await this.roomMembershipService.changeRoleOfRoomMembers(roomId, userIds, roleName); return Promise.resolve(); } diff --git a/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts b/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts index ca377b0cd05..f1f15721c39 100644 --- a/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts +++ b/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts @@ -16,6 +16,7 @@ import { roomMembershipEntityFactory } from '@src/modules/room-membership/testin import { ServerTestModule, serverConfig, type ServerConfig } from '@modules/server'; import { roomEntityFactory } from '../../testing/room-entity.factory'; import { RoomRolesTestFactory } from '../../testing/room-roles.test.factory'; +import { RoomMemberListResponse } from '../dto/response/room-member.response'; describe('Room Controller (API)', () => { let app: INestApplication; @@ -39,6 +40,7 @@ describe('Room Controller (API)', () => { beforeEach(async () => { await cleanupCollections(em); config.FEATURE_ROOMS_ENABLED = true; + await em.clearCache('roles-cache-byname-roomeditor'); }); afterAll(async () => { @@ -54,7 +56,6 @@ describe('Room Controller (API)', () => { const teacherGuestRole = roleFactory.buildWithId({ name: RoleName.GUESTTEACHER }); const studentGuestRole = roleFactory.buildWithId({ name: RoleName.GUESTSTUDENT }); const { roomEditorRole, roomAdminRole, roomOwnerRole, roomViewerRole } = RoomRolesTestFactory.createRoomRoles(); - // TODO: add more than one user const userGroupEntity = groupEntityFactory.buildWithId({ users: [ { role: roomOwnerRole, user: teacherUser }, @@ -118,7 +119,7 @@ describe('Room Controller (API)', () => { const response = await loggedInClient.patch(`/${room.id}/members/roles`, { userIds: [targetUser.id], - role: RoleName.ROOMEDITOR, + roleName: RoleName.ROOMEDITOR, }); expect(response.status).toBe(HttpStatus.FORBIDDEN); @@ -132,7 +133,7 @@ describe('Room Controller (API)', () => { const response = await loggedInClient.patch(`/${room.id}/members/roles`, { userIds: [targetUser.id], - role: RoleName.ROOMEDITOR, + roleName: RoleName.ROOMEDITOR, }); expect(response.status).toBe(HttpStatus.FORBIDDEN); @@ -145,11 +146,26 @@ describe('Room Controller (API)', () => { const response = await loggedInClient.patch(`/${room.id}/members/roles`, { userIds: [targetUser.id], - role: RoleName.ROOMEDITOR, + roleName: RoleName.ROOMEDITOR, }); expect(response.status).toBe(HttpStatus.OK); }); + + it('should change the role of the user', async () => { + const { loggedInClient, room, targetUser } = await setupRoomWithMembers(); + + await loggedInClient.patch(`/${room.id}/members/roles`, { + userIds: [targetUser.id], + roleName: RoleName.ROOMEDITOR, + }); + + const updatedRoomMembership = await loggedInClient.get(`/${room.id}/members`); + const body = updatedRoomMembership.body as RoomMemberListResponse; + expect(body.data).toEqual( + expect.arrayContaining([expect.objectContaining({ userId: targetUser.id, roleName: RoleName.ROOMEDITOR })]) + ); + }); }); }); }); From 619bd48ccbb313a5c1ae93c2debbecf516c01901 Mon Sep 17 00:00:00 2001 From: Thomas Feldtkeller Date: Mon, 20 Jan 2025 13:52:24 +0100 Subject: [PATCH 05/16] prevent owner manipulation --- .../request/change-room-role.body.params.ts | 9 +++- ...t-change-roomowners-role.error.loggable.ts | 24 ++++++++++ .../src/modules/room/api/loggables/index.ts | 0 apps/server/src/modules/room/api/room.uc.ts | 19 +++++++- .../api/test/room-change-role.api.spec.ts | 47 ++++++++++++++++--- 5 files changed, 89 insertions(+), 10 deletions(-) create mode 100644 apps/server/src/modules/room/api/loggables/cant-change-roomowners-role.error.loggable.ts create mode 100644 apps/server/src/modules/room/api/loggables/index.ts diff --git a/apps/server/src/modules/room/api/dto/request/change-room-role.body.params.ts b/apps/server/src/modules/room/api/dto/request/change-room-role.body.params.ts index cee1e64e3aa..05cab1574cb 100644 --- a/apps/server/src/modules/room/api/dto/request/change-room-role.body.params.ts +++ b/apps/server/src/modules/room/api/dto/request/change-room-role.body.params.ts @@ -3,6 +3,11 @@ import { RoleName, RoomRole } from '@shared/domain/interface'; import { IsArray, IsEnum, IsMongoId } from 'class-validator'; export type AssignableRoomRole = Exclude; +export enum AssignableRoomRoleEnum { + ROOMADMIN = RoleName.ROOMADMIN, + ROOMEDITOR = RoleName.ROOMEDITOR, + ROOMVIEWER = RoleName.ROOMVIEWER, +} export class ChangeRoomRoleBodyParams { @ApiProperty({ @@ -16,8 +21,8 @@ export class ChangeRoomRoleBodyParams { @ApiProperty({ description: 'The role to assign to the users. Must be a Room Role role other than ROOMOWNER.', required: true, - enum: RoleName, + enum: AssignableRoomRoleEnum, }) - @IsEnum(RoleName) + @IsEnum(AssignableRoomRoleEnum) public roleName!: AssignableRoomRole; } diff --git a/apps/server/src/modules/room/api/loggables/cant-change-roomowners-role.error.loggable.ts b/apps/server/src/modules/room/api/loggables/cant-change-roomowners-role.error.loggable.ts new file mode 100644 index 00000000000..26a281059db --- /dev/null +++ b/apps/server/src/modules/room/api/loggables/cant-change-roomowners-role.error.loggable.ts @@ -0,0 +1,24 @@ +import { BadRequestException } from '@nestjs/common'; +import { ErrorLogMessage } from '@shared/common'; +import { Loggable } from '@shared/common/loggable'; + +export class CantChangeOwnersRoleLoggableException extends BadRequestException implements Loggable { + constructor(private readonly currentUserId: string, private readonly roomId: string) { + super(); + } + + public getLogMessage(): ErrorLogMessage { + const message: ErrorLogMessage = { + type: 'CANT_CHANGE_OWNERS_ROLE', + stack: this.stack, + data: { + currentUserId: this.currentUserId, + roomId: this.roomId, + errorMessage: + 'You cannot change the role of the room owner. If you want to change the owner, please transfer the ownership to another user instead.', + }, + }; + + return message; + } +} diff --git a/apps/server/src/modules/room/api/loggables/index.ts b/apps/server/src/modules/room/api/loggables/index.ts new file mode 100644 index 00000000000..e69de29bb2d diff --git a/apps/server/src/modules/room/api/room.uc.ts b/apps/server/src/modules/room/api/room.uc.ts index 527dfcd4c5d..0073a299fe7 100644 --- a/apps/server/src/modules/room/api/room.uc.ts +++ b/apps/server/src/modules/room/api/room.uc.ts @@ -13,6 +13,7 @@ import { RoomConfig } from '../room.config'; import { CreateRoomBodyParams } from './dto/request/create-room.body.params'; import { UpdateRoomBodyParams } from './dto/request/update-room.body.params'; import { RoomMemberResponse } from './dto/response/room-member.response'; +import { CantChangeOwnersRoleLoggableException } from './loggables/cant-change-roomowners-role.error.loggable'; @Injectable() export class RoomUc { @@ -148,11 +149,27 @@ export class RoomUc { roleName: RoleName ): Promise { this.checkFeatureEnabled(); - await this.checkRoomAuthorization(currentUserId, roomId, Action.write, [Permission.ROOM_MEMBERS_CHANGE_ROLE]); + const roomAuthorizable = await this.checkRoomAuthorization(currentUserId, roomId, Action.write, [ + Permission.ROOM_MEMBERS_CHANGE_ROLE, + ]); + this.preventChangingOwnersRole(roomAuthorizable, userIds, currentUserId); await this.roomMembershipService.changeRoleOfRoomMembers(roomId, userIds, roleName); return Promise.resolve(); } + private preventChangingOwnersRole( + roomAuthorizable: RoomMembershipAuthorizable, + userIdsToChange: EntityId[], + currentUserId: EntityId + ): void { + const owner = roomAuthorizable.members.find((member) => + member.roles.some((role) => role.name === RoleName.ROOMOWNER) + ); + if (owner && userIdsToChange.includes(owner.userId)) { + throw new CantChangeOwnersRoleLoggableException(roomAuthorizable.roomId, currentUserId); + } + } + public async removeMembersFromRoom(currentUserId: EntityId, roomId: EntityId, userIds: EntityId[]): Promise { this.checkFeatureEnabled(); await this.checkRoomAuthorization(currentUserId, roomId, Action.write, [Permission.ROOM_MEMBERS_REMOVE]); diff --git a/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts b/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts index f1f15721c39..8769371cd52 100644 --- a/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts +++ b/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts @@ -50,19 +50,19 @@ describe('Room Controller (API)', () => { describe('PATCH /rooms/:roomId/members/roles', () => { const setupRoomWithMembers = async () => { const school = schoolEntityFactory.buildWithId(); - const { teacherAccount, teacherUser } = UserAndAccountTestFactory.buildTeacher({ school }); - const targetUser = userFactory.buildWithId({ school: teacherUser.school }); - const room = roomEntityFactory.buildWithId({ schoolId: teacherUser.school.id }); + const { teacherAccount, teacherUser: owner } = UserAndAccountTestFactory.buildTeacher({ school }); + const targetUser = userFactory.buildWithId({ school: owner.school }); + const room = roomEntityFactory.buildWithId({ schoolId: owner.school.id }); const teacherGuestRole = roleFactory.buildWithId({ name: RoleName.GUESTTEACHER }); const studentGuestRole = roleFactory.buildWithId({ name: RoleName.GUESTSTUDENT }); const { roomEditorRole, roomAdminRole, roomOwnerRole, roomViewerRole } = RoomRolesTestFactory.createRoomRoles(); const userGroupEntity = groupEntityFactory.buildWithId({ users: [ - { role: roomOwnerRole, user: teacherUser }, + { role: roomOwnerRole, user: owner }, { role: roomViewerRole, user: targetUser }, ], type: GroupEntityTypes.ROOM, - organization: teacherUser.school, + organization: owner.school, externalSource: undefined, }); @@ -75,7 +75,7 @@ describe('Room Controller (API)', () => { room, roomMemberships, teacherAccount, - teacherUser, + owner, teacherGuestRole, studentGuestRole, roomEditorRole, @@ -90,7 +90,7 @@ describe('Room Controller (API)', () => { const loggedInClient = await testApiClient.login(teacherAccount); - return { loggedInClient, room, targetUser }; + return { loggedInClient, room, targetUser, owner }; }; describe('when the user is not authenticated', () => { @@ -166,6 +166,39 @@ describe('Room Controller (API)', () => { expect.arrayContaining([expect.objectContaining({ userId: targetUser.id, roleName: RoleName.ROOMEDITOR })]) ); }); + + it('should return error when changing someones role to owner', async () => { + const { loggedInClient, room, targetUser } = await setupRoomWithMembers(); + + const response = await loggedInClient.patch(`/${room.id}/members/roles`, { + userIds: [targetUser.id], + roleName: RoleName.ROOMOWNER, + }); + + expect(response.status).toBe(HttpStatus.BAD_REQUEST); + }); + + it('should return error when changing someones role to a non-room role', async () => { + const { loggedInClient, room, targetUser } = await setupRoomWithMembers(); + + const response = await loggedInClient.patch(`/${room.id}/members/roles`, { + userIds: [targetUser.id], + roleName: RoleName.TEACHER, + }); + + expect(response.status).toBe(HttpStatus.BAD_REQUEST); + }); + + it('should return error when changing the owners role', async () => { + const { loggedInClient, room, owner } = await setupRoomWithMembers(); + + const response = await loggedInClient.patch(`/${room.id}/members/roles`, { + userIds: [owner.id], + roleName: RoleName.ROOMEDITOR, + }); + + expect(response.status).toBe(HttpStatus.BAD_REQUEST); + }); }); }); }); From 24dcc39466251c6ec0258b7c1be417557aba3e2a Mon Sep 17 00:00:00 2001 From: Thomas Feldtkeller Date: Mon, 20 Jan 2025 14:35:15 +0100 Subject: [PATCH 06/16] add ROOM_MEMBERS_CHANGE_ROLE to room admin and owner --- .../mikro-orm/Migration20250120131625.ts | 69 + apps/server/src/modules/room/api/room.uc.ts | 4 +- backup/setup/migrations.json | 677 ++++----- backup/setup/roles.json | 1290 ++++++++--------- 4 files changed, 1058 insertions(+), 982 deletions(-) create mode 100644 apps/server/src/migrations/mikro-orm/Migration20250120131625.ts diff --git a/apps/server/src/migrations/mikro-orm/Migration20250120131625.ts b/apps/server/src/migrations/mikro-orm/Migration20250120131625.ts new file mode 100644 index 00000000000..c8afd9a657b --- /dev/null +++ b/apps/server/src/migrations/mikro-orm/Migration20250120131625.ts @@ -0,0 +1,69 @@ +/* eslint-disable no-console */ +/* eslint-disable filename-rules/match */ +import { Migration } from '@mikro-orm/migrations-mongodb'; + +export class Migration20250120131625 extends Migration { + public async up(): Promise { + const roomOwnerRoleUpdate = await this.getCollection('roles').updateOne( + { name: 'roomowner' }, + { + $addToSet: { + permissions: { + $each: ['ROOM_MEMBERS_CHANGE_ROLE'], + }, + }, + } + ); + + if (roomOwnerRoleUpdate.modifiedCount > 0) { + console.info('Permissions ROOM_MEMBERS_CHANGE_ROLE added to role roomowner.'); + } + + const roomEditorRoleUpdate = await this.getCollection('roles').updateOne( + { name: 'roomadmin' }, + { + $addToSet: { + permissions: { + $each: ['ROOM_MEMBERS_CHANGE_ROLE'], + }, + }, + } + ); + + if (roomEditorRoleUpdate.modifiedCount > 0) { + console.info('Permissions ROOM_MEMBERS_CHANGE_ROLE added to role roomadmin.'); + } + } + + public async down(): Promise { + const roomOwnerRoleUpdate = await this.getCollection('roles').updateOne( + { name: 'roomowner' }, + { + $pull: { + permissions: { + $in: ['ROOM_MEMBERS_CHANGE_ROLE'], + }, + }, + } + ); + + if (roomOwnerRoleUpdate.modifiedCount > 0) { + console.info('Rollback: Permission ROOM_CREATE removed from role roomowner.'); + } + + const roomEditorRoleUpdate = await this.getCollection('roles').updateOne( + { name: 'roomadmin' }, + { + $pull: { + permissions: { + $in: ['ROOM_MEMBERS_CHANGE_ROLE'], + }, + }, + } + ); + + if (roomEditorRoleUpdate.modifiedCount > 0) { + console.info('Rollback: Permission ROOM_DELETE removed from role roomadmin.'); + } + } +} diff --git a/apps/server/src/modules/room/api/room.uc.ts b/apps/server/src/modules/room/api/room.uc.ts index 0073a299fe7..bf4f105210b 100644 --- a/apps/server/src/modules/room/api/room.uc.ts +++ b/apps/server/src/modules/room/api/room.uc.ts @@ -1,5 +1,5 @@ import { Action, AuthorizationService } from '@modules/authorization'; -import { RoomMembershipAuthorizable, RoomMembershipService, UserWithRoomRoles } from '@src/modules/room-membership'; +import { BoardExternalReferenceType, ColumnBoard, ColumnBoardService } from '@modules/board'; import { UserService } from '@modules/user'; import { Injectable } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; @@ -7,7 +7,7 @@ import { FeatureDisabledLoggableException } from '@shared/common/loggable-except import { Page, UserDO } from '@shared/domain/domainobject'; import { IFindOptions, Permission, RoleName } from '@shared/domain/interface'; import { EntityId } from '@shared/domain/types'; -import { BoardExternalReferenceType, ColumnBoard, ColumnBoardService } from '@modules/board'; +import { RoomMembershipAuthorizable, RoomMembershipService, UserWithRoomRoles } from '@src/modules/room-membership'; import { Room, RoomService } from '../domain'; import { RoomConfig } from '../room.config'; import { CreateRoomBodyParams } from './dto/request/create-room.body.params'; diff --git a/backup/setup/migrations.json b/backup/setup/migrations.json index 1ff81558276..1e713d8af38 100644 --- a/backup/setup/migrations.json +++ b/backup/setup/migrations.json @@ -1,335 +1,342 @@ -[ - { - "_id": { - "$oid": "65d5f62f2dfd4122af9607e9" - }, - "name": "Migration20240108145519", - "created_at": { - "$date": "2024-02-21T13:10:07.253Z" - } - }, - { - "_id": { - "$oid": "65d5f62f2dfd4122af9607ea" - }, - "name": "Migration20240115103302", - "created_at": { - "$date": "2024-02-21T13:10:07.273Z" - } - }, - { - "_id": { - "$oid": "65d5fcc609ea95ffabb997fd" - }, - "name": "Migration20240221131029", - "created_at": { - "$date": "2024-02-21T13:38:14.058Z" - } - }, - { - "_id": { - "$oid": "661d0a8f95c6e7265aa4f180" - }, - "name": "Migration20240304123509", - "created_at": { - "$date": "2024-04-15T11:07:59.291Z" - } - }, - { - "_id": { - "$oid": "661d0a8f95c6e7265aa4f181" - }, - "name": "Migration20240315140224", - "created_at": { - "$date": "2024-04-15T11:07:59.301Z" - } - }, - { - "_id": { - "$oid": "661d0a8f95c6e7265aa4f182" - }, - "name": "Migration20240320122229", - "created_at": { - "$date": "2024-04-15T11:07:59.306Z" - } - }, - { - "_id": { - "$oid": "661d0a8f95c6e7265aa4f183" - }, - "name": "Migration20240326072506", - "created_at": { - "$date": "2024-04-15T11:07:59.312Z" - } - }, - { - "_id": { - "$oid": "66222c3267551d7ebd81c096" - }, - "name": "Migration20240415124640", - "created_at": { - "$date": "2024-04-19T08:32:50.668Z" - } - }, - { - "_id": { - "$oid": "6622341440e305c6e36dcd81" - }, - "name": "Migration20240419075957", - "created_at": { - "$date": "2024-04-19T09:06:28.592Z" - } - }, - { - "_id": { - "$oid": "66263de3e9af8b2c09707e51" - }, - "name": "Migration20240416104203", - "created_at": { - "$date": "2024-04-22T12:32:50.668Z" - } - }, - { - "_id": { - "$oid": "6630fa6f92c2ac9d942c1c1d" - }, - "name": "Migration20240430140106", - "created_at": { - "$date": "2024-04-30T14:04:31.141Z" - } - }, - { - "_id": { - "$oid": "6647630a9d32c0b7be4cc5a8" - }, - "name": "Migration20240517135008", - "created_at": { - "$date": "2024-05-17T14:00:42.414Z" - } - }, - { - "_id": { - "$oid": "6655e94f06722f2a434c135f" - }, - "name": "Migration20240528140356", - "created_at": { - "$date": "2024-05-28T14:25:19.577Z" - } - }, - { - "_id": { - "$oid": "6656f4835290f6d36be31830" - }, - "name": "Migration20240529091306", - "created_at": { - "$date": "2024-05-29T09:25:23.454Z" - } - }, - { - "_id": { - "$oid": "6668485aadfd9c4d7be91ca3" - }, - "name": "Migration20240611081033", - "created_at": { - "$date": "2024-06-11T12:51:38.379Z" - } - }, - { - "_id": { - "$oid": "66684c3db14698848e23c0c2" - }, - "name": "Migration20240604131554", - "created_at": { - "$date": "2024-06-11T13:08:13.024Z" - } - }, - { - "_id": { - "$oid": "66684c3db14698848e23c0c3" - }, - "name": "Migration20240605065231", - "created_at": { - "$date": "2024-06-11T13:08:13.042Z" - } - }, - { - "_id": { - "$oid": "66684c3db14698848e23c0c4" - }, - "name": "Migration20240606142059", - "created_at": { - "$date": "2024-06-11T13:08:13.069Z" - } - }, - { - "_id": { - "$oid": "666993d9c1989bee3e0e5df2" - }, - "name": "Migration20240612122202", - "created_at": { - "$date": "2024-06-12T12:26:01.665Z" - } - }, - { - "_id": { - "$oid": "667e611e207a39b02c306406" - }, - "name": "Migration20240627134214", - "created_at": { - "$date": "2024-06-28T07:07:10.278Z" - } - }, - { - "_id": { - "$oid": "667e611e207a39b02c306407" - }, - "name": "Migration20240719115036", - "created_at": { - "$date": "1970-01-01T00:00:00Z" - } - }, - { - "_id": { - "$oid": "66a0c52f1935f91a45b9c261" - }, - "name": "Migration20240724090901", - "created_at": { - "$date": "2024-07-24T09:11:11.359Z" - } - }, - { - "_id": { - "$oid": "66a267da6d71e4510a572d08" - }, - "name": "Migration20240725143018", - "created_at": { - "$date": "2024-07-25T14:57:30.752Z" - } - }, - { - "_id": { - "$oid": "66c8a9d1d2ae9ba6c4b43c5d" - }, - "name": "Migration20240823151836", - "created_at": { - "$date": "2024-08-23T15:25:05.360Z" - } - }, - { - "_id": { - "$oid": "66f440bf0dbeeb6747a4242c" - }, - "name": "Migration20240925165112", - "created_at": { - "$date": "2024-09-25T16:56:31.889Z" - } - }, - { - "_id": { - "$oid": "66fda9462a63b5749b3a64c9" - }, - "name": "Migration20240926205656", - "created_at": { - "$date": "2024-10-02T20:12:54.209Z" - } - }, - { - "_id": { - "$oid": "6717bba2b08d6ccb1dd5db60" - }, - "name": "Migration20241022205656", - "created_at": { - "$date": "2024-10-22T14:50:10.445Z" - } - }, - { - "_id": { - "$oid": "6718c7e97459fd3674d36a29" - }, - "name": "Migration202410041210124", - "created_at": { - "$date": "2024-10-23T09:54:49.077Z" - } - }, - { - "_id": { - "$oid": "672266e39dcc983d3b724d5d" - }, - "name": "Migration20241030126666", - "created_at": { - "$date": "2024-10-30T17:03:31.473Z" - } - }, - { - "_id": { - "$oid": "673237e9b0955dcff4cde3d9" - }, - "name": "Migration20241111160412", - "created_at": { - "$date": "2024-11-11T16:59:21.768Z" - } - }, - { - "_id": { - "$oid": "67347bb8b1bcb78aecbab90f" - }, - "name": "Migration20241113100535", - "created_at": { - "$date": "2024-11-13T10:13:12.411Z" - } - }, - { - "_id": { - "$oid": "673fca34cc4a3264457c8ad1" - }, - "name": "Migration20241120100616", - "created_at": { - "$date": "2024-11-20T17:03:31.473Z" - } - }, - { - "_id": { - "$oid": "674444262ba8186272dc8abd" - }, - "name": "Migration20241125092225", - "created_at": { - "$date": "2024-11-25T09:32:22.556Z" - } - }, - { - "_id": { - "$oid": "674847ac3c76d17b0c01c155" - }, - "name": "Migration20241127134513", - "created_at": { - "$date": "2024-11-28T10:37:51.515Z" - } - }, - { - "_id": { - "$oid": "675abdb4e76b1142cd4c89e5" - }, - "name": "Migration20241209165812", - "created_at": { - "$date": "2024-12-12T10:40:52.027Z" - } - }, - { - "_id": { - "$oid": "675abdb4e76b1142cd4c89e6" - }, - "name": "Migration20241210152600", - "created_at": { - "$date": "2024-12-12T10:40:52.029Z" - } - }, - { - "_id": { - "$oid": "675c3caac52cd071103a87bb" - }, - "name": "Migration20241213145222", - "created_at": { - "$date": "2024-11-20T17:03:31.473Z" - } - } -] +[{ + "_id": { + "$oid": "65d5f62f2dfd4122af9607e9" + }, + "name": "Migration20240108145519", + "created_at": { + "$date": "2024-02-21T13:10:07.253Z" + } +}, +{ + "_id": { + "$oid": "65d5f62f2dfd4122af9607ea" + }, + "name": "Migration20240115103302", + "created_at": { + "$date": "2024-02-21T13:10:07.273Z" + } +}, +{ + "_id": { + "$oid": "65d5fcc609ea95ffabb997fd" + }, + "name": "Migration20240221131029", + "created_at": { + "$date": "2024-02-21T13:38:14.058Z" + } +}, +{ + "_id": { + "$oid": "661d0a8f95c6e7265aa4f180" + }, + "name": "Migration20240304123509", + "created_at": { + "$date": "2024-04-15T11:07:59.291Z" + } +}, +{ + "_id": { + "$oid": "661d0a8f95c6e7265aa4f181" + }, + "name": "Migration20240315140224", + "created_at": { + "$date": "2024-04-15T11:07:59.301Z" + } +}, +{ + "_id": { + "$oid": "661d0a8f95c6e7265aa4f182" + }, + "name": "Migration20240320122229", + "created_at": { + "$date": "2024-04-15T11:07:59.306Z" + } +}, +{ + "_id": { + "$oid": "661d0a8f95c6e7265aa4f183" + }, + "name": "Migration20240326072506", + "created_at": { + "$date": "2024-04-15T11:07:59.312Z" + } +}, +{ + "_id": { + "$oid": "66222c3267551d7ebd81c096" + }, + "name": "Migration20240415124640", + "created_at": { + "$date": "2024-04-19T08:32:50.668Z" + } +}, +{ + "_id": { + "$oid": "6622341440e305c6e36dcd81" + }, + "name": "Migration20240419075957", + "created_at": { + "$date": "2024-04-19T09:06:28.592Z" + } +}, +{ + "_id": { + "$oid": "66263de3e9af8b2c09707e51" + }, + "name": "Migration20240416104203", + "created_at": { + "$date": "2024-04-22T12:32:50.668Z" + } +}, +{ + "_id": { + "$oid": "6630fa6f92c2ac9d942c1c1d" + }, + "name": "Migration20240430140106", + "created_at": { + "$date": "2024-04-30T14:04:31.141Z" + } +}, +{ + "_id": { + "$oid": "6647630a9d32c0b7be4cc5a8" + }, + "name": "Migration20240517135008", + "created_at": { + "$date": "2024-05-17T14:00:42.414Z" + } +}, +{ + "_id": { + "$oid": "6655e94f06722f2a434c135f" + }, + "name": "Migration20240528140356", + "created_at": { + "$date": "2024-05-28T14:25:19.577Z" + } +}, +{ + "_id": { + "$oid": "6656f4835290f6d36be31830" + }, + "name": "Migration20240529091306", + "created_at": { + "$date": "2024-05-29T09:25:23.454Z" + } +}, +{ + "_id": { + "$oid": "6668485aadfd9c4d7be91ca3" + }, + "name": "Migration20240611081033", + "created_at": { + "$date": "2024-06-11T12:51:38.379Z" + } +}, +{ + "_id": { + "$oid": "66684c3db14698848e23c0c2" + }, + "name": "Migration20240604131554", + "created_at": { + "$date": "2024-06-11T13:08:13.024Z" + } +}, +{ + "_id": { + "$oid": "66684c3db14698848e23c0c3" + }, + "name": "Migration20240605065231", + "created_at": { + "$date": "2024-06-11T13:08:13.042Z" + } +}, +{ + "_id": { + "$oid": "66684c3db14698848e23c0c4" + }, + "name": "Migration20240606142059", + "created_at": { + "$date": "2024-06-11T13:08:13.069Z" + } +}, +{ + "_id": { + "$oid": "666993d9c1989bee3e0e5df2" + }, + "name": "Migration20240612122202", + "created_at": { + "$date": "2024-06-12T12:26:01.665Z" + } +}, +{ + "_id": { + "$oid": "667e611e207a39b02c306406" + }, + "name": "Migration20240627134214", + "created_at": { + "$date": "2024-06-28T07:07:10.278Z" + } +}, +{ + "_id": { + "$oid": "667e611e207a39b02c306407" + }, + "name": "Migration20240719115036", + "created_at": { + "$date": "1970-01-01T00:00:00.000Z" + } +}, +{ + "_id": { + "$oid": "66a0c52f1935f91a45b9c261" + }, + "name": "Migration20240724090901", + "created_at": { + "$date": "2024-07-24T09:11:11.359Z" + } +}, +{ + "_id": { + "$oid": "66a267da6d71e4510a572d08" + }, + "name": "Migration20240725143018", + "created_at": { + "$date": "2024-07-25T14:57:30.752Z" + } +}, +{ + "_id": { + "$oid": "66c8a9d1d2ae9ba6c4b43c5d" + }, + "name": "Migration20240823151836", + "created_at": { + "$date": "2024-08-23T15:25:05.360Z" + } +}, +{ + "_id": { + "$oid": "66f440bf0dbeeb6747a4242c" + }, + "name": "Migration20240925165112", + "created_at": { + "$date": "2024-09-25T16:56:31.889Z" + } +}, +{ + "_id": { + "$oid": "66fda9462a63b5749b3a64c9" + }, + "name": "Migration20240926205656", + "created_at": { + "$date": "2024-10-02T20:12:54.209Z" + } +}, +{ + "_id": { + "$oid": "6717bba2b08d6ccb1dd5db60" + }, + "name": "Migration20241022205656", + "created_at": { + "$date": "2024-10-22T14:50:10.445Z" + } +}, +{ + "_id": { + "$oid": "6718c7e97459fd3674d36a29" + }, + "name": "Migration202410041210124", + "created_at": { + "$date": "2024-10-23T09:54:49.077Z" + } +}, +{ + "_id": { + "$oid": "672266e39dcc983d3b724d5d" + }, + "name": "Migration20241030126666", + "created_at": { + "$date": "2024-10-30T17:03:31.473Z" + } +}, +{ + "_id": { + "$oid": "673237e9b0955dcff4cde3d9" + }, + "name": "Migration20241111160412", + "created_at": { + "$date": "2024-11-11T16:59:21.768Z" + } +}, +{ + "_id": { + "$oid": "67347bb8b1bcb78aecbab90f" + }, + "name": "Migration20241113100535", + "created_at": { + "$date": "2024-11-13T10:13:12.411Z" + } +}, +{ + "_id": { + "$oid": "673fca34cc4a3264457c8ad1" + }, + "name": "Migration20241120100616", + "created_at": { + "$date": "2024-11-20T17:03:31.473Z" + } +}, +{ + "_id": { + "$oid": "674444262ba8186272dc8abd" + }, + "name": "Migration20241125092225", + "created_at": { + "$date": "2024-11-25T09:32:22.556Z" + } +}, +{ + "_id": { + "$oid": "674847ac3c76d17b0c01c155" + }, + "name": "Migration20241127134513", + "created_at": { + "$date": "2024-11-28T10:37:51.515Z" + } +}, +{ + "_id": { + "$oid": "675abdb4e76b1142cd4c89e5" + }, + "name": "Migration20241209165812", + "created_at": { + "$date": "2024-12-12T10:40:52.027Z" + } +}, +{ + "_id": { + "$oid": "675abdb4e76b1142cd4c89e6" + }, + "name": "Migration20241210152600", + "created_at": { + "$date": "2024-12-12T10:40:52.029Z" + } +}, +{ + "_id": { + "$oid": "675c3caac52cd071103a87bb" + }, + "name": "Migration20241213145222", + "created_at": { + "$date": "2024-11-20T17:03:31.473Z" + } +}, +{ + "_id": { + "$oid": "678e4e7a4af7ab0304f28cbd" + }, + "name": "Migration20250120131625", + "created_at": { + "$date": "2025-01-20T13:24:10.786Z" + } +}] \ No newline at end of file diff --git a/backup/setup/roles.json b/backup/setup/roles.json index 0c494cb441f..d22c02c6a2f 100644 --- a/backup/setup/roles.json +++ b/backup/setup/roles.json @@ -1,645 +1,645 @@ -[ - { - "_id": { - "$oid": "0000d186816abba584714c95" - }, - "name": "user", - "roles": [], - "updatedAt": { - "$date": "2023-10-18T05:58:52.716Z" - }, - "createdAt": { - "$date": "2017-01-01T00:06:37.148Z" - }, - "permissions": [ - "ACCOUNT_EDIT", - "BASE_VIEW", - "CALENDAR_CREATE", - "CALENDAR_EDIT", - "CALENDAR_VIEW", - "CLASS_VIEW", - "COMMENTS_CREATE", - "COMMENTS_EDIT", - "COMMENTS_VIEW", - "CONTENT_NON_OER_VIEW", - "CONTENT_VIEW", - "CONTEXT_TOOL_USER", - "COURSEGROUP_CREATE", - "COURSEGROUP_EDIT", - "COURSE_VIEW", - "DASHBOARD_VIEW", - "FEDERALSTATE_VIEW", - "FILESTORAGE_CREATE", - "FILESTORAGE_EDIT", - "FILESTORAGE_REMOVE", - "FILESTORAGE_VIEW", - "FILE_CREATE", - "FILE_DELETE", - "FILE_MOVE", - "FOLDER_CREATE", - "FOLDER_DELETE", - "GROUP_VIEW", - "HELPDESK_CREATE", - "HOMEWORK_VIEW", - "LERNSTORE_VIEW", - "LINK_CREATE", - "NEWS_VIEW", - "NEXTCLOUD_USER", - "NOTIFICATION_CREATE", - "NOTIFICATION_EDIT", - "NOTIFICATION_VIEW", - "PASSWORD_EDIT", - "PWRECOVERY_CREATE", - "PWRECOVERY_EDIT", - "PWRECOVERY_VIEW", - "RELEASES_VIEW", - "ROLE_VIEW", - "SUBMISSIONS_CREATE", - "SUBMISSIONS_EDIT", - "SUBMISSIONS_VIEW", - "TEAM_VIEW", - "TOOL_VIEW", - "TOPIC_VIEW" - ], - "__v": 0 - }, - { - "_id": { - "$oid": "0000d186816abba584714c96" - }, - "name": "administrator", - "updatedAt": { - "$date": "2023-10-18T05:58:52.729Z" - }, - "createdAt": { - "$date": "2017-01-01T00:06:37.148Z" - }, - "roles": [ - { - "$oid": "0000d186816abba584714c95" - } - ], - "permissions": [ - "ACCOUNT_CREATE", - "ADMIN_VIEW", - "CLASS_CREATE", - "CLASS_EDIT", - "CLASS_FULL_ADMIN", - "CLASS_LIST", - "CLASS_REMOVE", - "COURSE_CREATE", - "COURSE_EDIT", - "COURSE_REMOVE", - "COURSE_ADMINISTRATION", - "DATASOURCES_CREATE", - "DATASOURCES_DELETE", - "DATASOURCES_EDIT", - "DATASOURCES_RUN", - "DATASOURCES_RUN_VIEW", - "DATASOURCES_VIEW", - "ENTERTHECLOUD_START", - "HELPDESK_EDIT", - "HELPDESK_VIEW", - "IMPORT_USER_MIGRATE", - "IMPORT_USER_UPDATE", - "IMPORT_USER_VIEW", - "NEWS_CREATE", - "NEWS_EDIT", - "REQUEST_CONSENTS", - "SCHOOL_EDIT", - "SCHOOL_NEWS_EDIT", - "SCHOOL_CHAT_MANAGE", - "SCHOOL_LOGO_MANAGE", - "SCHOOL_STUDENT_TEAM_MANAGE", - "STUDENT_CREATE", - "STUDENT_DELETE", - "STUDENT_EDIT", - "STUDENT_LIST", - "STUDENT_SKIP_REGISTRATION", - "SUBMISSIONS_SCHOOL_VIEW", - "SYNC_START", - "TEACHER_CREATE", - "TEACHER_DELETE", - "TEACHER_EDIT", - "TEACHER_LIST", - "TEACHER_SKIP_REGISTRATION", - "TEAM_INVITE_EXTERNAL", - "TEAM_CREATE", - "TEAM_EDIT", - "SCHOOL_PERMISSION_VIEW", - "SCHOOL_PERMISSION_CHANGE", - "SYSTEM_EDIT", - "SYSTEM_CREATE", - "SYSTEM_VIEW", - "SCHOOL_TOOL_ADMIN", - "USER_LOGIN_MIGRATION_ADMIN", - "START_MEETING", - "JOIN_MEETING", - "GROUP_LIST", - "GROUP_FULL_ADMIN", - "SCHOOL_SYSTEM_EDIT", - "SCHOOL_SYSTEM_VIEW", - "USER_CHANGE_OWN_NAME" - ], - "__v": 2 - }, - { - "_id": { - "$oid": "0000d186816abba584714c97" - }, - "name": "superhero", - "updatedAt": { - "$date": "2023-10-18T05:58:52.729Z" - }, - "createdAt": { - "$date": "2017-01-01T00:06:37.148Z" - }, - "roles": [ - { - "$oid": "0000d186816abba584714c95" - } - ], - "permissions": [ - "ADMIN_EDIT", - "CLASS_LIST", - "CREATE_SUPPORT_JWT", - "DATASOURCES_CREATE", - "DATASOURCES_DELETE", - "DATASOURCES_EDIT", - "DATASOURCES_RUN", - "DATASOURCES_RUN_VIEW", - "DATASOURCES_VIEW", - "FEDERALSTATE_CREATE", - "FEDERALSTATE_EDIT", - "OAUTH_CLIENT_EDIT", - "OAUTH_CLIENT_VIEW", - "RELEASES_CREATE", - "RELEASES_EDIT", - "REQUEST_CONSENTS", - "ROLE_CREATE", - "ROLE_EDIT", - "SCHOOL_CREATE", - "SCHOOL_EDIT", - "STUDENT_CREATE", - "STUDENT_DELETE", - "STUDENT_EDIT", - "STUDENT_LIST", - "SUBMISSIONS_SCHOOL_VIEW", - "SYNC_START", - "TOOL_ADMIN", - "TEACHER_CREATE", - "TEACHER_DELETE", - "TEACHER_EDIT", - "TEACHER_LIST", - "TEAM_CREATE", - "TEAM_EDIT", - "TOOL_CREATE", - "TOOL_EDIT", - "YEARS_EDIT", - "GROUP_LIST", - "GROUP_FULL_ADMIN", - "USER_CHANGE_OWN_NAME", - "ACCOUNT_VIEW", - "ACCOUNT_DELETE", - "USER_LOGIN_MIGRATION_FORCE", - "USER_LOGIN_MIGRATION_ROLLBACK", - "INSTANCE_VIEW", - "SCHOOL_EDIT_ALL" - ], - "__v": 2 - }, - { - "_id": { - "$oid": "0000d186816abba584714c98" - }, - "name": "teacher", - "updatedAt": { - "$date": "2024-11-12T16:35:53.763Z" - }, - "createdAt": { - "$date": "2017-01-01T00:06:37.148Z" - }, - "roles": [ - { - "$oid": "0000d186816abba584714c95" - } - ], - "permissions": [ - "ACCOUNT_CREATE", - "CLASS_CREATE", - "CLASS_EDIT", - "CLASS_LIST", - "CLASS_REMOVE", - "CONTEXT_TOOL_ADMIN", - "COURSE_CREATE", - "COURSE_EDIT", - "COURSE_REMOVE", - "ENTERTHECLOUD_START", - "GROUP_LIST", - "HOMEWORK_CREATE", - "HOMEWORK_EDIT", - "JOIN_MEETING", - "LESSONS_VIEW", - "NEWS_CREATE", - "NEWS_EDIT", - "REQUEST_CONSENTS", - "SCHOOL_NEWS_EDIT", - "START_MEETING", - "STUDENT_EDIT", - "STUDENT_LIST", - "STUDENT_SKIP_REGISTRATION", - "SUBMISSIONS_SCHOOL_VIEW", - "TASK_DASHBOARD_TEACHER_VIEW_V3", - "TEACHER_LIST", - "TEAM_CREATE", - "TEAM_EDIT", - "TEAM_INVITE_EXTERNAL", - "TEAM_INVITE_EXTERNAL", - "TOOL_CREATE", - "TOOL_EDIT", - "TOOL_NEW_VIEW", - "TOPIC_CREATE", - "TOPIC_EDIT", - "USERGROUP_CREATE", - "USERGROUP_EDIT", - "USER_CHANGE_OWN_NAME", - "USER_CREATE", - "ROOM_CREATE" - ], - "__v": 2 - }, - { - "_id": { - "$oid": "0000d186816abba584714c99" - }, - "name": "student", - "updatedAt": { - "$date": "2023-02-14T08:59:35.396Z" - }, - "createdAt": { - "$date": "2017-01-01T00:06:37.148Z" - }, - "roles": [ - { - "$oid": "0000d186816abba584714c95" - } - ], - "permissions": [ - "TASK_DASHBOARD_VIEW_V3", - "JOIN_MEETING", - "TEAM_CREATE", - "TEAM_EDIT", - "TOOL_CREATE_ETHERPAD" - ], - "__v": 0 - }, - { - "_id": { - "$oid": "0000d186816abba584714d01" - }, - "name": "helpdesk", - "updatedAt": { - "$date": "2022-05-20T13:33:18.077Z" - }, - "createdAt": { - "$date": "2017-01-01T00:06:37.148Z" - }, - "roles": [ - { - "$oid": "0000d186816abba584714c95" - } - ], - "permissions": [ - "HELPDESK_EDIT", - "HELPDESK_VIEW" - ], - "__v": 0 - }, - { - "_id": { - "$oid": "5bb5c190fb457b1c3c0c7e0f" - }, - "name": "teammember", - "updatedAt": { - "$date": "2023-05-05T07:39:11.036Z" - }, - "createdAt": { - "$date": "2017-01-01T00:06:37.148Z" - }, - "roles": [], - "permissions": [ - "NEWS_VIEW", - "UPLOAD_FILES", - "USE_LIBREOFFICE", - "USE_ROCKETCHAT", - "JOIN_MEETING" - ], - "__v": 0 - }, - { - "_id": { - "$oid": "5bb5c391fb457b1c3c0c7e10" - }, - "name": "teamexpert", - "updatedAt": { - "$date": "2023-05-05T07:39:11.040Z" - }, - "createdAt": { - "$date": "2017-01-01T00:06:37.148Z" - }, - "roles": [], - "permissions": [ - "CALENDAR_VIEW", - "NEWS_VIEW", - "UPLOAD_FILES", - "USE_LIBREOFFICE", - "USE_ROCKETCHAT", - "JOIN_MEETING" - ], - "__v": 0 - }, - { - "_id": { - "$oid": "5bb5c49efb457b1c3c0c7e11" - }, - "name": "teamleader", - "updatedAt": { - "$date": "2022-05-20T13:33:18.077Z" - }, - "createdAt": { - "$date": "2017-01-01T00:06:37.148Z" - }, - "roles": [ - { - "$oid": "5bb5c190fb457b1c3c0c7e0f" - } - ], - "permissions": [ - "ADD_SCHOOL_MEMBERS", - "CALENDAR_CREATE", - "CALENDAR_EDIT", - "CHANGE_TEAM_ROLES", - "CREATE_TOPICS_AND_TASKS", - "EDIT_ALL_FILES", - "NEWS_CREATE", - "START_MEETING" - ], - "__v": 0 - }, - { - "_id": { - "$oid": "5bb5c545fb457b1c3c0c7e13" - }, - "name": "teamadministrator", - "updatedAt": { - "$date": "2023-05-05T07:39:11.028Z" - }, - "createdAt": { - "$date": "2017-01-01T00:06:37.148Z" - }, - "roles": [ - { - "$oid": "5bb5c49efb457b1c3c0c7e11" - } - ], - "permissions": [ - "DEFAULT_FILE_PERMISSIONS", - "INVITE_ADMINISTRATORS", - "INVITE_EXPERTS", - "NEWS_EDIT", - "REMOVE_MEMBERS", - "RENAME_TEAM", - "LEAVE_TEAM" - ], - "__v": 0 - }, - { - "_id": { - "$oid": "5bb5c62bfb457b1c3c0c7e14" - }, - "name": "teamowner", - "updatedAt": { - "$date": "2022-05-20T13:33:18.077Z" - }, - "createdAt": { - "$date": "2017-01-01T00:06:37.148Z" - }, - "roles": [ - { - "$oid": "5bb5c545fb457b1c3c0c7e13" - } - ], - "permissions": [ - "DELETE_TEAM" - ], - "__v": 0 - }, - { - "_id": { - "$oid": "5bb5c62bfb457b1c3c0c7f00" - }, - "name": "courseStudent", - "updatedAt": { - "$date": "2023-03-01T10:54:36.810Z" - }, - "createdAt": { - "$date": "2019-09-09T12:00:00Z" - }, - "roles": [], - "permissions": [ - "COURSE_VIEW", - "TOOL_VIEW", - "NEWS_VIEW", - "ROLE_VIEW", - "USERGROUP_VIEW", - "COURSEGROUP_CREATE", - "COURSEGROUP_EDIT", - "LESSONS_VIEW", - "HOMEWORK_VIEW", - "COMMENTS_VIEW", - "COMMENTS_CREATE", - "COMMENTS_EDIT", - "SUBMISSIONS_VIEW", - "SUBMISSIONS_CREATE", - "SUBMISSIONS_EDIT", - "FILESTORAGE_VIEW", - "FILESTORAGE_EDIT", - "FILESTORAGE_CREATE", - "FILESTORAGE_REMOVE", - "CONTENT_VIEW", - "CONTENT_NON_OER_VIEW", - "JOIN_MEETING" - ], - "__v": 0 - }, - { - "_id": { - "$oid": "5bb5c62bfb457b1c3c0c7f01" - }, - "name": "courseTeacher", - "updatedAt": { - "$date": "2022-05-20T13:33:18.077Z" - }, - "createdAt": { - "$date": "2019-09-09T12:00:00Z" - }, - "roles": [ - { - "$oid": "5bb5c62bfb457b1c3c0c7f00" - } - ], - "permissions": [ - "COURSE_CREATE", - "COURSE_EDIT", - "COURSE_DELETE", - "HOMEWORK_CREATE", - "HOMEWORK_EDIT", - "LESSONS_CREATE", - "NEWS_CREATE", - "NEWS_EDIT", - "TOOL_CREATE", - "TOOL_EDIT", - "TOOL_NEW_VIEW", - "TOPIC_CREATE", - "TOPIC_EDIT", - "USER_CREATE", - "USERGROUP_CREATE", - "USERGROUP_EDIT", - "SCOPE_PERMISSIONS_VIEW", - "START_MEETING" - ], - "__v": 0 - }, - { - "_id": { - "$oid": "5bb5c62bfb457b1c3c0c7f02" - }, - "name": "courseSubstitutionTeacher", - "updatedAt": { - "$date": "2022-05-20T13:33:18.077Z" - }, - "createdAt": { - "$date": "2019-09-09T12:00:00Z" - }, - "roles": [ - { - "$oid": "5bb5c62bfb457b1c3c0c7f00" - } - ], - "permissions": [ - "HOMEWORK_CREATE", - "HOMEWORK_EDIT", - "LESSONS_CREATE", - "NEWS_CREATE", - "NEWS_EDIT", - "TOOL_CREATE", - "TOOL_EDIT", - "TOOL_NEW_VIEW", - "TOPIC_CREATE", - "TOPIC_EDIT", - "USER_CREATE", - "USERGROUP_CREATE", - "USERGROUP_EDIT", - "SCOPE_PERMISSIONS_VIEW", - "START_MEETING" - ], - "__v": 0 - }, - { - "_id": { - "$oid": "5bb5c62bfb457b1c3c0c7f03" - }, - "name": "courseAdministrator", - "updatedAt": { - "$date": "2022-05-20T13:33:18.077Z" - }, - "createdAt": { - "$date": "2019-09-09T12:00:00Z" - }, - "roles": [ - { - "$oid": "5bb5c62bfb457b1c3c0c7f01" - } - ], - "permissions": [], - "__v": 0 - }, - { - "_id": { - "$oid": "5bd0066a90a9ee0cb4947a9c" - }, - "name": "expert", - "updatedAt": { - "$date": "2022-05-20T13:33:18.077Z" - }, - "createdAt": { - "$date": "2017-01-01T00:06:37.148Z" - }, - "roles": [ - { - "$oid": "0000d186816abba584714c95" - } - ], - "permissions": [], - "__v": 0 - }, - { - "_id": { - "$oid": "6720b8621b61c9dd7ebd193b" - }, - "name": "roomviewer", - "permissions": [ - "ROOM_VIEW" - ] - }, - { - "_id": { - "$oid": "6720b8621b61c9dd7ebd193c" - }, - "name": "roomeditor", - "permissions": [ - "ROOM_VIEW", - "ROOM_EDIT" - ] - }, - { - "_id": { - "$oid": "674444262ba8186272dc8abb" - }, - "name": "guestStudent", - "permissions": [] - }, - { - "_id": { - "$oid": "674444262ba8186272dc8abc" - }, - "name": "guestTeacher", - "permissions": [] - }, - { - "_id": { - "$oid": "675abdb4e76b1142cd4c89e3" - }, - "name": "roomowner", - "permissions": [ - "ROOM_VIEW", - "ROOM_EDIT", - "ROOM_DELETE", - "ROOM_MEMBERS_ADD", - "ROOM_MEMBERS_REMOVE", - "ROOM_CHANGE_OWNER" - ] - }, - { - "_id": { - "$oid": "675abdb4e76b1142cd4c89e4" - }, - "name": "roomadmin", - "permissions": [ - "ROOM_VIEW", - "ROOM_EDIT", - "ROOM_MEMBERS_ADD", - "ROOM_MEMBERS_REMOVE" - ] - } -] +[{ + "_id": { + "$oid": "0000d186816abba584714c95" + }, + "name": "user", + "roles": [], + "updatedAt": { + "$date": "2023-10-18T05:58:52.716Z" + }, + "createdAt": { + "$date": "2017-01-01T00:06:37.148Z" + }, + "permissions": [ + "ACCOUNT_EDIT", + "BASE_VIEW", + "CALENDAR_CREATE", + "CALENDAR_EDIT", + "CALENDAR_VIEW", + "CLASS_VIEW", + "COMMENTS_CREATE", + "COMMENTS_EDIT", + "COMMENTS_VIEW", + "CONTENT_NON_OER_VIEW", + "CONTENT_VIEW", + "CONTEXT_TOOL_USER", + "COURSEGROUP_CREATE", + "COURSEGROUP_EDIT", + "COURSE_VIEW", + "DASHBOARD_VIEW", + "FEDERALSTATE_VIEW", + "FILESTORAGE_CREATE", + "FILESTORAGE_EDIT", + "FILESTORAGE_REMOVE", + "FILESTORAGE_VIEW", + "FILE_CREATE", + "FILE_DELETE", + "FILE_MOVE", + "FOLDER_CREATE", + "FOLDER_DELETE", + "GROUP_VIEW", + "HELPDESK_CREATE", + "HOMEWORK_VIEW", + "LERNSTORE_VIEW", + "LINK_CREATE", + "NEWS_VIEW", + "NEXTCLOUD_USER", + "NOTIFICATION_CREATE", + "NOTIFICATION_EDIT", + "NOTIFICATION_VIEW", + "PASSWORD_EDIT", + "PWRECOVERY_CREATE", + "PWRECOVERY_EDIT", + "PWRECOVERY_VIEW", + "RELEASES_VIEW", + "ROLE_VIEW", + "SUBMISSIONS_CREATE", + "SUBMISSIONS_EDIT", + "SUBMISSIONS_VIEW", + "TEAM_VIEW", + "TOOL_VIEW", + "TOPIC_VIEW" + ], + "__v": 0 +}, +{ + "_id": { + "$oid": "0000d186816abba584714c96" + }, + "name": "administrator", + "updatedAt": { + "$date": "2023-10-18T05:58:52.729Z" + }, + "createdAt": { + "$date": "2017-01-01T00:06:37.148Z" + }, + "roles": [ + { + "$oid": "0000d186816abba584714c95" + } + ], + "permissions": [ + "ACCOUNT_CREATE", + "ADMIN_VIEW", + "CLASS_CREATE", + "CLASS_EDIT", + "CLASS_FULL_ADMIN", + "CLASS_LIST", + "CLASS_REMOVE", + "COURSE_CREATE", + "COURSE_EDIT", + "COURSE_REMOVE", + "COURSE_ADMINISTRATION", + "DATASOURCES_CREATE", + "DATASOURCES_DELETE", + "DATASOURCES_EDIT", + "DATASOURCES_RUN", + "DATASOURCES_RUN_VIEW", + "DATASOURCES_VIEW", + "ENTERTHECLOUD_START", + "HELPDESK_EDIT", + "HELPDESK_VIEW", + "IMPORT_USER_MIGRATE", + "IMPORT_USER_UPDATE", + "IMPORT_USER_VIEW", + "NEWS_CREATE", + "NEWS_EDIT", + "REQUEST_CONSENTS", + "SCHOOL_EDIT", + "SCHOOL_NEWS_EDIT", + "SCHOOL_CHAT_MANAGE", + "SCHOOL_LOGO_MANAGE", + "SCHOOL_STUDENT_TEAM_MANAGE", + "STUDENT_CREATE", + "STUDENT_DELETE", + "STUDENT_EDIT", + "STUDENT_LIST", + "STUDENT_SKIP_REGISTRATION", + "SUBMISSIONS_SCHOOL_VIEW", + "SYNC_START", + "TEACHER_CREATE", + "TEACHER_DELETE", + "TEACHER_EDIT", + "TEACHER_LIST", + "TEACHER_SKIP_REGISTRATION", + "TEAM_INVITE_EXTERNAL", + "TEAM_CREATE", + "TEAM_EDIT", + "SCHOOL_PERMISSION_VIEW", + "SCHOOL_PERMISSION_CHANGE", + "SYSTEM_EDIT", + "SYSTEM_CREATE", + "SYSTEM_VIEW", + "SCHOOL_TOOL_ADMIN", + "USER_LOGIN_MIGRATION_ADMIN", + "START_MEETING", + "JOIN_MEETING", + "GROUP_LIST", + "GROUP_FULL_ADMIN", + "SCHOOL_SYSTEM_EDIT", + "SCHOOL_SYSTEM_VIEW", + "USER_CHANGE_OWN_NAME" + ], + "__v": 2 +}, +{ + "_id": { + "$oid": "0000d186816abba584714c97" + }, + "name": "superhero", + "updatedAt": { + "$date": "2023-10-18T05:58:52.729Z" + }, + "createdAt": { + "$date": "2017-01-01T00:06:37.148Z" + }, + "roles": [ + { + "$oid": "0000d186816abba584714c95" + } + ], + "permissions": [ + "ADMIN_EDIT", + "CLASS_LIST", + "CREATE_SUPPORT_JWT", + "DATASOURCES_CREATE", + "DATASOURCES_DELETE", + "DATASOURCES_EDIT", + "DATASOURCES_RUN", + "DATASOURCES_RUN_VIEW", + "DATASOURCES_VIEW", + "FEDERALSTATE_CREATE", + "FEDERALSTATE_EDIT", + "OAUTH_CLIENT_EDIT", + "OAUTH_CLIENT_VIEW", + "RELEASES_CREATE", + "RELEASES_EDIT", + "REQUEST_CONSENTS", + "ROLE_CREATE", + "ROLE_EDIT", + "SCHOOL_CREATE", + "SCHOOL_EDIT", + "STUDENT_CREATE", + "STUDENT_DELETE", + "STUDENT_EDIT", + "STUDENT_LIST", + "SUBMISSIONS_SCHOOL_VIEW", + "SYNC_START", + "TOOL_ADMIN", + "TEACHER_CREATE", + "TEACHER_DELETE", + "TEACHER_EDIT", + "TEACHER_LIST", + "TEAM_CREATE", + "TEAM_EDIT", + "TOOL_CREATE", + "TOOL_EDIT", + "YEARS_EDIT", + "GROUP_LIST", + "GROUP_FULL_ADMIN", + "USER_CHANGE_OWN_NAME", + "ACCOUNT_VIEW", + "ACCOUNT_DELETE", + "USER_LOGIN_MIGRATION_FORCE", + "USER_LOGIN_MIGRATION_ROLLBACK", + "INSTANCE_VIEW", + "SCHOOL_EDIT_ALL" + ], + "__v": 2 +}, +{ + "_id": { + "$oid": "0000d186816abba584714c98" + }, + "name": "teacher", + "updatedAt": { + "$date": "2024-11-12T16:35:53.763Z" + }, + "createdAt": { + "$date": "2017-01-01T00:06:37.148Z" + }, + "roles": [ + { + "$oid": "0000d186816abba584714c95" + } + ], + "permissions": [ + "ACCOUNT_CREATE", + "CLASS_CREATE", + "CLASS_EDIT", + "CLASS_LIST", + "CLASS_REMOVE", + "CONTEXT_TOOL_ADMIN", + "COURSE_CREATE", + "COURSE_EDIT", + "COURSE_REMOVE", + "ENTERTHECLOUD_START", + "GROUP_LIST", + "HOMEWORK_CREATE", + "HOMEWORK_EDIT", + "JOIN_MEETING", + "LESSONS_VIEW", + "NEWS_CREATE", + "NEWS_EDIT", + "REQUEST_CONSENTS", + "SCHOOL_NEWS_EDIT", + "START_MEETING", + "STUDENT_EDIT", + "STUDENT_LIST", + "STUDENT_SKIP_REGISTRATION", + "SUBMISSIONS_SCHOOL_VIEW", + "TASK_DASHBOARD_TEACHER_VIEW_V3", + "TEACHER_LIST", + "TEAM_CREATE", + "TEAM_EDIT", + "TEAM_INVITE_EXTERNAL", + "TEAM_INVITE_EXTERNAL", + "TOOL_CREATE", + "TOOL_EDIT", + "TOOL_NEW_VIEW", + "TOPIC_CREATE", + "TOPIC_EDIT", + "USERGROUP_CREATE", + "USERGROUP_EDIT", + "USER_CHANGE_OWN_NAME", + "USER_CREATE", + "ROOM_CREATE" + ], + "__v": 2 +}, +{ + "_id": { + "$oid": "0000d186816abba584714c99" + }, + "name": "student", + "updatedAt": { + "$date": "2023-02-14T08:59:35.396Z" + }, + "createdAt": { + "$date": "2017-01-01T00:06:37.148Z" + }, + "roles": [ + { + "$oid": "0000d186816abba584714c95" + } + ], + "permissions": [ + "TASK_DASHBOARD_VIEW_V3", + "JOIN_MEETING", + "TEAM_CREATE", + "TEAM_EDIT", + "TOOL_CREATE_ETHERPAD" + ], + "__v": 0 +}, +{ + "_id": { + "$oid": "0000d186816abba584714d01" + }, + "name": "helpdesk", + "updatedAt": { + "$date": "2022-05-20T13:33:18.077Z" + }, + "createdAt": { + "$date": "2017-01-01T00:06:37.148Z" + }, + "roles": [ + { + "$oid": "0000d186816abba584714c95" + } + ], + "permissions": [ + "HELPDESK_EDIT", + "HELPDESK_VIEW" + ], + "__v": 0 +}, +{ + "_id": { + "$oid": "5bb5c190fb457b1c3c0c7e0f" + }, + "name": "teammember", + "updatedAt": { + "$date": "2023-05-05T07:39:11.036Z" + }, + "createdAt": { + "$date": "2017-01-01T00:06:37.148Z" + }, + "roles": [], + "permissions": [ + "NEWS_VIEW", + "UPLOAD_FILES", + "USE_LIBREOFFICE", + "USE_ROCKETCHAT", + "JOIN_MEETING" + ], + "__v": 0 +}, +{ + "_id": { + "$oid": "5bb5c391fb457b1c3c0c7e10" + }, + "name": "teamexpert", + "updatedAt": { + "$date": "2023-05-05T07:39:11.040Z" + }, + "createdAt": { + "$date": "2017-01-01T00:06:37.148Z" + }, + "roles": [], + "permissions": [ + "CALENDAR_VIEW", + "NEWS_VIEW", + "UPLOAD_FILES", + "USE_LIBREOFFICE", + "USE_ROCKETCHAT", + "JOIN_MEETING" + ], + "__v": 0 +}, +{ + "_id": { + "$oid": "5bb5c49efb457b1c3c0c7e11" + }, + "name": "teamleader", + "updatedAt": { + "$date": "2022-05-20T13:33:18.077Z" + }, + "createdAt": { + "$date": "2017-01-01T00:06:37.148Z" + }, + "roles": [ + { + "$oid": "5bb5c190fb457b1c3c0c7e0f" + } + ], + "permissions": [ + "ADD_SCHOOL_MEMBERS", + "CALENDAR_CREATE", + "CALENDAR_EDIT", + "CHANGE_TEAM_ROLES", + "CREATE_TOPICS_AND_TASKS", + "EDIT_ALL_FILES", + "NEWS_CREATE", + "START_MEETING" + ], + "__v": 0 +}, +{ + "_id": { + "$oid": "5bb5c545fb457b1c3c0c7e13" + }, + "name": "teamadministrator", + "updatedAt": { + "$date": "2023-05-05T07:39:11.028Z" + }, + "createdAt": { + "$date": "2017-01-01T00:06:37.148Z" + }, + "roles": [ + { + "$oid": "5bb5c49efb457b1c3c0c7e11" + } + ], + "permissions": [ + "DEFAULT_FILE_PERMISSIONS", + "INVITE_ADMINISTRATORS", + "INVITE_EXPERTS", + "NEWS_EDIT", + "REMOVE_MEMBERS", + "RENAME_TEAM", + "LEAVE_TEAM" + ], + "__v": 0 +}, +{ + "_id": { + "$oid": "5bb5c62bfb457b1c3c0c7e14" + }, + "name": "teamowner", + "updatedAt": { + "$date": "2022-05-20T13:33:18.077Z" + }, + "createdAt": { + "$date": "2017-01-01T00:06:37.148Z" + }, + "roles": [ + { + "$oid": "5bb5c545fb457b1c3c0c7e13" + } + ], + "permissions": [ + "DELETE_TEAM" + ], + "__v": 0 +}, +{ + "_id": { + "$oid": "5bb5c62bfb457b1c3c0c7f00" + }, + "name": "courseStudent", + "updatedAt": { + "$date": "2023-03-01T10:54:36.810Z" + }, + "createdAt": { + "$date": "2019-09-09T12:00:00.000Z" + }, + "roles": [], + "permissions": [ + "COURSE_VIEW", + "TOOL_VIEW", + "NEWS_VIEW", + "ROLE_VIEW", + "USERGROUP_VIEW", + "COURSEGROUP_CREATE", + "COURSEGROUP_EDIT", + "LESSONS_VIEW", + "HOMEWORK_VIEW", + "COMMENTS_VIEW", + "COMMENTS_CREATE", + "COMMENTS_EDIT", + "SUBMISSIONS_VIEW", + "SUBMISSIONS_CREATE", + "SUBMISSIONS_EDIT", + "FILESTORAGE_VIEW", + "FILESTORAGE_EDIT", + "FILESTORAGE_CREATE", + "FILESTORAGE_REMOVE", + "CONTENT_VIEW", + "CONTENT_NON_OER_VIEW", + "JOIN_MEETING" + ], + "__v": 0 +}, +{ + "_id": { + "$oid": "5bb5c62bfb457b1c3c0c7f01" + }, + "name": "courseTeacher", + "updatedAt": { + "$date": "2022-05-20T13:33:18.077Z" + }, + "createdAt": { + "$date": "2019-09-09T12:00:00.000Z" + }, + "roles": [ + { + "$oid": "5bb5c62bfb457b1c3c0c7f00" + } + ], + "permissions": [ + "COURSE_CREATE", + "COURSE_EDIT", + "COURSE_DELETE", + "HOMEWORK_CREATE", + "HOMEWORK_EDIT", + "LESSONS_CREATE", + "NEWS_CREATE", + "NEWS_EDIT", + "TOOL_CREATE", + "TOOL_EDIT", + "TOOL_NEW_VIEW", + "TOPIC_CREATE", + "TOPIC_EDIT", + "USER_CREATE", + "USERGROUP_CREATE", + "USERGROUP_EDIT", + "SCOPE_PERMISSIONS_VIEW", + "START_MEETING" + ], + "__v": 0 +}, +{ + "_id": { + "$oid": "5bb5c62bfb457b1c3c0c7f02" + }, + "name": "courseSubstitutionTeacher", + "updatedAt": { + "$date": "2022-05-20T13:33:18.077Z" + }, + "createdAt": { + "$date": "2019-09-09T12:00:00.000Z" + }, + "roles": [ + { + "$oid": "5bb5c62bfb457b1c3c0c7f00" + } + ], + "permissions": [ + "HOMEWORK_CREATE", + "HOMEWORK_EDIT", + "LESSONS_CREATE", + "NEWS_CREATE", + "NEWS_EDIT", + "TOOL_CREATE", + "TOOL_EDIT", + "TOOL_NEW_VIEW", + "TOPIC_CREATE", + "TOPIC_EDIT", + "USER_CREATE", + "USERGROUP_CREATE", + "USERGROUP_EDIT", + "SCOPE_PERMISSIONS_VIEW", + "START_MEETING" + ], + "__v": 0 +}, +{ + "_id": { + "$oid": "5bb5c62bfb457b1c3c0c7f03" + }, + "name": "courseAdministrator", + "updatedAt": { + "$date": "2022-05-20T13:33:18.077Z" + }, + "createdAt": { + "$date": "2019-09-09T12:00:00.000Z" + }, + "roles": [ + { + "$oid": "5bb5c62bfb457b1c3c0c7f01" + } + ], + "permissions": [], + "__v": 0 +}, +{ + "_id": { + "$oid": "5bd0066a90a9ee0cb4947a9c" + }, + "name": "expert", + "updatedAt": { + "$date": "2022-05-20T13:33:18.077Z" + }, + "createdAt": { + "$date": "2017-01-01T00:06:37.148Z" + }, + "roles": [ + { + "$oid": "0000d186816abba584714c95" + } + ], + "permissions": [], + "__v": 0 +}, +{ + "_id": { + "$oid": "6720b8621b61c9dd7ebd193b" + }, + "name": "roomviewer", + "permissions": [ + "ROOM_VIEW" + ] +}, +{ + "_id": { + "$oid": "6720b8621b61c9dd7ebd193c" + }, + "name": "roomeditor", + "permissions": [ + "ROOM_VIEW", + "ROOM_EDIT" + ] +}, +{ + "_id": { + "$oid": "674444262ba8186272dc8abb" + }, + "name": "guestStudent", + "permissions": [] +}, +{ + "_id": { + "$oid": "674444262ba8186272dc8abc" + }, + "name": "guestTeacher", + "permissions": [] +}, +{ + "_id": { + "$oid": "675abdb4e76b1142cd4c89e3" + }, + "name": "roomowner", + "permissions": [ + "ROOM_VIEW", + "ROOM_EDIT", + "ROOM_DELETE", + "ROOM_MEMBERS_ADD", + "ROOM_MEMBERS_REMOVE", + "ROOM_CHANGE_OWNER", + "ROOM_MEMBERS_CHANGE_ROLE" + ] +}, +{ + "_id": { + "$oid": "675abdb4e76b1142cd4c89e4" + }, + "name": "roomadmin", + "permissions": [ + "ROOM_VIEW", + "ROOM_EDIT", + "ROOM_MEMBERS_ADD", + "ROOM_MEMBERS_REMOVE", + "ROOM_MEMBERS_CHANGE_ROLE" + ] +}] \ No newline at end of file From e25dadba0eab73d36c9f7cb11e9a095eb3a71f05 Mon Sep 17 00:00:00 2001 From: Thomas Feldtkeller Date: Mon, 20 Jan 2025 14:45:17 +0100 Subject: [PATCH 07/16] update imports --- .../api/test/room-change-role.api.spec.ts | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts b/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts index 8769371cd52..b0cdb19d7a1 100644 --- a/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts +++ b/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts @@ -1,19 +1,17 @@ import { EntityManager } from '@mikro-orm/mongodb'; +import { GroupEntityTypes } from '@modules/group/entity/group.entity'; +import { ServerTestModule, serverConfig, type ServerConfig } from '@modules/server'; import { HttpStatus, INestApplication } from '@nestjs/common'; import { Test } from '@nestjs/testing'; import { RoleName } from '@shared/domain/interface/rolename.enum'; -import { - TestApiClient, - UserAndAccountTestFactory, - cleanupCollections, - groupEntityFactory, - roleFactory, - schoolEntityFactory, - userFactory, -} from '@shared/testing'; -import { GroupEntityTypes } from '@modules/group/entity/group.entity'; -import { roomMembershipEntityFactory } from '@src/modules/room-membership/testing/room-membership-entity.factory'; -import { ServerTestModule, serverConfig, type ServerConfig } from '@modules/server'; +import { roomMembershipEntityFactory } from '@modules/room-membership/testing/room-membership-entity.factory'; +import { groupEntityFactory } from '@testing/factory/group-entity.factory'; +import { roleFactory } from '@testing/factory/role.factory'; +import { schoolEntityFactory } from '@testing/factory/school-entity.factory'; +import { UserAndAccountTestFactory } from '@testing/factory/user-and-account.test.factory'; +import { userFactory } from '@testing/factory/user.factory'; +import { cleanupCollections } from '@testing/cleanup-collections'; +import { TestApiClient } from '@testing/test-api-client'; import { roomEntityFactory } from '../../testing/room-entity.factory'; import { RoomRolesTestFactory } from '../../testing/room-roles.test.factory'; import { RoomMemberListResponse } from '../dto/response/room-member.response'; From 3410be1dd9d6401db9f12cf536c386cc42c0c964 Mon Sep 17 00:00:00 2001 From: NFriedo <69233063+NFriedo@users.noreply.github.com> Date: Mon, 20 Jan 2025 14:45:10 +0100 Subject: [PATCH 08/16] BC-8545 - add school role to RoomMemberList (#5441) Co-authored-by: Thomas Feldtkeller --- .../dto/response/room-member-list.response.ts | 11 +++++++ .../api/dto/response/room-member.response.ts | 25 ++++++--------- .../src/modules/room/api/room.controller.ts | 3 +- apps/server/src/modules/room/api/room.uc.ts | 3 +- .../room/api/test/room-members.api.spec.ts | 32 +++++++++++++++---- 5 files changed, 50 insertions(+), 24 deletions(-) create mode 100644 apps/server/src/modules/room/api/dto/response/room-member-list.response.ts diff --git a/apps/server/src/modules/room/api/dto/response/room-member-list.response.ts b/apps/server/src/modules/room/api/dto/response/room-member-list.response.ts new file mode 100644 index 00000000000..b474102953d --- /dev/null +++ b/apps/server/src/modules/room/api/dto/response/room-member-list.response.ts @@ -0,0 +1,11 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { RoomMemberResponse } from './room-member.response'; + +export class RoomMemberListResponse { + constructor(data: RoomMemberResponse[]) { + this.data = data; + } + + @ApiProperty({ type: [RoomMemberResponse] }) + public data: RoomMemberResponse[]; +} diff --git a/apps/server/src/modules/room/api/dto/response/room-member.response.ts b/apps/server/src/modules/room/api/dto/response/room-member.response.ts index de1ba51e01d..a0d8275d11d 100644 --- a/apps/server/src/modules/room/api/dto/response/room-member.response.ts +++ b/apps/server/src/modules/room/api/dto/response/room-member.response.ts @@ -3,34 +3,29 @@ import { RoleName } from '@shared/domain/interface'; export class RoomMemberResponse { @ApiProperty() - firstName!: string; + public firstName!: string; @ApiProperty() - lastName!: string; + public lastName!: string; @ApiProperty() - roleName!: RoleName; + public roomRoleName!: RoleName; @ApiProperty() - schoolName!: string; + public schoolRoleName!: RoleName; @ApiProperty() - userId!: string; + public schoolName!: string; + + @ApiProperty() + public userId!: string; constructor(props: RoomMemberResponse) { this.userId = props.userId; this.firstName = props.firstName; this.lastName = props.lastName; - this.roleName = props.roleName; + this.roomRoleName = props.roomRoleName; + this.schoolRoleName = props.schoolRoleName; this.schoolName = props.schoolName; } } - -export class RoomMemberListResponse { - constructor(data: RoomMemberResponse[]) { - this.data = data; - } - - @ApiProperty({ type: [RoomMemberResponse] }) - data: RoomMemberResponse[]; -} diff --git a/apps/server/src/modules/room/api/room.controller.ts b/apps/server/src/modules/room/api/room.controller.ts index f2c3d872e35..3bcde0d3cfd 100644 --- a/apps/server/src/modules/room/api/room.controller.ts +++ b/apps/server/src/modules/room/api/room.controller.ts @@ -30,10 +30,9 @@ import { RoomBoardListResponse } from './dto/response/room-board-list.response'; import { RoomDetailsResponse } from './dto/response/room-details.response'; import { RoomItemResponse } from './dto/response/room-item.response'; import { RoomListResponse } from './dto/response/room-list.response'; -import { RoomMemberListResponse } from './dto/response/room-member.response'; import { RoomMapper } from './mapper/room.mapper'; import { RoomUc } from './room.uc'; -import { ChangeRoomRoleBodyParams } from './dto/request/change-room-role.body.params'; +import { RoomMemberListResponse } from './dto/response/room-member-list.response'; @ApiTags('Room') @JwtAuthentication() diff --git a/apps/server/src/modules/room/api/room.uc.ts b/apps/server/src/modules/room/api/room.uc.ts index bf4f105210b..64353275a7c 100644 --- a/apps/server/src/modules/room/api/room.uc.ts +++ b/apps/server/src/modules/room/api/room.uc.ts @@ -131,7 +131,8 @@ export class RoomUc { userId: member.userId, firstName: user.firstName, lastName: user.lastName, - roleName: member.roles[0].name, + roomRoleName: member.roles[0].name, + schoolRoleName: user.roles[0].name, schoolName: user.schoolName ?? '', }); } diff --git a/apps/server/src/modules/room/api/test/room-members.api.spec.ts b/apps/server/src/modules/room/api/test/room-members.api.spec.ts index 9ae1c37305d..e9fc66bb83d 100644 --- a/apps/server/src/modules/room/api/test/room-members.api.spec.ts +++ b/apps/server/src/modules/room/api/test/room-members.api.spec.ts @@ -14,7 +14,7 @@ import { UserAndAccountTestFactory } from '@testing/factory/user-and-account.tes import { userFactory } from '@testing/factory/user.factory'; import { TestApiClient } from '@testing/test-api-client'; import { roomEntityFactory } from '../../testing/room-entity.factory'; -import { RoomMemberListResponse } from '../dto/response/room-member.response'; +import { RoomMemberListResponse } from '../dto/response/room-member-list.response'; describe('Room Controller (API)', () => { let app: INestApplication; @@ -57,8 +57,10 @@ describe('Room Controller (API)', () => { name: RoleName.ROOMVIEWER, permissions: [Permission.ROOM_VIEW], }); - const students = userFactory.buildList(2, { school }); - const teachers = userFactory.buildList(2, { school }); + const teacherRole = teacherUser.roles[0]; + const studentRole = roleFactory.buildWithId({ name: RoleName.STUDENT }); + const students = userFactory.buildList(2, { school, roles: [studentRole] }); + const teachers = userFactory.buildList(2, { school, roles: [teacherRole] }); const userGroupEntity = groupEntityFactory.buildWithId({ users: [ { role: editRole, user: teacherUser }, @@ -138,12 +140,30 @@ describe('Room Controller (API)', () => { expect(response.status).toBe(HttpStatus.OK); const body = response.body as RoomMemberListResponse; expect(body.data.length).toEqual(5); - expect(body.data).toContainEqual(expect.objectContaining({ userId: teacherUser.id, roleName: editRole.name })); + expect(body.data).toContainEqual( + expect.objectContaining({ + userId: teacherUser.id, + roomRoleName: editRole.name, + schoolRoleName: RoleName.TEACHER, + }) + ); students.forEach((student) => { - expect(body.data).toContainEqual(expect.objectContaining({ userId: student.id, roleName: viewerRole.name })); + expect(body.data).toContainEqual( + expect.objectContaining({ + userId: student.id, + roomRoleName: viewerRole.name, + schoolRoleName: RoleName.STUDENT, + }) + ); }); teachers.forEach((teacher) => { - expect(body.data).toContainEqual(expect.objectContaining({ userId: teacher.id, roleName: editRole.name })); + expect(body.data).toContainEqual( + expect.objectContaining({ + userId: teacher.id, + roomRoleName: editRole.name, + schoolRoleName: RoleName.TEACHER, + }) + ); }); }); }); From 1e50fdf11bb8c95c107896b043ad1113251a98d0 Mon Sep 17 00:00:00 2001 From: Thomas Feldtkeller Date: Mon, 20 Jan 2025 15:24:58 +0100 Subject: [PATCH 09/16] fix build --- apps/server/src/modules/room/api/room.controller.ts | 1 + apps/server/src/modules/room/testing/room-roles.test.factory.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/server/src/modules/room/api/room.controller.ts b/apps/server/src/modules/room/api/room.controller.ts index 3bcde0d3cfd..02665a8ebbe 100644 --- a/apps/server/src/modules/room/api/room.controller.ts +++ b/apps/server/src/modules/room/api/room.controller.ts @@ -33,6 +33,7 @@ import { RoomListResponse } from './dto/response/room-list.response'; import { RoomMapper } from './mapper/room.mapper'; import { RoomUc } from './room.uc'; import { RoomMemberListResponse } from './dto/response/room-member-list.response'; +import { ChangeRoomRoleBodyParams } from './dto/request/change-room-role.body.params'; @ApiTags('Room') @JwtAuthentication() diff --git a/apps/server/src/modules/room/testing/room-roles.test.factory.ts b/apps/server/src/modules/room/testing/room-roles.test.factory.ts index f59f0938c8d..e5ac8c64c19 100644 --- a/apps/server/src/modules/room/testing/room-roles.test.factory.ts +++ b/apps/server/src/modules/room/testing/room-roles.test.factory.ts @@ -1,6 +1,6 @@ import { Role } from '@shared/domain/entity'; import { Permission, RoleName } from '@shared/domain/interface'; -import { roleFactory } from '@shared/testing'; +import { roleFactory } from '@src/testing/factory/role.factory'; export class RoomRolesTestFactory { public static createRoomRoles(): { From 9d46859843a1bddc914be0da12fe01e21e9cad4e Mon Sep 17 00:00:00 2001 From: Thomas Feldtkeller Date: Tue, 21 Jan 2025 09:45:07 +0100 Subject: [PATCH 10/16] test build fix --- .../src/modules/room/api/test/room-change-role.api.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts b/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts index b0cdb19d7a1..6ffebc0e364 100644 --- a/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts +++ b/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts @@ -14,7 +14,7 @@ import { cleanupCollections } from '@testing/cleanup-collections'; import { TestApiClient } from '@testing/test-api-client'; import { roomEntityFactory } from '../../testing/room-entity.factory'; import { RoomRolesTestFactory } from '../../testing/room-roles.test.factory'; -import { RoomMemberListResponse } from '../dto/response/room-member.response'; +import { RoomMemberListResponse } from '../dto/response/room-member-list.response'; describe('Room Controller (API)', () => { let app: INestApplication; From 7d311d248505ef53b51c58ee01f7af307e883087 Mon Sep 17 00:00:00 2001 From: Thomas Feldtkeller Date: Tue, 21 Jan 2025 10:26:01 +0100 Subject: [PATCH 11/16] fix tests after mergeconflict --- .../modules/room/api/test/room-change-role.api.spec.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts b/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts index 6ffebc0e364..b35c66e52c0 100644 --- a/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts +++ b/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts @@ -38,7 +38,9 @@ describe('Room Controller (API)', () => { beforeEach(async () => { await cleanupCollections(em); config.FEATURE_ROOMS_ENABLED = true; + await em.clearCache('roles-cache-byname-roomeditor'); + await em.clearCache('roles-cache-byname-teacher'); }); afterAll(async () => { @@ -49,7 +51,8 @@ describe('Room Controller (API)', () => { const setupRoomWithMembers = async () => { const school = schoolEntityFactory.buildWithId(); const { teacherAccount, teacherUser: owner } = UserAndAccountTestFactory.buildTeacher({ school }); - const targetUser = userFactory.buildWithId({ school: owner.school }); + const teacherRole = owner.roles[0]; + const targetUser = userFactory.buildWithId({ school: owner.school, roles: [teacherRole] }); const room = roomEntityFactory.buildWithId({ schoolId: owner.school.id }); const teacherGuestRole = roleFactory.buildWithId({ name: RoleName.GUESTTEACHER }); const studentGuestRole = roleFactory.buildWithId({ name: RoleName.GUESTSTUDENT }); @@ -74,6 +77,7 @@ describe('Room Controller (API)', () => { roomMemberships, teacherAccount, owner, + teacherRole, teacherGuestRole, studentGuestRole, roomEditorRole, @@ -161,7 +165,9 @@ describe('Room Controller (API)', () => { const updatedRoomMembership = await loggedInClient.get(`/${room.id}/members`); const body = updatedRoomMembership.body as RoomMemberListResponse; expect(body.data).toEqual( - expect.arrayContaining([expect.objectContaining({ userId: targetUser.id, roleName: RoleName.ROOMEDITOR })]) + expect.arrayContaining([ + expect.objectContaining({ userId: targetUser.id, roomRoleName: RoleName.ROOMEDITOR }), + ]) ); }); From d4c8423d519db73675a5cb062dc072b9cbdfbf09 Mon Sep 17 00:00:00 2001 From: Thomas Feldtkeller Date: Tue, 21 Jan 2025 15:30:32 +0100 Subject: [PATCH 12/16] update import --- apps/server/src/modules/room/testing/room-roles.test.factory.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/server/src/modules/room/testing/room-roles.test.factory.ts b/apps/server/src/modules/room/testing/room-roles.test.factory.ts index e5ac8c64c19..73f789b935d 100644 --- a/apps/server/src/modules/room/testing/room-roles.test.factory.ts +++ b/apps/server/src/modules/room/testing/room-roles.test.factory.ts @@ -1,6 +1,6 @@ import { Role } from '@shared/domain/entity'; import { Permission, RoleName } from '@shared/domain/interface'; -import { roleFactory } from '@src/testing/factory/role.factory'; +import { roleFactory } from '@testing/factory/role.factory'; export class RoomRolesTestFactory { public static createRoomRoles(): { From 2669e2fdcd07b0bb43133fa65836744021b4ed16 Mon Sep 17 00:00:00 2001 From: Thomas Feldtkeller Date: Wed, 22 Jan 2025 13:50:21 +0100 Subject: [PATCH 13/16] solve review comments --- .../src/migrations/mikro-orm/Migration20250120131625.ts | 8 ++++---- .../room-membership/service/room-membership.service.ts | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/server/src/migrations/mikro-orm/Migration20250120131625.ts b/apps/server/src/migrations/mikro-orm/Migration20250120131625.ts index c8afd9a657b..3555fcc5674 100644 --- a/apps/server/src/migrations/mikro-orm/Migration20250120131625.ts +++ b/apps/server/src/migrations/mikro-orm/Migration20250120131625.ts @@ -19,7 +19,7 @@ export class Migration20250120131625 extends Migration { console.info('Permissions ROOM_MEMBERS_CHANGE_ROLE added to role roomowner.'); } - const roomEditorRoleUpdate = await this.getCollection('roles').updateOne( + const roomAdminRoleUpdate = await this.getCollection('roles').updateOne( { name: 'roomadmin' }, { $addToSet: { @@ -30,7 +30,7 @@ export class Migration20250120131625 extends Migration { } ); - if (roomEditorRoleUpdate.modifiedCount > 0) { + if (roomAdminRoleUpdate.modifiedCount > 0) { console.info('Permissions ROOM_MEMBERS_CHANGE_ROLE added to role roomadmin.'); } } @@ -51,7 +51,7 @@ export class Migration20250120131625 extends Migration { console.info('Rollback: Permission ROOM_CREATE removed from role roomowner.'); } - const roomEditorRoleUpdate = await this.getCollection('roles').updateOne( + const roomAdminRoleUpdate = await this.getCollection('roles').updateOne( { name: 'roomadmin' }, { $pull: { @@ -62,7 +62,7 @@ export class Migration20250120131625 extends Migration { } ); - if (roomEditorRoleUpdate.modifiedCount > 0) { + if (roomAdminRoleUpdate.modifiedCount > 0) { console.info('Rollback: Permission ROOM_DELETE removed from role roomadmin.'); } } diff --git a/apps/server/src/modules/room-membership/service/room-membership.service.ts b/apps/server/src/modules/room-membership/service/room-membership.service.ts index 5a74b113ab7..6a8ac9113f7 100644 --- a/apps/server/src/modules/room-membership/service/room-membership.service.ts +++ b/apps/server/src/modules/room-membership/service/room-membership.service.ts @@ -92,7 +92,7 @@ export class RoomMembershipService { public async removeMembersFromRoom(roomId: EntityId, userIds: EntityId[]): Promise { const roomMembership = await this.roomMembershipRepo.findByRoomId(roomId); if (roomMembership === null) { - throw new BadRequestException('Room member not found'); + throw new BadRequestException('Room membership not found'); } const group = await this.groupService.findById(roomMembership.userGroupId); @@ -106,7 +106,7 @@ export class RoomMembershipService { public async changeRoleOfRoomMembers(roomId: EntityId, userIds: EntityId[], roleName: RoleName): Promise { const roomMembership = await this.roomMembershipRepo.findByRoomId(roomId); if (roomMembership === null) { - throw new BadRequestException('Room member not found'); + throw new BadRequestException('Room membership not found'); } const group = await this.groupService.findById(roomMembership.userGroupId); From 280603769586247996a47b7d31195236c2a383a6 Mon Sep 17 00:00:00 2001 From: bergatco <129839305+bergatco@users.noreply.github.com> Date: Thu, 23 Jan 2025 10:13:30 +0100 Subject: [PATCH 14/16] BC-8508 - Remove exports from shared/*/index.ts (#5454) --- apps/server/src/core/core.config.ts | 2 +- .../error/domain/domain-error-handler.spec.ts | 8 ++--- .../dto/api-validation-error.response.ts | 2 +- .../error/filter/global-error.filter.spec.ts | 6 ++-- .../core/error/filter/global-error.filter.ts | 2 +- .../error/loggable/error.loggable.spec.ts | 4 +-- .../src/core/error/loggable/error.loggable.ts | 2 +- .../src/core/error/utils/error.utils.spec.ts | 2 +- .../src/core/error/utils/error.utils.ts | 2 +- .../core/interceptor/interceptor.module.ts | 2 +- .../validation/pipe/global-validation.pipe.ts | 2 +- .../decorator/jwt-auth.decorator.ts | 2 +- .../auth-guard/mapper/current-user.factory.ts | 2 +- .../infra/auth-guard/strategy/jwt.strategy.ts | 2 +- .../auth-guard/strategy/ws-jwt.strategy.ts | 2 +- .../authorization-client.adapter.ts | 2 +- .../nextcloud/nextcloud.strategy.spec.ts | 4 +-- .../etherpad-client.adapter.ts | 2 +- .../mappers/etherpad-response.mapper.ts | 4 +-- ...ycloak-identity-management.service.spec.ts | 2 +- .../keycloak-identity-management.service.ts | 2 +- .../src/infra/s3-client/s3-client.adapter.ts | 4 +-- .../schulconnex-policies-info-response.ts | 2 +- ...tsp-system-not-found.loggable-exception.ts | 4 +-- .../src/modules/account/account-api.module.ts | 6 ++-- .../src/modules/account/account.module.ts | 4 +-- .../modules/account/api/account.controller.ts | 2 +- .../modules/account/api/account.uc.spec.ts | 2 +- .../dto/param/account-by-id.body.params.ts | 5 +-- .../dto/param/account-search.query.params.ts | 3 +- .../api/dto/param/patch-my-account.params.ts | 3 +- .../api/dto/param/patch-my-password.params.ts | 2 +- .../account/api/dto/resolved-account.dto.ts | 2 +- .../response/account-search-list.response.ts | 2 +- .../services/account-db.service.spec.ts | 2 +- .../domain/services/account-db.service.ts | 2 +- .../services/account-idm.service.spec.ts | 2 +- .../domain/services/account-idm.service.ts | 2 +- .../account.service.integration.spec.ts | 4 +-- .../domain/services/account.service.spec.ts | 11 +++++-- .../domain/services/account.service.ts | 7 +++- .../repo/micro-orm/scope/account-scope.ts | 2 +- .../authentication-test.module.ts | 9 ++--- .../authentication/authentication.module.ts | 7 ++-- .../controllers/login.controller.ts | 2 +- .../errors/brute-force.error.ts | 2 +- .../errors/ldap-connection.error.ts | 2 +- .../account-not-found.loggable-exception.ts | 4 +-- .../school-in-migration.loggable-exception.ts | 4 +-- .../user-account-deactivated-exception.ts | 4 +-- ...not-be-authenticated.loggable.exception.ts | 4 +-- .../mapper/current-user.mapper.spec.ts | 2 +- .../mapper/current-user.mapper.ts | 2 +- .../strategy/ldap.strategy.spec.ts | 5 +-- .../authentication/strategy/ldap.strategy.ts | 9 ++--- .../strategy/local.strategy.spec.ts | 2 +- .../authentication/strategy/local.strategy.ts | 4 +-- .../api/authorization-reference.controller.ts | 2 +- .../authorization-reference.module.ts | 11 +++++-- .../domain/reference.loader.spec.ts | 7 +++- .../domain/reference.loader.ts | 7 +++- .../authorization/authorization.module.ts | 6 ++-- .../service/authorization.service.spec.ts | 2 +- .../domain/service/authorization.service.ts | 2 +- .../board/board-collaboration.app.module.ts | 2 +- .../board-update-title-in-course.api.spec.ts | 2 +- .../board-update-title-in-room.api.spec.ts | 2 +- .../controller/board-submission.controller.ts | 2 +- .../board/controller/board.controller.ts | 3 +- .../board/controller/card.controller.ts | 2 +- .../board/controller/column.controller.ts | 2 +- .../controller/dto/board/board.response.ts | 2 +- .../controller/dto/board/column.response.ts | 2 +- .../dto/board/create-board.body.params.ts | 4 +-- .../dto/board/rename.body.params.ts | 2 +- .../board/update-board-title.body.params.ts | 2 +- .../controller/dto/card/card.response.ts | 2 +- .../dto/element/file-element.response.ts | 2 +- .../board/controller/element.controller.ts | 2 +- .../media-board/dto/media-line.response.ts | 2 +- .../media-board/media-board.controller.ts | 2 +- .../media-board/media-element.controller.ts | 2 +- .../media-board/media-line.controller.ts | 2 +- .../content-element-update.service.ts | 2 +- .../collaborative-storage.module.ts | 10 +++--- .../collaborative-storage.service.spec.ts | 4 +-- .../services/collaborative-storage.service.ts | 4 +-- .../collaborative-text-editor.controller.ts | 2 +- .../common-cartridge-api.app.module.ts | 2 +- .../board-client/board-client.adapter.ts | 4 +-- .../card-client/card-client.adapter.ts | 4 +-- .../lesson-client/lesson-client.adapter.ts | 2 +- .../room-client/room-client.adapter.ts | 6 ++-- .../common-cartridge-resource-factory.ts | 2 +- .../deletion-console.app.module.ts | 2 +- .../api/uc/deletion-request.uc.spec.ts | 4 +-- .../service/deletion-request.service.spec.ts | 2 +- .../api-test/files-security.api.spec.ts | 2 +- .../files-storage-copy-files.api.spec.ts | 2 +- .../files-storage-delete-files.api.spec.ts | 2 +- .../files-storage-download-upload.api.spec.ts | 2 +- .../files-storage-list-files.api.spec.ts | 2 +- .../files-storage-preview.api.spec.ts | 2 +- .../files-storage-rename-file.api.spec.ts | 2 +- .../files-storage-restore-files.api.spec.ts | 2 +- .../controller/dto/file-storage.params.ts | 2 +- .../controller/dto/file-storage.response.ts | 3 +- .../controller/files-storage.controller.ts | 5 +-- .../files-preview-amqp.app.module.ts | 2 +- .../files-storage-amqp.app.module.ts | 2 +- .../files-storage-api.app.module.ts | 2 +- .../files-storage/repo/filerecord-scope.ts | 2 +- .../files-storage/repo/filerecord.repo.ts | 2 +- .../src/modules/files/uc/delete-files.uc.ts | 4 +-- .../fwu-learning-contents-test.module.ts | 2 +- .../fwu-learning-contents.app.module.ts | 2 +- .../dto/request/class-sort-params.ts | 2 +- .../dto/request/group-pagination.params.ts | 2 +- .../controller/dto/request/group-params.ts | 2 +- .../class-info-search-list.response.ts | 2 +- .../dto/response/group-list.response.ts | 2 +- .../group/controller/group.controller.ts | 2 +- .../group/domain/group-aggregate.scope.ts | 5 +-- .../src/modules/group/repo/group.repo.ts | 4 +-- .../src/modules/group/repo/group.scope.ts | 2 +- .../src/modules/group/uc/class-group.uc.ts | 2 +- .../controller/dto/h5p-editor.params.ts | 2 +- .../controller/h5p-editor.controller.ts | 2 +- .../h5p-editor/h5p-editor.app.module.ts | 2 +- .../h5p-editor/uc/h5p-get-editor.uc.spec.ts | 2 +- .../h5p-library-management.app.module.ts | 2 +- .../idp-console/idp-console.app.module.ts | 2 +- .../internal-server-test.module.ts | 2 +- .../internal-server.app.module.ts | 2 +- .../controller/api-test/dashboard.api.spec.ts | 2 +- .../controller/course-info.controller.ts | 4 +-- .../controller/course-rooms.controller.ts | 8 ++--- .../learnroom/controller/course.controller.ts | 2 +- .../dto/course-metadata.response.ts | 2 +- .../controller/dto/dashboard.response.ts | 2 +- .../controller/dto/patch-group.params.ts | 2 +- .../dto/request/course-sort-params.ts | 2 +- .../dto/response/course-info-list.response.ts | 2 +- .../board-column-board.response.ts | 2 +- .../board-lesson.response.ts | 2 +- .../board-task.response.ts | 2 +- .../dto/single-column-board/board.response.ts | 2 +- .../modules/learnroom/learnroom-api.module.ts | 5 ++- .../src/modules/learnroom/learnroom.module.ts | 16 ++++----- .../learnroom/repo/mikro-orm/course.repo.ts | 2 +- .../service/board-copy.service.spec.ts | 2 +- .../learnroom/service/board-copy.service.ts | 2 +- .../service/course-copy.service.spec.ts | 4 ++- .../learnroom/service/course-copy.service.ts | 4 ++- .../service/course-rooms.service.spec.ts | 2 +- .../learnroom/service/course-rooms.service.ts | 2 +- .../learnroom/service/course.service.spec.ts | 5 +-- .../learnroom/service/course.service.ts | 4 +-- .../service/coursegroup.service.spec.ts | 5 +-- .../learnroom/service/coursegroup.service.ts | 4 +-- .../service/dashboard.service.spec.ts | 5 +-- .../learnroom/service/dashboard.service.ts | 4 +-- .../learnroom/uc/course-rooms.uc.spec.ts | 5 ++- .../modules/learnroom/uc/course-rooms.uc.ts | 6 ++-- .../modules/learnroom/uc/course.uc.spec.ts | 2 +- .../src/modules/learnroom/uc/course.uc.ts | 4 +-- .../modules/learnroom/uc/dashboard.uc.spec.ts | 3 +- .../src/modules/learnroom/uc/dashboard.uc.ts | 3 +- .../learnroom/uc/lesson-copy.uc.spec.ts | 3 +- .../modules/learnroom/uc/lesson-copy.uc.ts | 2 +- .../legacy-school/legacy-school.module.ts | 3 +- .../service/federal-state.service.spec.ts | 2 +- .../service/federal-state.service.ts | 2 +- .../service/legacy-school.service.spec.ts | 2 +- .../service/legacy-school.service.ts | 2 +- .../school-validation.service.spec.ts | 2 +- .../validation/school-validation.service.ts | 2 +- .../lesson/controller/dto/lesson.response.ts | 6 ++-- .../modules/lesson/repository/lesson-scope.ts | 2 +- .../modules/lesson/repository/lesson.repo.ts | 2 +- .../src/modules/lti-tool/lti-tool.module.ts | 4 +-- .../lti-tool/service/lti-tool.service.spec.ts | 2 +- .../lti-tool/service/lti-tool.service.ts | 2 +- .../modules/management/management.module.ts | 4 +-- .../dto/meta-tag-extractor.response.ts | 2 +- .../meta-tag-extractor.module.ts | 4 +-- .../news/controller/dto/create-news.params.ts | 2 +- .../news/controller/dto/news.response.ts | 2 +- .../news/controller/dto/update-news.params.ts | 2 +- .../news/controller/news.controller.ts | 2 +- .../news/controller/team-news.controller.ts | 2 +- .../loggable/news-crud-operation.loggable.ts | 4 +-- apps/server/src/modules/news/news.module.ts | 6 ++-- .../modules/news/service/news.service.spec.ts | 4 +-- .../src/modules/news/service/news.service.ts | 4 +-- .../src/modules/news/uc/news.uc.spec.ts | 4 +-- apps/server/src/modules/news/uc/news.uc.ts | 6 ++-- .../api/dto/request/accept.query.ts | 2 +- .../domain/service/id-token.service.spec.ts | 2 +- .../domain/service/id-token.service.ts | 2 +- .../oauth-provider/oauth-provider.module.ts | 4 +-- ...n-extraction-failure-loggable-exception.ts | 4 +-- ...token-user-not-found-loggable-exception.ts | 4 +-- ...multiple-users-found.loggable-exception.ts | 4 +-- ...oauth-config-missing-loggable-exception.ts | 4 +-- .../token-invalid-loggable-exception.ts | 4 +-- ...d-after-provisioning.loggable-exception.ts | 2 +- apps/server/src/modules/oauth/oauth.module.ts | 4 +-- .../oauth/service/hydra.service.spec.ts | 4 +-- .../modules/oauth/service/hydra.service.ts | 4 +-- .../loggable/bad-data.loggable-exception.ts | 4 +-- .../school-missing.loggable-exception.ts | 4 +-- ...school-name-required-loggable-exception.ts | 4 +-- .../user-role-unknown.loggable-exception.ts | 4 +-- .../pseudonym/entity/pseudonym.scope.ts | 2 +- .../too-many-pseudonyms.loggable-exception.ts | 4 +-- .../repo/external-tool-pseudonym.repo.ts | 2 +- apps/server/src/modules/role/role.module.ts | 2 +- .../modules/role/service/role.service.spec.ts | 2 +- .../src/modules/role/service/role.service.ts | 2 +- .../dto/request/create-room.body.params.ts | 4 +-- .../api/dto/request/room-pagination.params.ts | 2 +- .../dto/request/update-room.body.params.ts | 2 +- .../dto/response/room-board-list.response.ts | 2 +- .../api/dto/response/room-list.response.ts | 2 +- .../src/modules/room/api/room.controller.ts | 4 +-- .../room/domain/service/room.service.spec.ts | 2 +- .../room/domain/service/room.service.ts | 2 +- .../dto/param/school-update-body.params.ts | 2 +- .../modules/school/api/school.controller.ts | 2 +- .../src/modules/school/domain/do/school.ts | 2 +- .../school/domain/service/school.service.ts | 2 +- .../server-console.app.module.ts | 2 +- .../server/admin-api.server.app.module.ts | 2 +- .../src/modules/server/server.app.module.ts | 2 +- .../dto/share-token-import.body.params.ts | 2 +- .../dto/share-token-info.reponse.ts | 2 +- .../controller/share-token.controller.ts | 3 +- .../src/modules/shd/api/shd.controller.ts | 2 +- .../controller/dto/system.filter.params.ts | 2 +- .../api-test/submission.api.spec.ts | 2 +- .../task/controller/dto/task-create.params.ts | 2 +- .../task/controller/dto/task-update.params.ts | 2 +- .../task/controller/dto/task.response.ts | 3 +- .../task/controller/task.controller.ts | 4 +-- .../task/service/submission.service.spec.ts | 4 +-- .../task/service/submission.service.ts | 4 +-- .../task/service/task-copy.service.spec.ts | 2 +- .../modules/task/service/task-copy.service.ts | 2 +- .../modules/task/service/task.service.spec.ts | 4 +-- .../src/modules/task/service/task.service.ts | 4 +-- .../src/modules/task/task-api.module.ts | 5 +-- apps/server/src/modules/task/task.module.ts | 6 ++-- .../src/modules/task/uc/task-copy.uc.spec.ts | 4 ++- .../src/modules/task/uc/task-copy.uc.ts | 3 +- .../src/modules/task/uc/task.uc.spec.ts | 5 +-- apps/server/src/modules/task/uc/task.uc.ts | 3 +- .../service/team-authorisable.service.spec.ts | 2 +- .../service/team-authorisable.service.ts | 2 +- .../teams/service/team.service.spec.ts | 4 +-- .../src/modules/teams/service/team.service.ts | 4 +-- apps/server/src/modules/teams/teams.module.ts | 4 +-- .../modules/tool/common/common-tool.module.ts | 4 ++- ...-name-already-exists.loggable-exception.ts | 2 +- ...-parameter-duplicate.loggable-exception.ts | 2 +- ...datory-value-missing-loggable.exception.ts | 4 +-- ...tional-value-missing-loggable-exception.ts | 4 +-- ...l-parameter-required.loggable-exception.ts | 2 +- ...ameter-type-mismatch.loggable-exception.ts | 2 +- ...ol-parameter-unknown.loggable-exception.ts | 2 +- ...arameter-value-regex.loggable-exception.ts | 2 +- .../common-tool-delete.service.spec.ts | 4 ++- .../service/common-tool-delete.service.ts | 6 ++-- .../common-tool-metadata.service.spec.ts | 3 +- .../service/common-tool-metadata.service.ts | 3 +- .../common-tool-validation.service.spec.ts | 2 +- .../common-tool-validation.service.ts | 2 +- ...eter-array-duplicate-key-validator.spec.ts | 2 +- ...parameter-array-duplicate-key-validator.ts | 2 +- .../parameter-array-entry-validator.spec.ts | 2 +- .../rules/parameter-array-entry-validator.ts | 2 +- ...ameter-array-unknown-key-validator.spec.ts | 2 +- .../parameter-array-unknown-key-validator.ts | 2 +- .../rules/parameter-array-validator.ts | 2 +- .../parameter-entry-regex-validator.spec.ts | 2 +- .../rules/parameter-entry-regex-validator.ts | 2 +- .../parameter-entry-type-validator.spec.ts | 2 +- .../rules/parameter-entry-type-validator.ts | 2 +- .../rules/parameter-entry-validator.ts | 2 +- .../parameter-entry-value-validator.spec.ts | 2 +- .../rules/parameter-entry-value-validator.ts | 2 +- .../lti11-deep-link-content-item.params.ts | 2 +- .../lti11-deep-link/lti11-deep-link.params.ts | 2 +- .../controller/tool-context.controller.ts | 4 +-- ...external-tool-authorizable.service.spec.ts | 2 +- ...text-external-tool-authorizable.service.ts | 2 +- ...t-external-tool-validation.service.spec.ts | 2 +- ...ontext-external-tool-validation.service.ts | 2 +- .../context-external-tool.service.spec.ts | 2 +- .../tool-configuration-status.service.spec.ts | 2 +- .../tool-configuration-status.service.ts | 2 +- .../dto/request/external-tool-sort.params.ts | 4 +-- .../external-tool-search-list.response.ts | 2 +- .../controller/tool.controller.ts | 4 +-- ...ol-logo-fetch-failed-loggable-exception.ts | 4 +-- ...l-logo-size-exceeded-loggable-exception.ts | 4 +-- ...logo-wrong-file-type-loggable-exception.ts | 2 +- ...external-tool-authorizable.service.spec.ts | 2 +- .../external-tool-authorizable.service.ts | 2 +- ...-tool-parameter-validation.service.spec.ts | 2 +- ...ernal-tool-parameter-validation.service.ts | 2 +- .../external-tool-validation.service.spec.ts | 2 +- .../external-tool-validation.service.ts | 2 +- .../service/external-tool.service.spec.ts | 4 +-- .../controller/tool-school.controller.ts | 4 +-- ...hool-external-tool-authorizable.service.ts | 2 +- ...xternal-tool-authorization.service.spec.ts | 2 +- ...l-external-tool-validation.service.spec.ts | 2 +- ...school-external-tool-validation.service.ts | 2 +- .../school-external-tool.service.spec.ts | 6 ++-- .../service/school-external-tool.service.ts | 4 +-- .../src/modules/tool/tool-api.module.ts | 4 +-- ...-context-unavailable.loggable-exception.ts | 2 +- .../missing-licence.loggable-exception.ts | 2 +- ...tool-parameter-value.loggable-exception.ts | 4 +-- .../api-test/import-user.api.spec.ts | 2 +- .../dto/filter-import-user.params.ts | 2 +- .../controller/dto/import-user.response.ts | 2 +- .../controller/dto/sort-import-user.params.ts | 2 +- .../controller/dto/user-match.response.ts | 2 +- .../controller/import-user.controller.ts | 4 +-- ...onfiguration-failure-loggable-exception.ts | 4 +-- ...ort-populate-failure-loggable-exception.ts | 4 +-- .../user-import/mapper/import-user.mapper.ts | 2 +- .../user-import/mapper/user-match.mapper.ts | 2 +- .../user-import/repo/import-user.scope.ts | 4 +-- .../user-import/uc/user-import.uc.spec.ts | 6 ++-- .../modules/user-import/uc/user-import.uc.ts | 6 ++-- .../modules/user-import/user-import.module.ts | 5 +-- ...er-login-migration-search-list.response.ts | 2 +- ...gin-migration-system.loggable-exception.ts | 4 +-- ...ule-system-not-found.loggable-exception.ts | 2 +- ...hool-number-mismatch.loggable-exception.ts | 4 +-- ...d-external-school-id.loggable-exception.ts | 4 +-- ...ser-already-migrated.loggable-exception.ts | 4 +-- .../service/migration-check.service.spec.ts | 2 +- .../service/migration-check.service.ts | 2 +- .../service/school-migration.service.ts | 4 +-- .../user-login-migration.service.spec.ts | 2 +- .../service/user-login-migration.service.ts | 2 +- .../user-login-migration.module.ts | 4 +-- .../api-test/user-language.api.spec.ts | 2 +- .../admin-api-students.controller.ts | 2 +- .../admin-api-teachers.controller.ts | 2 +- .../controller/dto/user-list.response.ts | 2 +- .../dto/users-search.query.params.ts | 4 +-- .../legacy/service/users-admin.service.ts | 8 ++--- .../user/legacy/uc/users-admin-api.uc.ts | 6 ++-- .../user/legacy/users-admin-api.module.ts | 4 +-- .../modules/user/legacy/users-admin.module.ts | 6 ++-- .../addSecondarySchoolToUserError.loggable.ts | 2 +- .../modules/user/service/user.service.spec.ts | 2 +- .../src/modules/user/service/user.service.ts | 2 +- .../src/modules/user/uc/user.uc.spec.ts | 2 +- apps/server/src/modules/user/uc/user.uc.ts | 2 +- apps/server/src/modules/user/user.module.ts | 2 +- .../service/video-conference.service.spec.ts | 3 +- .../service/video-conference.service.ts | 3 +- .../uc/video-conference-deprecated.uc.spec.ts | 3 +- .../uc/video-conference-deprecated.uc.ts | 2 +- .../video-conference.module.ts | 2 +- .../common/error/authorization.error.spec.ts | 2 +- .../error/forbidden-operation.error.spec.ts | 2 +- apps/server/src/shared/common/index.ts | 11 ++----- .../interceptor/timeout.interceptor.spec.ts | 3 +- apps/server/src/shared/controller/index.ts | 6 ++-- .../polymorphic-array.transformer.spec.ts | 2 +- apps/server/src/shared/domain/index.ts | 9 ++--- .../context-external-tool.scope.ts | 4 +-- .../external-tool-sorting.mapper.spec.ts | 2 +- .../externaltool/external-tool.repo.spec.ts | 4 +-- .../repo/externaltool/external-tool.repo.ts | 3 +- apps/server/src/shared/repo/index.ts | 33 ++----------------- .../repo/teams/team.repo.integration.spec.ts | 2 +- .../user/user-do.repo.integration.spec.ts | 2 +- .../src/shared/repo/user/user-do.repo.ts | 5 +-- .../server/src/shared/repo/user/user.scope.ts | 2 +- .../video-conference.repo.spec.ts | 4 +-- apps/server/src/shared/types/index.ts | 4 ++- config/README.md | 2 +- 390 files changed, 631 insertions(+), 588 deletions(-) diff --git a/apps/server/src/core/core.config.ts b/apps/server/src/core/core.config.ts index 82049e65924..dae6fcba35b 100644 --- a/apps/server/src/core/core.config.ts +++ b/apps/server/src/core/core.config.ts @@ -1,4 +1,4 @@ -import { InterceptorConfig } from '@shared/common'; +import { InterceptorConfig } from '@shared/common/interceptor'; import { LoggerConfig } from './logger'; export interface CoreModuleConfig extends InterceptorConfig, LoggerConfig {} diff --git a/apps/server/src/core/error/domain/domain-error-handler.spec.ts b/apps/server/src/core/error/domain/domain-error-handler.spec.ts index 11ac0cb2b9d..0664c0a2d1c 100644 --- a/apps/server/src/core/error/domain/domain-error-handler.spec.ts +++ b/apps/server/src/core/error/domain/domain-error-handler.spec.ts @@ -1,13 +1,13 @@ +import { ErrorLogger, ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { BadRequestException, HttpStatus, InternalServerErrorException } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; -import { BusinessError } from '@shared/common'; -import { ErrorLogger, ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; -import util from 'util'; +import { BusinessError } from '@shared/common/error'; import { AxiosError } from 'axios'; +import util from 'util'; +import { AxiosErrorLoggable } from '../loggable'; import { ErrorLoggable } from '../loggable/error.loggable'; import { ErrorUtils } from '../utils'; -import { AxiosErrorLoggable } from '../loggable'; import { DomainErrorHandler } from './domain-error-handler'; class SampleLoggableException extends BadRequestException implements Loggable { diff --git a/apps/server/src/core/error/dto/api-validation-error.response.ts b/apps/server/src/core/error/dto/api-validation-error.response.ts index ef5189325a2..e9974a9ddd5 100644 --- a/apps/server/src/core/error/dto/api-validation-error.response.ts +++ b/apps/server/src/core/error/dto/api-validation-error.response.ts @@ -1,5 +1,5 @@ import { ValidationError } from '@nestjs/common'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { ErrorResponse } from './error.response'; import { ValidationErrorDetailResponse } from './validation-error-detail.response'; diff --git a/apps/server/src/core/error/filter/global-error.filter.spec.ts b/apps/server/src/core/error/filter/global-error.filter.spec.ts index c3e85c7e692..c9851e73704 100644 --- a/apps/server/src/core/error/filter/global-error.filter.spec.ts +++ b/apps/server/src/core/error/filter/global-error.filter.spec.ts @@ -1,13 +1,13 @@ /* eslint-disable promise/valid-params */ +import { ErrorLogMessage, Loggable } from '@core/logger'; import { NotFound } from '@feathersjs/errors'; import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { ArgumentsHost, BadRequestException, HttpStatus, InternalServerErrorException } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; import { WsException } from '@nestjs/websockets'; -import { BusinessError } from '@shared/common'; -import { ErrorLogMessage, Loggable } from '@core/logger'; -import { Response } from 'express'; +import { BusinessError } from '@shared/common/error'; import { AxiosError } from 'axios'; +import { Response } from 'express'; import { DomainErrorHandler } from '../domain'; import { ErrorResponse } from '../dto'; import { ErrorUtils } from '../utils'; diff --git a/apps/server/src/core/error/filter/global-error.filter.ts b/apps/server/src/core/error/filter/global-error.filter.ts index 7098b49a78b..678e1041bed 100644 --- a/apps/server/src/core/error/filter/global-error.filter.ts +++ b/apps/server/src/core/error/filter/global-error.filter.ts @@ -1,7 +1,7 @@ import { IError, RpcMessage } from '@infra/rabbitmq'; import { ArgumentsHost, Catch, ExceptionFilter, HttpException, InternalServerErrorException } from '@nestjs/common'; import { WsException } from '@nestjs/websockets'; -import { ApiValidationError, BusinessError } from '@shared/common'; +import { ApiValidationError, BusinessError } from '@shared/common/error'; import { Response } from 'express'; import _ from 'lodash'; import { DomainErrorHandler } from '../domain'; diff --git a/apps/server/src/core/error/loggable/error.loggable.spec.ts b/apps/server/src/core/error/loggable/error.loggable.spec.ts index ca51a241871..fe2d5dbac6e 100644 --- a/apps/server/src/core/error/loggable/error.loggable.spec.ts +++ b/apps/server/src/core/error/loggable/error.loggable.spec.ts @@ -1,8 +1,8 @@ import { NotFound } from '@feathersjs/errors'; import { BadRequestException, HttpStatus, ValidationError } from '@nestjs/common'; import { ApiProperty } from '@nestjs/swagger'; -import { ApiValidationError, BusinessError, ErrorLogMessage } from '@shared/common'; -import { PrivacyProtect } from '@shared/controller'; +import { ApiValidationError, BusinessError, ErrorLogMessage } from '@shared/common/error'; +import { PrivacyProtect } from '@shared/controller/validator'; import { ErrorLoggable } from './error.loggable'; class SampleBusinessError extends BusinessError { diff --git a/apps/server/src/core/error/loggable/error.loggable.ts b/apps/server/src/core/error/loggable/error.loggable.ts index 4eaf33793de..f38f5c11b32 100644 --- a/apps/server/src/core/error/loggable/error.loggable.ts +++ b/apps/server/src/core/error/loggable/error.loggable.ts @@ -1,5 +1,5 @@ import { ValidationError } from '@nestjs/common'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { getMetadataStorage } from 'class-validator'; import util from 'util'; import { Loggable } from '../../logger/interfaces'; diff --git a/apps/server/src/core/error/utils/error.utils.spec.ts b/apps/server/src/core/error/utils/error.utils.spec.ts index cd9f9061fc4..88c6f32c3ea 100644 --- a/apps/server/src/core/error/utils/error.utils.spec.ts +++ b/apps/server/src/core/error/utils/error.utils.spec.ts @@ -1,6 +1,6 @@ import { FeathersError } from '@feathersjs/errors'; import { BadRequestException, HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; +import { BusinessError } from '@shared/common/error'; import { ErrorUtils } from './error.utils'; class SampleBusinessError extends BusinessError { diff --git a/apps/server/src/core/error/utils/error.utils.ts b/apps/server/src/core/error/utils/error.utils.ts index c578fbc9c72..7f499dbcb16 100644 --- a/apps/server/src/core/error/utils/error.utils.ts +++ b/apps/server/src/core/error/utils/error.utils.ts @@ -1,5 +1,5 @@ import { HttpException, HttpExceptionOptions } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; +import { BusinessError } from '@shared/common/error'; import { FeathersError } from '../interface'; export class ErrorUtils { diff --git a/apps/server/src/core/interceptor/interceptor.module.ts b/apps/server/src/core/interceptor/interceptor.module.ts index 271ccf7766b..92bb7b996cb 100644 --- a/apps/server/src/core/interceptor/interceptor.module.ts +++ b/apps/server/src/core/interceptor/interceptor.module.ts @@ -1,7 +1,7 @@ import { ClassSerializerInterceptor, Module } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { APP_INTERCEPTOR } from '@nestjs/core'; -import { TimeoutInterceptor } from '@shared/common'; +import { TimeoutInterceptor } from '@shared/common/interceptor'; /** ********************************************* * Global Interceptor setup diff --git a/apps/server/src/core/validation/pipe/global-validation.pipe.ts b/apps/server/src/core/validation/pipe/global-validation.pipe.ts index 089f0120013..3e5c6324cab 100644 --- a/apps/server/src/core/validation/pipe/global-validation.pipe.ts +++ b/apps/server/src/core/validation/pipe/global-validation.pipe.ts @@ -1,5 +1,5 @@ import { ValidationError, ValidationPipe } from '@nestjs/common'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; /** ********************************************* * Global Pipe setup diff --git a/apps/server/src/infra/auth-guard/decorator/jwt-auth.decorator.ts b/apps/server/src/infra/auth-guard/decorator/jwt-auth.decorator.ts index 27344d0cc26..56d4a5c1161 100644 --- a/apps/server/src/infra/auth-guard/decorator/jwt-auth.decorator.ts +++ b/apps/server/src/infra/auth-guard/decorator/jwt-auth.decorator.ts @@ -6,7 +6,7 @@ import { UseGuards, } from '@nestjs/common'; import { ApiBearerAuth } from '@nestjs/swagger'; -import { extractJwtFromHeader } from '@shared/common'; +import { extractJwtFromHeader } from '@shared/common/utils'; import { Request } from 'express'; import { JwtAuthGuard } from '../guard'; import { ICurrentUser } from '../interface'; diff --git a/apps/server/src/infra/auth-guard/mapper/current-user.factory.ts b/apps/server/src/infra/auth-guard/mapper/current-user.factory.ts index 0b7a514e806..9bf0bcbf98a 100644 --- a/apps/server/src/infra/auth-guard/mapper/current-user.factory.ts +++ b/apps/server/src/infra/auth-guard/mapper/current-user.factory.ts @@ -1,4 +1,4 @@ -import { TypeGuard } from '@shared/common'; +import { TypeGuard } from '@shared/common/guards'; import { EntityId } from '@shared/domain/types'; import { ICurrentUser } from '../interface'; diff --git a/apps/server/src/infra/auth-guard/strategy/jwt.strategy.ts b/apps/server/src/infra/auth-guard/strategy/jwt.strategy.ts index 59b217d8699..33fbf9d036a 100644 --- a/apps/server/src/infra/auth-guard/strategy/jwt.strategy.ts +++ b/apps/server/src/infra/auth-guard/strategy/jwt.strategy.ts @@ -1,7 +1,7 @@ import { Injectable, UnauthorizedException } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { PassportStrategy } from '@nestjs/passport'; -import { extractJwtFromHeader } from '@shared/common'; +import { extractJwtFromHeader } from '@shared/common/utils'; import { Strategy } from 'passport-jwt'; import { JwtValidationAdapter } from '../adapter'; import { JwtAuthGuardConfig } from '../config'; diff --git a/apps/server/src/infra/auth-guard/strategy/ws-jwt.strategy.ts b/apps/server/src/infra/auth-guard/strategy/ws-jwt.strategy.ts index 166232c07a6..2d3aca15673 100644 --- a/apps/server/src/infra/auth-guard/strategy/ws-jwt.strategy.ts +++ b/apps/server/src/infra/auth-guard/strategy/ws-jwt.strategy.ts @@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { PassportStrategy } from '@nestjs/passport'; import { WsException } from '@nestjs/websockets'; -import { JwtExtractor } from '@shared/common'; +import { JwtExtractor } from '@shared/common/utils'; import { Strategy } from 'passport-jwt'; import { JwtValidationAdapter } from '../adapter'; import { JwtAuthGuardConfig } from '../config'; diff --git a/apps/server/src/infra/authorization-client/authorization-client.adapter.ts b/apps/server/src/infra/authorization-client/authorization-client.adapter.ts index d5e7277321b..138c9d582b6 100644 --- a/apps/server/src/infra/authorization-client/authorization-client.adapter.ts +++ b/apps/server/src/infra/authorization-client/authorization-client.adapter.ts @@ -1,6 +1,6 @@ import { Inject, Injectable } from '@nestjs/common'; import { REQUEST } from '@nestjs/core'; -import { extractJwtFromHeader } from '@shared/common'; +import { extractJwtFromHeader } from '@shared/common/utils'; import { RawAxiosRequestConfig } from 'axios'; import { Request } from 'express'; import { diff --git a/apps/server/src/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.spec.ts b/apps/server/src/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.spec.ts index c4a56e9d55c..61273baf03a 100644 --- a/apps/server/src/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.spec.ts +++ b/apps/server/src/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.spec.ts @@ -1,3 +1,4 @@ +import { LegacyLogger } from '@core/logger'; import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { TeamDto, TeamUserDto } from '@modules/collaborative-storage/services/dto/team.dto'; import { PseudonymService } from '@modules/pseudonym'; @@ -9,8 +10,7 @@ import { Pseudonym, UserDO } from '@shared/domain/domainobject'; import { LtiToolDO } from '@shared/domain/domainobject/ltitool.do'; import { LtiPrivacyPermission, LtiRoleType, User } from '@shared/domain/entity'; import { RoleName } from '@shared/domain/interface'; -import { LtiToolRepo } from '@shared/repo'; -import { LegacyLogger } from '@core/logger'; +import { LtiToolRepo } from '@shared/repo/ltitool'; import { ltiToolDOFactory, pseudonymFactory } from '@testing/factory/domainobject'; import { userDoFactory } from '@testing/factory/user.do.factory'; import { userFactory } from '@testing/factory/user.factory'; diff --git a/apps/server/src/infra/etherpad-client/etherpad-client.adapter.ts b/apps/server/src/infra/etherpad-client/etherpad-client.adapter.ts index 314b5f34e6d..808928a25df 100644 --- a/apps/server/src/infra/etherpad-client/etherpad-client.adapter.ts +++ b/apps/server/src/infra/etherpad-client/etherpad-client.adapter.ts @@ -1,5 +1,5 @@ import { Injectable, InternalServerErrorException } from '@nestjs/common'; -import { TypeGuard } from '@shared/common'; +import { TypeGuard } from '@shared/common/guards'; import { EntityId } from '@shared/domain/types'; import { AxiosResponse } from 'axios'; import { diff --git a/apps/server/src/infra/etherpad-client/mappers/etherpad-response.mapper.ts b/apps/server/src/infra/etherpad-client/mappers/etherpad-response.mapper.ts index 9ffda11a41b..23e6e8bf174 100644 --- a/apps/server/src/infra/etherpad-client/mappers/etherpad-response.mapper.ts +++ b/apps/server/src/infra/etherpad-client/mappers/etherpad-response.mapper.ts @@ -1,6 +1,6 @@ -import { InternalServerErrorException } from '@nestjs/common'; -import { TypeGuard } from '@shared/common'; import { ErrorUtils } from '@core/error/utils'; +import { InternalServerErrorException } from '@nestjs/common'; +import { TypeGuard } from '@shared/common/guards'; import { CreateAuthorUsingGET200ResponseData, CreateGroupUsingGET200ResponseData, diff --git a/apps/server/src/infra/identity-management/keycloak/service/keycloak-identity-management.service.spec.ts b/apps/server/src/infra/identity-management/keycloak/service/keycloak-identity-management.service.spec.ts index 31c33540983..944b7dd5581 100644 --- a/apps/server/src/infra/identity-management/keycloak/service/keycloak-identity-management.service.spec.ts +++ b/apps/server/src/infra/identity-management/keycloak/service/keycloak-identity-management.service.spec.ts @@ -2,7 +2,7 @@ import { createMock, DeepMocked } from '@golevelup/ts-jest'; import KeycloakAdminClient from '@keycloak/keycloak-admin-client-cjs/keycloak-admin-client-cjs-index'; import { Users } from '@keycloak/keycloak-admin-client/lib/resources/users'; import { Test, TestingModule } from '@nestjs/testing'; -import { EntityNotFoundError } from '@shared/common'; +import { EntityNotFoundError } from '@shared/common/error'; import { IdmAccount } from '@shared/domain/interface/account'; import { IdentityManagementService } from '../../identity-management.service'; import { KeycloakSettings } from '../../keycloak-administration/interface/keycloak-settings.interface'; diff --git a/apps/server/src/infra/identity-management/keycloak/service/keycloak-identity-management.service.ts b/apps/server/src/infra/identity-management/keycloak/service/keycloak-identity-management.service.ts index 616adf90b00..e6655401155 100644 --- a/apps/server/src/infra/identity-management/keycloak/service/keycloak-identity-management.service.ts +++ b/apps/server/src/infra/identity-management/keycloak/service/keycloak-identity-management.service.ts @@ -1,6 +1,6 @@ import UserRepresentation from '@keycloak/keycloak-admin-client/lib/defs/userRepresentation'; import { Injectable } from '@nestjs/common'; -import { EntityNotFoundError } from '@shared/common'; +import { EntityNotFoundError } from '@shared/common/error'; import { IdmAccount, IdmAccountUpdate } from '@shared/domain/interface'; import { Counted } from '@shared/domain/types'; import { IdentityManagementService, SearchOptions } from '../../identity-management.service'; diff --git a/apps/server/src/infra/s3-client/s3-client.adapter.ts b/apps/server/src/infra/s3-client/s3-client.adapter.ts index 336e3694fa1..1b413b0bac1 100644 --- a/apps/server/src/infra/s3-client/s3-client.adapter.ts +++ b/apps/server/src/infra/s3-client/s3-client.adapter.ts @@ -13,10 +13,10 @@ import { ServiceOutputTypes, } from '@aws-sdk/client-s3'; import { Upload } from '@aws-sdk/lib-storage'; -import { Inject, Injectable, InternalServerErrorException, NotFoundException } from '@nestjs/common'; -import { TypeGuard } from '@shared/common'; import { ErrorUtils } from '@core/error/utils'; import { LegacyLogger } from '@core/logger'; +import { Inject, Injectable, InternalServerErrorException, NotFoundException } from '@nestjs/common'; +import { TypeGuard } from '@shared/common/guards'; import { Readable } from 'stream'; import { S3_CLIENT, S3_CONFIG } from './constants'; import { CopyFiles, File, GetFile, ListFiles, ObjectKeysRecursive, S3Config } from './interface'; diff --git a/apps/server/src/infra/schulconnex-client/response/policies-info/schulconnex-policies-info-response.ts b/apps/server/src/infra/schulconnex-client/response/policies-info/schulconnex-policies-info-response.ts index 454fda96a22..e800261356e 100644 --- a/apps/server/src/infra/schulconnex-client/response/policies-info/schulconnex-policies-info-response.ts +++ b/apps/server/src/infra/schulconnex-client/response/policies-info/schulconnex-policies-info-response.ts @@ -1,4 +1,4 @@ -import { PolymorphicArrayTransform } from '@shared/controller'; +import { PolymorphicArrayTransform } from '@shared/controller/transformer'; import { ClassConstructor } from 'class-transformer'; import { IsArray, ValidateNested } from 'class-validator'; import { SchulconnexPoliciesInfoErrorResponse } from './schulconnex-policies-info-error-response'; diff --git a/apps/server/src/infra/sync/tsp/loggable/tsp-system-not-found.loggable-exception.ts b/apps/server/src/infra/sync/tsp/loggable/tsp-system-not-found.loggable-exception.ts index b7c4962f1bd..4a13de357fb 100644 --- a/apps/server/src/infra/sync/tsp/loggable/tsp-system-not-found.loggable-exception.ts +++ b/apps/server/src/infra/sync/tsp/loggable/tsp-system-not-found.loggable-exception.ts @@ -1,6 +1,6 @@ -import { HttpStatus } from '@nestjs/common'; -import { BusinessError, ErrorLogMessage } from '@shared/common'; import { Loggable, LogMessage } from '@core/logger'; +import { HttpStatus } from '@nestjs/common'; +import { BusinessError, ErrorLogMessage } from '@shared/common/error'; export class TspSystemNotFoundLoggableException extends BusinessError implements Loggable { constructor() { diff --git a/apps/server/src/modules/account/account-api.module.ts b/apps/server/src/modules/account/account-api.module.ts index d7268c5876a..0e511e3569c 100644 --- a/apps/server/src/modules/account/account-api.module.ts +++ b/apps/server/src/modules/account/account-api.module.ts @@ -1,10 +1,10 @@ +import { LoggerModule } from '@core/logger'; import { AuthorizationModule } from '@modules/authorization'; import { Module } from '@nestjs/common'; -import { UserRepo } from '@shared/repo'; -import { LoggerModule } from '@core/logger'; -import { AccountUc } from './api/account.uc'; +import { UserRepo } from '@shared/repo/user'; import { AccountModule } from './account.module'; import { AccountController } from './api/account.controller'; +import { AccountUc } from './api/account.uc'; @Module({ imports: [AccountModule, LoggerModule, AuthorizationModule], diff --git a/apps/server/src/modules/account/account.module.ts b/apps/server/src/modules/account/account.module.ts index 2f3424934c1..775f1bf1f55 100644 --- a/apps/server/src/modules/account/account.module.ts +++ b/apps/server/src/modules/account/account.module.ts @@ -1,10 +1,10 @@ +import { LoggerModule } from '@core/logger/logger.module'; import { IdentityManagementModule } from '@infra/identity-management'; import { SystemModule } from '@modules/system'; import { Module } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { CqrsModule } from '@nestjs/cqrs'; -import { UserRepo } from '@shared/repo'; -import { LoggerModule } from '@core/logger/logger.module'; +import { UserRepo } from '@shared/repo/user'; import { AccountConfig } from './account-config'; import { AccountServiceDb } from './domain/services/account-db.service'; import { AccountServiceIdm } from './domain/services/account-idm.service'; diff --git a/apps/server/src/modules/account/api/account.controller.ts b/apps/server/src/modules/account/api/account.controller.ts index 261d052778a..7e2db2da9bd 100644 --- a/apps/server/src/modules/account/api/account.controller.ts +++ b/apps/server/src/modules/account/api/account.controller.ts @@ -1,6 +1,6 @@ import { Body, Controller, Delete, Get, Param, Patch, Query } from '@nestjs/common'; import { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger'; -import { EntityNotFoundError, ForbiddenOperationError, ValidationError } from '@shared/common'; +import { EntityNotFoundError, ForbiddenOperationError, ValidationError } from '@shared/common/error'; import { CurrentUser, ICurrentUser, JwtAuthentication } from '@infra/auth-guard'; import { AccountUc } from './account.uc'; diff --git a/apps/server/src/modules/account/api/account.uc.spec.ts b/apps/server/src/modules/account/api/account.uc.spec.ts index a366aa2e80f..d9761a9837c 100644 --- a/apps/server/src/modules/account/api/account.uc.spec.ts +++ b/apps/server/src/modules/account/api/account.uc.spec.ts @@ -1,7 +1,7 @@ import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { ConfigService } from '@nestjs/config'; import { Test, TestingModule } from '@nestjs/testing'; -import { EntityNotFoundError } from '@shared/common'; +import { EntityNotFoundError } from '@shared/common/error'; import { faker } from '@faker-js/faker'; import { AuthorizationService } from '@modules/authorization'; diff --git a/apps/server/src/modules/account/api/dto/param/account-by-id.body.params.ts b/apps/server/src/modules/account/api/dto/param/account-by-id.body.params.ts index 633694e8801..7fb7f848d1c 100644 --- a/apps/server/src/modules/account/api/dto/param/account-by-id.body.params.ts +++ b/apps/server/src/modules/account/api/dto/param/account-by-id.body.params.ts @@ -1,6 +1,7 @@ import { ApiPropertyOptional } from '@nestjs/swagger'; -import { PrivacyProtect, SanitizeHtml } from '@shared/controller'; -import { IsBoolean, IsString, IsOptional, Matches, IsEmail } from 'class-validator'; +import { SanitizeHtml } from '@shared/controller/transformer'; +import { PrivacyProtect } from '@shared/controller/validator'; +import { IsBoolean, IsEmail, IsOptional, IsString, Matches } from 'class-validator'; import { passwordPattern } from '../../../domain/password-pattern'; export class AccountByIdBodyParams { diff --git a/apps/server/src/modules/account/api/dto/param/account-search.query.params.ts b/apps/server/src/modules/account/api/dto/param/account-search.query.params.ts index e43240f587b..adb65c6043c 100644 --- a/apps/server/src/modules/account/api/dto/param/account-search.query.params.ts +++ b/apps/server/src/modules/account/api/dto/param/account-search.query.params.ts @@ -1,6 +1,7 @@ import { ApiProperty } from '@nestjs/swagger'; +import { PaginationParams } from '@shared/controller/dto'; +import { SanitizeHtml } from '@shared/controller/transformer'; import { IsEnum, IsString } from 'class-validator'; -import { PaginationParams, SanitizeHtml } from '@shared/controller'; import { AccountSearchType } from '../../../domain/type/account-search-type'; export class AccountSearchQueryParams extends PaginationParams { diff --git a/apps/server/src/modules/account/api/dto/param/patch-my-account.params.ts b/apps/server/src/modules/account/api/dto/param/patch-my-account.params.ts index 17e3817eb80..938af65836e 100644 --- a/apps/server/src/modules/account/api/dto/param/patch-my-account.params.ts +++ b/apps/server/src/modules/account/api/dto/param/patch-my-account.params.ts @@ -1,5 +1,6 @@ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; -import { PrivacyProtect, SanitizeHtml } from '@shared/controller'; +import { SanitizeHtml } from '@shared/controller/transformer'; +import { PrivacyProtect } from '@shared/controller/validator'; import { IsEmail, IsOptional, IsString, Matches } from 'class-validator'; import { passwordPattern } from '../../../domain/password-pattern'; diff --git a/apps/server/src/modules/account/api/dto/param/patch-my-password.params.ts b/apps/server/src/modules/account/api/dto/param/patch-my-password.params.ts index 6e1f21faac4..920aeb9cf54 100644 --- a/apps/server/src/modules/account/api/dto/param/patch-my-password.params.ts +++ b/apps/server/src/modules/account/api/dto/param/patch-my-password.params.ts @@ -1,5 +1,5 @@ import { ApiProperty } from '@nestjs/swagger'; -import { PrivacyProtect } from '@shared/controller'; +import { PrivacyProtect } from '@shared/controller/validator'; import { IsString, Matches } from 'class-validator'; import { passwordPattern } from '../../../domain/password-pattern'; diff --git a/apps/server/src/modules/account/api/dto/resolved-account.dto.ts b/apps/server/src/modules/account/api/dto/resolved-account.dto.ts index 738c8113de9..02076a77671 100644 --- a/apps/server/src/modules/account/api/dto/resolved-account.dto.ts +++ b/apps/server/src/modules/account/api/dto/resolved-account.dto.ts @@ -1,6 +1,6 @@ /* eslint-disable max-classes-per-file */ import { ApiPropertyOptional } from '@nestjs/swagger'; -import { PrivacyProtect } from '@shared/controller'; +import { PrivacyProtect } from '@shared/controller/validator'; import { EntityId } from '@shared/domain/types'; import { IsBoolean, IsDate, IsMongoId, IsNotEmpty, IsString, Matches } from 'class-validator'; import { passwordPattern } from '../../domain/password-pattern'; diff --git a/apps/server/src/modules/account/api/dto/response/account-search-list.response.ts b/apps/server/src/modules/account/api/dto/response/account-search-list.response.ts index 113fe6c6e48..fb62673315f 100644 --- a/apps/server/src/modules/account/api/dto/response/account-search-list.response.ts +++ b/apps/server/src/modules/account/api/dto/response/account-search-list.response.ts @@ -1,5 +1,5 @@ import { ApiProperty } from '@nestjs/swagger'; -import { PaginationResponse } from '@shared/controller'; +import { PaginationResponse } from '@shared/controller/dto'; import { AccountResponse } from './account.response'; export class AccountSearchListResponse extends PaginationResponse { diff --git a/apps/server/src/modules/account/domain/services/account-db.service.spec.ts b/apps/server/src/modules/account/domain/services/account-db.service.spec.ts index 8a8e42abec7..dab2469c613 100644 --- a/apps/server/src/modules/account/domain/services/account-db.service.spec.ts +++ b/apps/server/src/modules/account/domain/services/account-db.service.spec.ts @@ -4,7 +4,7 @@ import { IdentityManagementService } from '@infra/identity-management'; import { ObjectId } from '@mikro-orm/mongodb'; import { ConfigService } from '@nestjs/config'; import { Test, TestingModule } from '@nestjs/testing'; -import { EntityNotFoundError } from '@shared/common'; +import { EntityNotFoundError } from '@shared/common/error'; import { IdmAccount } from '@shared/domain/interface'; import { EntityId } from '@shared/domain/types'; import { Logger } from '@core/logger'; diff --git a/apps/server/src/modules/account/domain/services/account-db.service.ts b/apps/server/src/modules/account/domain/services/account-db.service.ts index e1c27a2992f..bc50003fc3a 100644 --- a/apps/server/src/modules/account/domain/services/account-db.service.ts +++ b/apps/server/src/modules/account/domain/services/account-db.service.ts @@ -2,7 +2,7 @@ import { IdentityManagementService } from '@infra/identity-management/identity-m import { ObjectId } from '@mikro-orm/mongodb'; import { Injectable } from '@nestjs/common'; import { ConfigService } from '@nestjs/config/dist/config.service'; -import { EntityNotFoundError } from '@shared/common'; +import { EntityNotFoundError } from '@shared/common/error'; import { Counted, EntityId } from '@shared/domain/types'; import bcrypt from 'bcryptjs'; import { AccountConfig } from '../../account-config'; diff --git a/apps/server/src/modules/account/domain/services/account-idm.service.spec.ts b/apps/server/src/modules/account/domain/services/account-idm.service.spec.ts index 247c4582702..5cd11ec4125 100644 --- a/apps/server/src/modules/account/domain/services/account-idm.service.spec.ts +++ b/apps/server/src/modules/account/domain/services/account-idm.service.spec.ts @@ -5,7 +5,7 @@ import { IdentityManagementOauthService, IdentityManagementService } from '@infr import { NotImplementedException } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { Test, TestingModule } from '@nestjs/testing'; -import { EntityNotFoundError } from '@shared/common'; +import { EntityNotFoundError } from '@shared/common/error'; import { IdmAccount } from '@shared/domain/interface'; import { Logger } from '@core/logger'; import { Account, AccountSave } from '..'; diff --git a/apps/server/src/modules/account/domain/services/account-idm.service.ts b/apps/server/src/modules/account/domain/services/account-idm.service.ts index 8f0a379bf2b..5ad929f33df 100644 --- a/apps/server/src/modules/account/domain/services/account-idm.service.ts +++ b/apps/server/src/modules/account/domain/services/account-idm.service.ts @@ -2,7 +2,7 @@ import { IdentityManagementOauthService, IdentityManagementService } from '@infr import { ObjectId } from '@mikro-orm/mongodb'; import { Injectable, NotImplementedException } from '@nestjs/common'; import { ConfigService } from '@nestjs/config/dist/config.service'; -import { EntityNotFoundError } from '@shared/common'; +import { EntityNotFoundError } from '@shared/common/error'; import { IdmAccountUpdate } from '@shared/domain/interface'; import { Counted, EntityId } from '@shared/domain/types'; import { Logger } from '@core/logger'; diff --git a/apps/server/src/modules/account/domain/services/account.service.integration.spec.ts b/apps/server/src/modules/account/domain/services/account.service.integration.spec.ts index 4a72b7f603a..aa9bf166657 100644 --- a/apps/server/src/modules/account/domain/services/account.service.integration.spec.ts +++ b/apps/server/src/modules/account/domain/services/account.service.integration.spec.ts @@ -1,3 +1,4 @@ +import { Logger } from '@core/logger'; import { createMock } from '@golevelup/ts-jest'; import { MongoMemoryDatabaseModule } from '@infra/database'; import { IdentityManagementModule, IdentityManagementService } from '@infra/identity-management'; @@ -9,8 +10,7 @@ import { ConfigModule } from '@nestjs/config'; import { EventBus } from '@nestjs/cqrs'; import { Test, TestingModule } from '@nestjs/testing'; import { IdmAccount } from '@shared/domain/interface'; -import { UserRepo } from '@shared/repo'; -import { Logger } from '@core/logger'; +import { UserRepo } from '@shared/repo/user'; import { cleanupCollections } from '@testing/cleanup-collections'; import { v1 } from 'uuid'; import { Account, AccountSave } from '..'; diff --git a/apps/server/src/modules/account/domain/services/account.service.spec.ts b/apps/server/src/modules/account/domain/services/account.service.spec.ts index 5990bf2fbd0..22a41e4e180 100644 --- a/apps/server/src/modules/account/domain/services/account.service.spec.ts +++ b/apps/server/src/modules/account/domain/services/account.service.spec.ts @@ -1,3 +1,4 @@ +import { Logger } from '@core/logger'; import { faker } from '@faker-js/faker'; import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { MikroORM } from '@mikro-orm/core'; @@ -14,10 +15,14 @@ import { systemFactory } from '@modules/system/testing'; import { ConfigService } from '@nestjs/config'; import { EventBus } from '@nestjs/cqrs'; import { Test, TestingModule } from '@nestjs/testing'; -import { AuthorizationError, EntityNotFoundError, ForbiddenOperationError, ValidationError } from '@shared/common'; +import { + AuthorizationError, + EntityNotFoundError, + ForbiddenOperationError, + ValidationError, +} from '@shared/common/error'; import { User } from '@shared/domain/entity'; -import { UserRepo } from '@shared/repo'; -import { Logger } from '@core/logger'; +import { UserRepo } from '@shared/repo/user'; import { schoolEntityFactory } from '@testing/factory/school-entity.factory'; import { userFactory } from '@testing/factory/user.factory'; import { setupEntities } from '@testing/setup-entities'; diff --git a/apps/server/src/modules/account/domain/services/account.service.ts b/apps/server/src/modules/account/domain/services/account.service.ts index 0e78b35730c..866296b247d 100644 --- a/apps/server/src/modules/account/domain/services/account.service.ts +++ b/apps/server/src/modules/account/domain/services/account.service.ts @@ -13,7 +13,12 @@ import { import { Injectable } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { EventBus, EventsHandler, IEventHandler } from '@nestjs/cqrs'; -import { AuthorizationError, EntityNotFoundError, ForbiddenOperationError, ValidationError } from '@shared/common'; +import { + AuthorizationError, + EntityNotFoundError, + ForbiddenOperationError, + ValidationError, +} from '@shared/common/error'; import { User } from '@shared/domain/entity'; import { Counted, EntityId } from '@shared/domain/types'; import { UserRepo } from '@shared/repo/user/user.repo'; diff --git a/apps/server/src/modules/account/repo/micro-orm/scope/account-scope.ts b/apps/server/src/modules/account/repo/micro-orm/scope/account-scope.ts index 69ab3907f33..63b5dff45f7 100644 --- a/apps/server/src/modules/account/repo/micro-orm/scope/account-scope.ts +++ b/apps/server/src/modules/account/repo/micro-orm/scope/account-scope.ts @@ -1,4 +1,4 @@ -import { Scope } from '@shared/repo'; +import { Scope } from '@shared/repo/scope'; import { ObjectId } from 'bson'; import { AccountEntity } from '../../../domain/entity/account.entity'; diff --git a/apps/server/src/modules/authentication/authentication-test.module.ts b/apps/server/src/modules/authentication/authentication-test.module.ts index 7014bad66ea..1d73a8b0835 100644 --- a/apps/server/src/modules/authentication/authentication-test.module.ts +++ b/apps/server/src/modules/authentication/authentication-test.module.ts @@ -1,18 +1,19 @@ +import { LoggerModule } from '@core/logger'; import { Configuration } from '@hpi-schul-cloud/commons/lib'; import { AuthGuardModule, AuthGuardOptions } from '@infra/auth-guard'; import { CacheWrapperModule } from '@infra/cache'; -import { IdentityManagementModule } from '@infra/identity-management'; import { EncryptionModule } from '@infra/encryption'; +import { IdentityManagementModule } from '@infra/identity-management'; import { AccountModule } from '@modules/account'; import { OauthModule } from '@modules/oauth/oauth.module'; import { RoleModule } from '@modules/role'; import { SystemModule } from '@modules/system'; +import { HttpModule } from '@nestjs/axios'; import { Module } from '@nestjs/common'; import { JwtModule } from '@nestjs/jwt'; import { PassportModule } from '@nestjs/passport'; -import { HttpModule } from '@nestjs/axios'; -import { LegacySchoolRepo, UserRepo } from '@shared/repo'; -import { LoggerModule } from '@core/logger'; +import { LegacySchoolRepo } from '@shared/repo/school'; +import { UserRepo } from '@shared/repo/user'; import { Algorithm, SignOptions } from 'jsonwebtoken'; import { UserModule } from '../user'; import { JwtWhitelistAdapter } from './helper/jwt-whitelist.adapter'; diff --git a/apps/server/src/modules/authentication/authentication.module.ts b/apps/server/src/modules/authentication/authentication.module.ts index ff7b7f79049..53b361a77cb 100644 --- a/apps/server/src/modules/authentication/authentication.module.ts +++ b/apps/server/src/modules/authentication/authentication.module.ts @@ -1,3 +1,4 @@ +import { LoggerModule } from '@core/logger'; import { CacheWrapperModule } from '@infra/cache'; import { EncryptionModule } from '@infra/encryption'; import { IdentityManagementModule } from '@infra/identity-management'; @@ -6,13 +7,13 @@ import { OauthModule } from '@modules/oauth/oauth.module'; import { RoleModule } from '@modules/role'; import { SystemModule } from '@modules/system'; import { UserModule } from '@modules/user'; -import { Module } from '@nestjs/common'; import { HttpModule } from '@nestjs/axios'; +import { Module } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { JwtModule } from '@nestjs/jwt'; import { PassportModule } from '@nestjs/passport'; -import { LegacySchoolRepo, UserRepo } from '@shared/repo'; -import { LoggerModule } from '@core/logger'; +import { LegacySchoolRepo } from '@shared/repo/school'; +import { UserRepo } from '@shared/repo/user'; import { Algorithm, SignOptions } from 'jsonwebtoken'; import { AuthenticationConfig } from './authentication-config'; import { JwtWhitelistAdapter } from './helper/jwt-whitelist.adapter'; diff --git a/apps/server/src/modules/authentication/controllers/login.controller.ts b/apps/server/src/modules/authentication/controllers/login.controller.ts index 42533099454..0e87ec24489 100644 --- a/apps/server/src/modules/authentication/controllers/login.controller.ts +++ b/apps/server/src/modules/authentication/controllers/login.controller.ts @@ -2,7 +2,7 @@ import { CurrentUser, ICurrentUser } from '@infra/auth-guard'; import { Body, Controller, HttpCode, HttpStatus, Post, UseGuards } from '@nestjs/common'; import { AuthGuard } from '@nestjs/passport'; import { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger'; -import { ForbiddenOperationError, ValidationError } from '@shared/common'; +import { ForbiddenOperationError, ValidationError } from '@shared/common/error'; import { StrategyType, type OauthCurrentUser } from '../interface'; import { LoginDto } from '../uc/dto'; import { LoginUc } from '../uc/login.uc'; diff --git a/apps/server/src/modules/authentication/errors/brute-force.error.ts b/apps/server/src/modules/authentication/errors/brute-force.error.ts index f8d9df13b25..e0f217217f6 100644 --- a/apps/server/src/modules/authentication/errors/brute-force.error.ts +++ b/apps/server/src/modules/authentication/errors/brute-force.error.ts @@ -1,5 +1,5 @@ import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; +import { BusinessError } from '@shared/common/error'; export class BruteForceError extends BusinessError { readonly timeToWait: number; diff --git a/apps/server/src/modules/authentication/errors/ldap-connection.error.ts b/apps/server/src/modules/authentication/errors/ldap-connection.error.ts index 292e6d51db9..3ae56f2b765 100644 --- a/apps/server/src/modules/authentication/errors/ldap-connection.error.ts +++ b/apps/server/src/modules/authentication/errors/ldap-connection.error.ts @@ -1,5 +1,5 @@ import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; +import { BusinessError } from '@shared/common/error'; export class LdapConnectionError extends BusinessError { constructor(details?: Record) { diff --git a/apps/server/src/modules/authentication/loggable/account-not-found.loggable-exception.ts b/apps/server/src/modules/authentication/loggable/account-not-found.loggable-exception.ts index b58f1e27f58..5751c39f4ba 100644 --- a/apps/server/src/modules/authentication/loggable/account-not-found.loggable-exception.ts +++ b/apps/server/src/modules/authentication/loggable/account-not-found.loggable-exception.ts @@ -1,7 +1,7 @@ -import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; import { Loggable } from '@core/logger/interfaces'; import { ErrorLogMessage } from '@core/logger/types'; +import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; export class AccountNotFoundLoggableException extends BusinessError implements Loggable { constructor() { diff --git a/apps/server/src/modules/authentication/loggable/school-in-migration.loggable-exception.ts b/apps/server/src/modules/authentication/loggable/school-in-migration.loggable-exception.ts index 9a86379f568..a384a5a5f88 100644 --- a/apps/server/src/modules/authentication/loggable/school-in-migration.loggable-exception.ts +++ b/apps/server/src/modules/authentication/loggable/school-in-migration.loggable-exception.ts @@ -1,6 +1,6 @@ -import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; import { ErrorLogMessage, Loggable } from '@core/logger'; +import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; export class SchoolInMigrationLoggableException extends BusinessError implements Loggable { constructor() { diff --git a/apps/server/src/modules/authentication/loggable/user-account-deactivated-exception.ts b/apps/server/src/modules/authentication/loggable/user-account-deactivated-exception.ts index a6e88a2e107..3943cdabffe 100644 --- a/apps/server/src/modules/authentication/loggable/user-account-deactivated-exception.ts +++ b/apps/server/src/modules/authentication/loggable/user-account-deactivated-exception.ts @@ -1,6 +1,6 @@ -import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; import { ErrorLogMessage, Loggable } from '@core/logger'; +import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; export class UserAccountDeactivatedLoggableException extends BusinessError implements Loggable { constructor() { diff --git a/apps/server/src/modules/authentication/loggable/user-could-not-be-authenticated.loggable.exception.ts b/apps/server/src/modules/authentication/loggable/user-could-not-be-authenticated.loggable.exception.ts index af0473423bc..d4b476fd1fc 100644 --- a/apps/server/src/modules/authentication/loggable/user-could-not-be-authenticated.loggable.exception.ts +++ b/apps/server/src/modules/authentication/loggable/user-could-not-be-authenticated.loggable.exception.ts @@ -1,7 +1,7 @@ -import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; import { Loggable } from '@core/logger/interfaces'; import { ErrorLogMessage } from '@core/logger/types'; +import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; export class LdapUserCouldNotBeAuthenticatedLoggableException extends BusinessError implements Loggable { constructor(private readonly error: Error) { diff --git a/apps/server/src/modules/authentication/mapper/current-user.mapper.spec.ts b/apps/server/src/modules/authentication/mapper/current-user.mapper.spec.ts index ae79b552670..bde332cfe21 100644 --- a/apps/server/src/modules/authentication/mapper/current-user.mapper.spec.ts +++ b/apps/server/src/modules/authentication/mapper/current-user.mapper.spec.ts @@ -1,4 +1,4 @@ -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { UserDO } from '@shared/domain/domainobject/user.do'; import { Permission, RoleName } from '@shared/domain/interface'; import { roleFactory } from '@testing/factory/role.factory'; diff --git a/apps/server/src/modules/authentication/mapper/current-user.mapper.ts b/apps/server/src/modules/authentication/mapper/current-user.mapper.ts index 885707486f3..66ad3d11d96 100644 --- a/apps/server/src/modules/authentication/mapper/current-user.mapper.ts +++ b/apps/server/src/modules/authentication/mapper/current-user.mapper.ts @@ -1,5 +1,5 @@ import { CurrentUserBuilder, ICurrentUser } from '@infra/auth-guard'; -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { RoleReference } from '@shared/domain/domainobject'; import { UserDO } from '@shared/domain/domainobject/user.do'; import { Role, User } from '@shared/domain/entity'; diff --git a/apps/server/src/modules/authentication/strategy/ldap.strategy.spec.ts b/apps/server/src/modules/authentication/strategy/ldap.strategy.spec.ts index 539f21f629f..5a2e5e1ef8d 100644 --- a/apps/server/src/modules/authentication/strategy/ldap.strategy.spec.ts +++ b/apps/server/src/modules/authentication/strategy/ldap.strategy.spec.ts @@ -1,3 +1,4 @@ +import { Logger } from '@core/logger'; import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { ICurrentUser } from '@infra/auth-guard'; import { Account } from '@modules/account'; @@ -10,8 +11,8 @@ import { Test, TestingModule } from '@nestjs/testing'; import { LegacySchoolDo } from '@shared/domain/domainobject'; import { User } from '@shared/domain/entity'; import { RoleName } from '@shared/domain/interface'; -import { LegacySchoolRepo, UserRepo } from '@shared/repo'; -import { Logger } from '@core/logger'; +import { LegacySchoolRepo } from '@shared/repo/school'; +import { UserRepo } from '@shared/repo/user'; import { legacySchoolDoFactory } from '@testing/factory/domainobject'; import { schoolEntityFactory } from '@testing/factory/school-entity.factory'; import { userFactory } from '@testing/factory/user.factory'; diff --git a/apps/server/src/modules/authentication/strategy/ldap.strategy.ts b/apps/server/src/modules/authentication/strategy/ldap.strategy.ts index 4ee8a7904f7..741b19f67f1 100644 --- a/apps/server/src/modules/authentication/strategy/ldap.strategy.ts +++ b/apps/server/src/modules/authentication/strategy/ldap.strategy.ts @@ -1,14 +1,15 @@ +import { ErrorLoggable } from '@core/error/loggable/error.loggable'; +import { Logger } from '@core/logger'; import { ICurrentUser } from '@infra/auth-guard'; import { Account } from '@modules/account'; import { System, SystemService } from '@modules/system'; import { Injectable, UnauthorizedException } from '@nestjs/common'; import { PassportStrategy } from '@nestjs/passport'; +import { TypeGuard } from '@shared/common/guards'; import { LegacySchoolDo } from '@shared/domain/domainobject'; -import { LegacySchoolRepo, UserRepo } from '@shared/repo'; -import { ErrorLoggable } from '@core/error/loggable/error.loggable'; -import { Logger } from '@core/logger'; +import { LegacySchoolRepo } from '@shared/repo/school'; +import { UserRepo } from '@shared/repo/user'; import { Strategy } from 'passport-custom'; -import { TypeGuard } from '@shared/common'; import { LdapAuthorizationBodyParams } from '../controllers/dto'; import { StrategyType } from '../interface'; import { CurrentUserMapper } from '../mapper'; diff --git a/apps/server/src/modules/authentication/strategy/local.strategy.spec.ts b/apps/server/src/modules/authentication/strategy/local.strategy.spec.ts index 005bae013c6..9a17b50bb87 100644 --- a/apps/server/src/modules/authentication/strategy/local.strategy.spec.ts +++ b/apps/server/src/modules/authentication/strategy/local.strategy.spec.ts @@ -6,7 +6,7 @@ import { UnauthorizedException } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { User } from '@shared/domain/entity'; import { RoleName } from '@shared/domain/interface'; -import { UserRepo } from '@shared/repo'; +import { UserRepo } from '@shared/repo/user'; import { userFactory } from '@testing/factory/user.factory'; import { setupEntities } from '@testing/setup-entities'; import bcrypt from 'bcryptjs'; diff --git a/apps/server/src/modules/authentication/strategy/local.strategy.ts b/apps/server/src/modules/authentication/strategy/local.strategy.ts index c4c4dad9259..e5b96182ccc 100644 --- a/apps/server/src/modules/authentication/strategy/local.strategy.ts +++ b/apps/server/src/modules/authentication/strategy/local.strategy.ts @@ -4,8 +4,8 @@ import { Account } from '@modules/account'; import { Injectable, UnauthorizedException } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { PassportStrategy } from '@nestjs/passport'; -import { TypeGuard } from '@shared/common'; -import { UserRepo } from '@shared/repo'; +import { TypeGuard } from '@shared/common/guards'; +import { UserRepo } from '@shared/repo/user'; import bcrypt from 'bcryptjs'; import { Strategy } from 'passport-local'; import { CurrentUserMapper } from '../mapper'; diff --git a/apps/server/src/modules/authorization-reference/api/authorization-reference.controller.ts b/apps/server/src/modules/authorization-reference/api/authorization-reference.controller.ts index 07fbd3f9942..9828f7f2be4 100644 --- a/apps/server/src/modules/authorization-reference/api/authorization-reference.controller.ts +++ b/apps/server/src/modules/authorization-reference/api/authorization-reference.controller.ts @@ -1,7 +1,7 @@ import { CurrentUser, ICurrentUser, JwtAuthentication } from '@infra/auth-guard'; import { Body, Controller, InternalServerErrorException, Post, UnauthorizedException } from '@nestjs/common'; import { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { AuthorizationReferenceUc } from './authorization-reference.uc'; import { AuthorizationBodyParams, AuthorizedReponse } from './dto'; diff --git a/apps/server/src/modules/authorization-reference/authorization-reference.module.ts b/apps/server/src/modules/authorization-reference/authorization-reference.module.ts index 28a275e7eec..e885041f281 100644 --- a/apps/server/src/modules/authorization-reference/authorization-reference.module.ts +++ b/apps/server/src/modules/authorization-reference/authorization-reference.module.ts @@ -1,8 +1,13 @@ -import { InstanceModule } from '@modules/instance'; -import { Module } from '@nestjs/common'; -import { CourseGroupRepo, CourseRepo, LegacySchoolRepo, SubmissionRepo, TaskRepo, UserRepo } from '@shared/repo'; import { LoggerModule } from '@core/logger'; import { AuthorizationModule } from '@modules/authorization'; +import { InstanceModule } from '@modules/instance'; +import { Module } from '@nestjs/common'; +import { CourseRepo } from '@shared/repo/course'; +import { CourseGroupRepo } from '@shared/repo/coursegroup'; +import { LegacySchoolRepo } from '@shared/repo/school'; +import { SubmissionRepo } from '@shared/repo/submission'; +import { TaskRepo } from '@shared/repo/task'; +import { UserRepo } from '@shared/repo/user'; import { AuthorizationReferenceService, ReferenceLoader } from './domain'; /** diff --git a/apps/server/src/modules/authorization-reference/domain/reference.loader.spec.ts b/apps/server/src/modules/authorization-reference/domain/reference.loader.spec.ts index 02c3ff19ca5..742e7ce3f67 100644 --- a/apps/server/src/modules/authorization-reference/domain/reference.loader.spec.ts +++ b/apps/server/src/modules/authorization-reference/domain/reference.loader.spec.ts @@ -5,7 +5,12 @@ import { InstanceService } from '@modules/instance'; import { NotImplementedException } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; import { EntityId } from '@shared/domain/types'; -import { CourseGroupRepo, CourseRepo, LegacySchoolRepo, SubmissionRepo, TaskRepo, UserRepo } from '@shared/repo'; +import { CourseRepo } from '@shared/repo/course'; +import { CourseGroupRepo } from '@shared/repo/coursegroup'; +import { LegacySchoolRepo } from '@shared/repo/school'; +import { SubmissionRepo } from '@shared/repo/submission'; +import { TaskRepo } from '@shared/repo/task'; +import { UserRepo } from '@shared/repo/user'; import { userFactory } from '@testing/factory/user.factory'; import { setupEntities } from '@testing/setup-entities'; import { ReferenceLoader } from './reference.loader'; diff --git a/apps/server/src/modules/authorization-reference/domain/reference.loader.ts b/apps/server/src/modules/authorization-reference/domain/reference.loader.ts index c2bd031baac..c96b0a41fdc 100644 --- a/apps/server/src/modules/authorization-reference/domain/reference.loader.ts +++ b/apps/server/src/modules/authorization-reference/domain/reference.loader.ts @@ -9,7 +9,12 @@ import { Injectable, NotImplementedException } from '@nestjs/common'; import { AuthorizableObject } from '@shared/domain/domain-object'; import { BaseDO } from '@shared/domain/domainobject'; import { EntityId } from '@shared/domain/types'; -import { CourseGroupRepo, CourseRepo, LegacySchoolRepo, SubmissionRepo, TaskRepo, UserRepo } from '@shared/repo'; +import { CourseRepo } from '@shared/repo/course'; +import { CourseGroupRepo } from '@shared/repo/coursegroup'; +import { LegacySchoolRepo } from '@shared/repo/school'; +import { SubmissionRepo } from '@shared/repo/submission'; +import { TaskRepo } from '@shared/repo/task'; +import { UserRepo } from '@shared/repo/user'; @Injectable() export class ReferenceLoader { diff --git a/apps/server/src/modules/authorization/authorization.module.ts b/apps/server/src/modules/authorization/authorization.module.ts index b9151b9fd94..4cf329e9f60 100644 --- a/apps/server/src/modules/authorization/authorization.module.ts +++ b/apps/server/src/modules/authorization/authorization.module.ts @@ -1,8 +1,8 @@ +import { LoggerModule } from '@core/logger'; import { FeathersModule } from '@infra/feathers'; import { Module } from '@nestjs/common'; -import { UserRepo } from '@shared/repo'; -import { LoggerModule } from '@core/logger'; -import { AuthorizationHelper, AuthorizationService, RuleManager, AuthorizationInjectionService } from './domain'; +import { UserRepo } from '@shared/repo/user'; +import { AuthorizationHelper, AuthorizationInjectionService, AuthorizationService, RuleManager } from './domain'; import { FeathersAuthorizationService, FeathersAuthProvider } from './feathers'; @Module({ diff --git a/apps/server/src/modules/authorization/domain/service/authorization.service.spec.ts b/apps/server/src/modules/authorization/domain/service/authorization.service.spec.ts index 7120f2b2d90..4687d9992df 100644 --- a/apps/server/src/modules/authorization/domain/service/authorization.service.spec.ts +++ b/apps/server/src/modules/authorization/domain/service/authorization.service.spec.ts @@ -2,7 +2,7 @@ import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { UnauthorizedException } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; import { Permission } from '@shared/domain/interface'; -import { UserRepo } from '@shared/repo'; +import { UserRepo } from '@shared/repo/user'; import { userFactory } from '@testing/factory/user.factory'; import { setupEntities } from '@testing/setup-entities'; import { ForbiddenLoggableException } from '../error'; diff --git a/apps/server/src/modules/authorization/domain/service/authorization.service.ts b/apps/server/src/modules/authorization/domain/service/authorization.service.ts index d6505519f50..4a4e683bb5c 100644 --- a/apps/server/src/modules/authorization/domain/service/authorization.service.ts +++ b/apps/server/src/modules/authorization/domain/service/authorization.service.ts @@ -3,7 +3,7 @@ import { AuthorizableObject } from '@shared/domain/domain-object'; import { BaseDO } from '@shared/domain/domainobject'; import { User } from '@shared/domain/entity'; import { EntityId } from '@shared/domain/types'; -import { UserRepo } from '@shared/repo'; +import { UserRepo } from '@shared/repo/user'; import { ForbiddenLoggableException } from '../error'; import { AuthorizationContext } from '../type'; import { AuthorizationHelper } from './authorization.helper'; diff --git a/apps/server/src/modules/board/board-collaboration.app.module.ts b/apps/server/src/modules/board/board-collaboration.app.module.ts index 223fba15d06..b298c7619af 100644 --- a/apps/server/src/modules/board/board-collaboration.app.module.ts +++ b/apps/server/src/modules/board/board-collaboration.app.module.ts @@ -6,7 +6,7 @@ import { RabbitMQWrapperModule } from '@infra/rabbitmq'; import { MikroOrmModule } from '@mikro-orm/nestjs'; import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; -import { createConfigModuleOptions } from '@shared/common'; +import { createConfigModuleOptions } from '@shared/common/config-module-options'; import { defaultMikroOrmOptions } from '@shared/common/defaultMikroOrmOptions'; import { ALL_ENTITIES } from '@shared/domain/entity/all-entities'; import { AuthorizationModule } from '../authorization'; diff --git a/apps/server/src/modules/board/controller/api-test/board-update-title-in-course.api.spec.ts b/apps/server/src/modules/board/controller/api-test/board-update-title-in-course.api.spec.ts index 939af3f0baa..a5d7a2c2dc6 100644 --- a/apps/server/src/modules/board/controller/api-test/board-update-title-in-course.api.spec.ts +++ b/apps/server/src/modules/board/controller/api-test/board-update-title-in-course.api.spec.ts @@ -2,7 +2,7 @@ import { EntityManager } from '@mikro-orm/mongodb'; import { ServerTestModule } from '@modules/server/server.app.module'; import { INestApplication } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { cleanupCollections } from '@testing/cleanup-collections'; import { courseFactory } from '@testing/factory/course.factory'; import { UserAndAccountTestFactory } from '@testing/factory/user-and-account.test.factory'; diff --git a/apps/server/src/modules/board/controller/api-test/board-update-title-in-room.api.spec.ts b/apps/server/src/modules/board/controller/api-test/board-update-title-in-room.api.spec.ts index d5c4a9d503c..f03db8a53cf 100644 --- a/apps/server/src/modules/board/controller/api-test/board-update-title-in-room.api.spec.ts +++ b/apps/server/src/modules/board/controller/api-test/board-update-title-in-room.api.spec.ts @@ -6,7 +6,7 @@ import { roomEntityFactory } from '@modules/room/testing'; import { ServerTestModule } from '@modules/server/server.app.module'; import { INestApplication } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { Permission, RoleName } from '@shared/domain/interface'; import { cleanupCollections } from '@testing/cleanup-collections'; import { groupEntityFactory } from '@testing/factory/group-entity.factory'; diff --git a/apps/server/src/modules/board/controller/board-submission.controller.ts b/apps/server/src/modules/board/controller/board-submission.controller.ts index a7500441c46..0923a5024ef 100644 --- a/apps/server/src/modules/board/controller/board-submission.controller.ts +++ b/apps/server/src/modules/board/controller/board-submission.controller.ts @@ -12,7 +12,7 @@ import { Post, } from '@nestjs/common'; import { ApiExtraModels, ApiOperation, ApiResponse, ApiTags, getSchemaPath } from '@nestjs/swagger'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { CardUc } from '../uc'; import { ElementUc } from '../uc/element.uc'; import { SubmissionItemUc } from '../uc/submission-item.uc'; diff --git a/apps/server/src/modules/board/controller/board.controller.ts b/apps/server/src/modules/board/controller/board.controller.ts index adaa025401e..8b40226a40c 100644 --- a/apps/server/src/modules/board/controller/board.controller.ts +++ b/apps/server/src/modules/board/controller/board.controller.ts @@ -13,7 +13,8 @@ import { Post, } from '@nestjs/common'; import { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger'; -import { ApiValidationError, RequestTimeout } from '@shared/common'; +import { RequestTimeout } from '@shared/common/decorators'; +import { ApiValidationError } from '@shared/common/error'; import { BoardUc } from '../uc'; import { BoardResponse, diff --git a/apps/server/src/modules/board/controller/card.controller.ts b/apps/server/src/modules/board/controller/card.controller.ts index 9ddd7190855..23803ddc008 100644 --- a/apps/server/src/modules/board/controller/card.controller.ts +++ b/apps/server/src/modules/board/controller/card.controller.ts @@ -14,7 +14,7 @@ import { Query, } from '@nestjs/common'; import { ApiExtraModels, ApiOperation, ApiResponse, ApiTags, getSchemaPath } from '@nestjs/swagger'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { CardUc, ColumnUc } from '../uc'; import { AnyContentElementResponse, diff --git a/apps/server/src/modules/board/controller/column.controller.ts b/apps/server/src/modules/board/controller/column.controller.ts index a7ddc57fcc1..fda134f9e7a 100644 --- a/apps/server/src/modules/board/controller/column.controller.ts +++ b/apps/server/src/modules/board/controller/column.controller.ts @@ -12,7 +12,7 @@ import { Put, } from '@nestjs/common'; import { ApiBody, ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { BoardUc, ColumnUc } from '../uc'; import { CardResponse, ColumnUrlParams, MoveColumnBodyParams, RenameBodyParams } from './dto'; import { CreateCardBodyParams } from './dto/card/create-card.body.params'; diff --git a/apps/server/src/modules/board/controller/dto/board/board.response.ts b/apps/server/src/modules/board/controller/dto/board/board.response.ts index edab474f7c9..d07f8110780 100644 --- a/apps/server/src/modules/board/controller/dto/board/board.response.ts +++ b/apps/server/src/modules/board/controller/dto/board/board.response.ts @@ -1,5 +1,5 @@ import { ApiProperty } from '@nestjs/swagger'; -import { DecodeHtmlEntities } from '@shared/controller'; +import { DecodeHtmlEntities } from '@shared/controller/transformer'; import { BoardFeature, BoardLayout } from '../../../domain'; import { TimestampsResponse } from '../timestamps.response'; import { ColumnResponse } from './column.response'; diff --git a/apps/server/src/modules/board/controller/dto/board/column.response.ts b/apps/server/src/modules/board/controller/dto/board/column.response.ts index 56938cc62aa..0aa423dbcf7 100644 --- a/apps/server/src/modules/board/controller/dto/board/column.response.ts +++ b/apps/server/src/modules/board/controller/dto/board/column.response.ts @@ -1,5 +1,5 @@ import { ApiProperty } from '@nestjs/swagger'; -import { DecodeHtmlEntities } from '@shared/controller'; +import { DecodeHtmlEntities } from '@shared/controller/transformer'; import { TimestampsResponse } from '../timestamps.response'; import { CardSkeletonResponse } from './card-skeleton.response'; diff --git a/apps/server/src/modules/board/controller/dto/board/create-board.body.params.ts b/apps/server/src/modules/board/controller/dto/board/create-board.body.params.ts index 1c48e19cb17..8c59f934c45 100644 --- a/apps/server/src/modules/board/controller/dto/board/create-board.body.params.ts +++ b/apps/server/src/modules/board/controller/dto/board/create-board.body.params.ts @@ -1,6 +1,6 @@ import { ApiProperty } from '@nestjs/swagger'; -import { SanitizeHtml } from '@shared/controller'; -import { IsEnum, IsMongoId, NotEquals, MaxLength, MinLength } from 'class-validator'; +import { SanitizeHtml } from '@shared/controller/transformer'; +import { IsEnum, IsMongoId, MaxLength, MinLength, NotEquals } from 'class-validator'; import { BoardExternalReferenceType, BoardLayout } from '../../../domain'; export class CreateBoardBodyParams { diff --git a/apps/server/src/modules/board/controller/dto/board/rename.body.params.ts b/apps/server/src/modules/board/controller/dto/board/rename.body.params.ts index 7d00a9f6d6b..dfcd5988d4c 100644 --- a/apps/server/src/modules/board/controller/dto/board/rename.body.params.ts +++ b/apps/server/src/modules/board/controller/dto/board/rename.body.params.ts @@ -1,5 +1,5 @@ import { ApiProperty } from '@nestjs/swagger'; -import { SanitizeHtml } from '@shared/controller'; +import { SanitizeHtml } from '@shared/controller/transformer'; import { IsString } from 'class-validator'; export class RenameBodyParams { diff --git a/apps/server/src/modules/board/controller/dto/board/update-board-title.body.params.ts b/apps/server/src/modules/board/controller/dto/board/update-board-title.body.params.ts index 40430dfdd04..6de5fe61a04 100644 --- a/apps/server/src/modules/board/controller/dto/board/update-board-title.body.params.ts +++ b/apps/server/src/modules/board/controller/dto/board/update-board-title.body.params.ts @@ -1,5 +1,5 @@ import { ApiProperty } from '@nestjs/swagger'; -import { SanitizeHtml } from '@shared/controller'; +import { SanitizeHtml } from '@shared/controller/transformer'; import { IsString, MaxLength, MinLength } from 'class-validator'; export class UpdateBoardTitleParams { diff --git a/apps/server/src/modules/board/controller/dto/card/card.response.ts b/apps/server/src/modules/board/controller/dto/card/card.response.ts index 9e9be2b7262..70fdd7948b0 100644 --- a/apps/server/src/modules/board/controller/dto/card/card.response.ts +++ b/apps/server/src/modules/board/controller/dto/card/card.response.ts @@ -1,5 +1,5 @@ import { ApiExtraModels, ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger'; -import { DecodeHtmlEntities } from '@shared/controller'; +import { DecodeHtmlEntities } from '@shared/controller/transformer'; import { AnyContentElementResponse, CollaborativeTextEditorElementResponse, diff --git a/apps/server/src/modules/board/controller/dto/element/file-element.response.ts b/apps/server/src/modules/board/controller/dto/element/file-element.response.ts index aad15af3237..355679bd5dc 100644 --- a/apps/server/src/modules/board/controller/dto/element/file-element.response.ts +++ b/apps/server/src/modules/board/controller/dto/element/file-element.response.ts @@ -1,5 +1,5 @@ import { ApiProperty } from '@nestjs/swagger'; -import { DecodeHtmlEntities } from '@shared/controller'; +import { DecodeHtmlEntities } from '@shared/controller/transformer'; import { ContentElementType } from '../../../domain'; import { TimestampsResponse } from '../timestamps.response'; diff --git a/apps/server/src/modules/board/controller/element.controller.ts b/apps/server/src/modules/board/controller/element.controller.ts index 0e7d8cf750a..3f654ad8695 100644 --- a/apps/server/src/modules/board/controller/element.controller.ts +++ b/apps/server/src/modules/board/controller/element.controller.ts @@ -13,7 +13,7 @@ import { Put, } from '@nestjs/common'; import { ApiBody, ApiExtraModels, ApiOperation, ApiResponse, ApiTags, getSchemaPath } from '@nestjs/swagger'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { CardUc } from '../uc'; import { ElementUc } from '../uc/element.uc'; import { diff --git a/apps/server/src/modules/board/controller/media-board/dto/media-line.response.ts b/apps/server/src/modules/board/controller/media-board/dto/media-line.response.ts index 793f577ae14..208885e495e 100644 --- a/apps/server/src/modules/board/controller/media-board/dto/media-line.response.ts +++ b/apps/server/src/modules/board/controller/media-board/dto/media-line.response.ts @@ -1,5 +1,5 @@ import { ApiProperty, getSchemaPath } from '@nestjs/swagger'; -import { DecodeHtmlEntities } from '@shared/controller'; +import { DecodeHtmlEntities } from '@shared/controller/transformer'; import { MediaBoardColors } from '../../../domain'; import { DeletedElementResponse, TimestampsResponse } from '../../dto'; import { AnyMediaElementResponse } from './any-media-element.response'; diff --git a/apps/server/src/modules/board/controller/media-board/media-board.controller.ts b/apps/server/src/modules/board/controller/media-board/media-board.controller.ts index a3f8c401bc2..457e89178f6 100644 --- a/apps/server/src/modules/board/controller/media-board/media-board.controller.ts +++ b/apps/server/src/modules/board/controller/media-board/media-board.controller.ts @@ -21,7 +21,7 @@ import { ApiOperation, ApiTags, } from '@nestjs/swagger'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { MediaAvailableLine, MediaBoard, MediaLine } from '../../domain'; import { MediaAvailableLineUc, MediaBoardUc } from '../../uc'; import { BoardUrlParams } from '../dto'; diff --git a/apps/server/src/modules/board/controller/media-board/media-element.controller.ts b/apps/server/src/modules/board/controller/media-board/media-element.controller.ts index c8d3ebecc80..73266e350e0 100644 --- a/apps/server/src/modules/board/controller/media-board/media-element.controller.ts +++ b/apps/server/src/modules/board/controller/media-board/media-element.controller.ts @@ -20,7 +20,7 @@ import { ApiOperation, ApiTags, } from '@nestjs/swagger'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { MediaExternalToolElement } from '../../domain'; import { MediaElementUc } from '../../uc'; import { diff --git a/apps/server/src/modules/board/controller/media-board/media-line.controller.ts b/apps/server/src/modules/board/controller/media-board/media-line.controller.ts index 65e396b8842..42b6379a6be 100644 --- a/apps/server/src/modules/board/controller/media-board/media-line.controller.ts +++ b/apps/server/src/modules/board/controller/media-board/media-line.controller.ts @@ -19,7 +19,7 @@ import { ApiOperation, ApiTags, } from '@nestjs/swagger'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { MediaLineUc } from '../../uc'; import { MoveColumnBodyParams, RenameBodyParams } from '../dto'; import { CollapsableBodyParams, ColorBodyParams, LineUrlParams } from './dto'; diff --git a/apps/server/src/modules/board/service/internal/content-element-update.service.ts b/apps/server/src/modules/board/service/internal/content-element-update.service.ts index 4fe1d2c4eea..dce58f031f4 100644 --- a/apps/server/src/modules/board/service/internal/content-element-update.service.ts +++ b/apps/server/src/modules/board/service/internal/content-element-update.service.ts @@ -1,5 +1,5 @@ import { Injectable } from '@nestjs/common'; -import { sanitizeRichText } from '@shared/controller'; +import { sanitizeRichText } from '@shared/controller/transformer'; import { InputFormat } from '@shared/domain/types'; import { AnyElementContentBody, diff --git a/apps/server/src/modules/collaborative-storage/collaborative-storage.module.ts b/apps/server/src/modules/collaborative-storage/collaborative-storage.module.ts index 6bfff10a324..733b697ab81 100644 --- a/apps/server/src/modules/collaborative-storage/collaborative-storage.module.ts +++ b/apps/server/src/modules/collaborative-storage/collaborative-storage.module.ts @@ -1,12 +1,12 @@ -import { Module } from '@nestjs/common'; -import { CollaborativeStorageAdapterModule } from '@infra/collaborative-storage'; -import { TeamsRepo } from '@shared/repo'; import { LoggerModule } from '@core/logger'; +import { CollaborativeStorageAdapterModule } from '@infra/collaborative-storage'; import { AuthorizationModule } from '@modules/authorization'; import { RoleModule } from '@modules/role'; -import { CollaborativeStorageService } from './services'; -import { TeamPermissionsMapper, TeamMapper } from './mapper'; +import { Module } from '@nestjs/common'; +import { TeamsRepo } from '@shared/repo/teams'; import { CollaborativeStorageController } from './controller'; +import { TeamMapper, TeamPermissionsMapper } from './mapper'; +import { CollaborativeStorageService } from './services'; import { CollaborativeStorageUc } from './uc'; @Module({ diff --git a/apps/server/src/modules/collaborative-storage/services/collaborative-storage.service.spec.ts b/apps/server/src/modules/collaborative-storage/services/collaborative-storage.service.spec.ts index 7d96604f199..8f3b5810661 100644 --- a/apps/server/src/modules/collaborative-storage/services/collaborative-storage.service.spec.ts +++ b/apps/server/src/modules/collaborative-storage/services/collaborative-storage.service.spec.ts @@ -1,3 +1,4 @@ +import { LegacyLogger } from '@core/logger'; import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { CollaborativeStorageAdapter } from '@infra/collaborative-storage'; import { ObjectId } from '@mikro-orm/mongodb'; @@ -10,8 +11,7 @@ import { ForbiddenException } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; import { TeamEntity } from '@shared/domain/entity'; import { RoleName } from '@shared/domain/interface'; -import { TeamsRepo } from '@shared/repo'; -import { LegacyLogger } from '@core/logger'; +import { TeamsRepo } from '@shared/repo/teams'; import { teamFactory } from '@testing/factory/team.factory'; import { setupEntities } from '@testing/setup-entities'; import { TeamDto } from './dto/team.dto'; diff --git a/apps/server/src/modules/collaborative-storage/services/collaborative-storage.service.ts b/apps/server/src/modules/collaborative-storage/services/collaborative-storage.service.ts index fc6bdea7ae3..48fdbf94bb4 100644 --- a/apps/server/src/modules/collaborative-storage/services/collaborative-storage.service.ts +++ b/apps/server/src/modules/collaborative-storage/services/collaborative-storage.service.ts @@ -1,11 +1,11 @@ +import { LegacyLogger } from '@core/logger'; import { CollaborativeStorageAdapter } from '@infra/collaborative-storage'; import { AuthorizationContextBuilder, AuthorizationService } from '@modules/authorization'; import { RoleService } from '@modules/role/service/role.service'; import { Injectable } from '@nestjs/common'; import { Permission } from '@shared/domain/interface'; import { EntityId } from '@shared/domain/types'; -import { TeamsRepo } from '@shared/repo'; -import { LegacyLogger } from '@core/logger'; +import { TeamsRepo } from '@shared/repo/teams'; import { TeamMapper } from '../mapper/team.mapper'; import { TeamPermissionsDto } from './dto/team-permissions.dto'; import { TeamDto } from './dto/team.dto'; diff --git a/apps/server/src/modules/collaborative-text-editor/api/collaborative-text-editor.controller.ts b/apps/server/src/modules/collaborative-text-editor/api/collaborative-text-editor.controller.ts index b3c1dca34a6..fcabee65e7a 100644 --- a/apps/server/src/modules/collaborative-text-editor/api/collaborative-text-editor.controller.ts +++ b/apps/server/src/modules/collaborative-text-editor/api/collaborative-text-editor.controller.ts @@ -1,7 +1,7 @@ import { CurrentUser, ICurrentUser, JwtAuthentication } from '@infra/auth-guard'; import { Controller, Delete, ForbiddenException, Get, NotFoundException, Param, Res } from '@nestjs/common'; import { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { Response } from 'express'; import { CollaborativeTextEditorUc } from './collaborative-text-editor.uc'; import { CollaborativeTextEditorResponse } from './dto/collaborative-text-editor.response'; diff --git a/apps/server/src/modules/common-cartridge/common-cartridge-api.app.module.ts b/apps/server/src/modules/common-cartridge/common-cartridge-api.app.module.ts index 6ec0feebe14..bceb4395d24 100644 --- a/apps/server/src/modules/common-cartridge/common-cartridge-api.app.module.ts +++ b/apps/server/src/modules/common-cartridge/common-cartridge-api.app.module.ts @@ -4,7 +4,7 @@ import { AuthorizationClientModule } from '@infra/authorization-client'; import { HttpModule } from '@nestjs/axios'; import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; -import { createConfigModuleOptions } from '@shared/common'; +import { createConfigModuleOptions } from '@shared/common/config-module-options'; import { authorizationClientConfig } from '../files-storage/files-storage.config'; import { config } from './common-cartridge.config'; import { CommonCartridgeModule } from './common-cartridge.module'; diff --git a/apps/server/src/modules/common-cartridge/common-cartridge-client/board-client/board-client.adapter.ts b/apps/server/src/modules/common-cartridge/common-cartridge-client/board-client/board-client.adapter.ts index 02c8d09e746..b2b48e2d331 100644 --- a/apps/server/src/modules/common-cartridge/common-cartridge-client/board-client/board-client.adapter.ts +++ b/apps/server/src/modules/common-cartridge/common-cartridge-client/board-client/board-client.adapter.ts @@ -1,11 +1,11 @@ import { Inject, Injectable, UnauthorizedException } from '@nestjs/common'; import { REQUEST } from '@nestjs/core'; -import { extractJwtFromHeader } from '@shared/common'; +import { extractJwtFromHeader } from '@shared/common/utils'; import { RawAxiosRequestConfig } from 'axios'; import { Request } from 'express'; import { BoardApi } from './board-api-client'; -import { BoardSkeletonDtoMapper } from './mapper'; import { BoardSkeletonDto } from './dto'; +import { BoardSkeletonDtoMapper } from './mapper'; @Injectable() export class BoardClientAdapter { diff --git a/apps/server/src/modules/common-cartridge/common-cartridge-client/card-client/card-client.adapter.ts b/apps/server/src/modules/common-cartridge/common-cartridge-client/card-client/card-client.adapter.ts index 41e689dee38..66a803f3c8a 100644 --- a/apps/server/src/modules/common-cartridge/common-cartridge-client/card-client/card-client.adapter.ts +++ b/apps/server/src/modules/common-cartridge/common-cartridge-client/card-client/card-client.adapter.ts @@ -1,8 +1,8 @@ import { Inject, Injectable, UnauthorizedException } from '@nestjs/common'; -import { extractJwtFromHeader } from '@shared/common'; +import { REQUEST } from '@nestjs/core'; +import { extractJwtFromHeader } from '@shared/common/utils'; import { RawAxiosRequestConfig } from 'axios'; import { Request } from 'express'; -import { REQUEST } from '@nestjs/core'; import { BoardCardApi } from './cards-api-client'; import { CardListResponseDto } from './dto/card-list-response.dto'; import { CardResponseMapper } from './mapper/card-response.mapper'; diff --git a/apps/server/src/modules/common-cartridge/common-cartridge-client/lesson-client/lesson-client.adapter.ts b/apps/server/src/modules/common-cartridge/common-cartridge-client/lesson-client/lesson-client.adapter.ts index 2f3930ad9f9..334b68f9087 100644 --- a/apps/server/src/modules/common-cartridge/common-cartridge-client/lesson-client/lesson-client.adapter.ts +++ b/apps/server/src/modules/common-cartridge/common-cartridge-client/lesson-client/lesson-client.adapter.ts @@ -1,6 +1,6 @@ import { Inject, Injectable, UnauthorizedException } from '@nestjs/common'; import { REQUEST } from '@nestjs/core'; -import { extractJwtFromHeader } from '@shared/common'; +import { extractJwtFromHeader } from '@shared/common/utils'; import { RawAxiosRequestConfig } from 'axios'; import { Request } from 'express'; import { LessonDto, LessonLinkedTaskDto } from './dto'; diff --git a/apps/server/src/modules/common-cartridge/common-cartridge-client/room-client/room-client.adapter.ts b/apps/server/src/modules/common-cartridge/common-cartridge-client/room-client/room-client.adapter.ts index b11354c8d4d..45f4a0bf848 100644 --- a/apps/server/src/modules/common-cartridge/common-cartridge-client/room-client/room-client.adapter.ts +++ b/apps/server/src/modules/common-cartridge/common-cartridge-client/room-client/room-client.adapter.ts @@ -1,11 +1,11 @@ import { Inject, Injectable, UnauthorizedException } from '@nestjs/common'; import { REQUEST } from '@nestjs/core'; -import { Request } from 'express'; -import { extractJwtFromHeader } from '@shared/common'; +import { extractJwtFromHeader } from '@shared/common/utils'; import { RawAxiosRequestConfig } from 'axios'; -import { CourseRoomsApi } from './room-api-client'; +import { Request } from 'express'; import { RoomBoardDto } from './dto'; import { RoomBoardDtoMapper } from './mapper/room-board-dto.mapper'; +import { CourseRoomsApi } from './room-api-client'; @Injectable() export class CourseRoomsClientAdapter { diff --git a/apps/server/src/modules/common-cartridge/import/common-cartridge-resource-factory.ts b/apps/server/src/modules/common-cartridge/import/common-cartridge-resource-factory.ts index b8058b59f95..b80b9a80f3a 100644 --- a/apps/server/src/modules/common-cartridge/import/common-cartridge-resource-factory.ts +++ b/apps/server/src/modules/common-cartridge/import/common-cartridge-resource-factory.ts @@ -1,4 +1,4 @@ -import { sanitizeRichText } from '@shared/controller'; +import { sanitizeRichText } from '@shared/controller/transformer'; import { InputFormat } from '@shared/domain/types'; import AdmZip from 'adm-zip'; import { JSDOM } from 'jsdom'; diff --git a/apps/server/src/modules/deletion-console/deletion-console.app.module.ts b/apps/server/src/modules/deletion-console/deletion-console.app.module.ts index a6d50aaee5a..0110a8e707b 100644 --- a/apps/server/src/modules/deletion-console/deletion-console.app.module.ts +++ b/apps/server/src/modules/deletion-console/deletion-console.app.module.ts @@ -6,7 +6,7 @@ import { UserModule } from '@modules/user'; import { HttpModule } from '@nestjs/axios'; import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; -import { createConfigModuleOptions } from '@shared/common'; +import { createConfigModuleOptions } from '@shared/common/config-module-options'; import { defaultMikroOrmOptions } from '@shared/common/defaultMikroOrmOptions'; import { ALL_ENTITIES } from '@shared/domain/entity'; import { ConsoleModule } from 'nestjs-console'; diff --git a/apps/server/src/modules/deletion/api/uc/deletion-request.uc.spec.ts b/apps/server/src/modules/deletion/api/uc/deletion-request.uc.spec.ts index fbbb8e65721..2a08e643579 100644 --- a/apps/server/src/modules/deletion/api/uc/deletion-request.uc.spec.ts +++ b/apps/server/src/modules/deletion/api/uc/deletion-request.uc.spec.ts @@ -1,10 +1,10 @@ +import { LegacyLogger } from '@core/logger'; import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { MikroORM } from '@mikro-orm/core'; import { ConfigModule } from '@nestjs/config'; import { EventBus } from '@nestjs/cqrs'; import { Test, TestingModule } from '@nestjs/testing'; -import { createConfigModuleOptions } from '@shared/common'; -import { LegacyLogger } from '@core/logger'; +import { createConfigModuleOptions } from '@shared/common/config-module-options'; import { setupEntities } from '@testing/setup-entities'; import { ObjectId } from 'bson'; import { DomainDeletionReportBuilder, DomainOperationReportBuilder } from '../../domain/builder'; diff --git a/apps/server/src/modules/deletion/domain/service/deletion-request.service.spec.ts b/apps/server/src/modules/deletion/domain/service/deletion-request.service.spec.ts index b56e09183b0..6f191ff5ec6 100644 --- a/apps/server/src/modules/deletion/domain/service/deletion-request.service.spec.ts +++ b/apps/server/src/modules/deletion/domain/service/deletion-request.service.spec.ts @@ -1,7 +1,7 @@ import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { ConfigModule } from '@nestjs/config'; import { Test, TestingModule } from '@nestjs/testing'; -import { createConfigModuleOptions } from '@shared/common'; +import { createConfigModuleOptions } from '@shared/common/config-module-options'; import { setupEntities } from '@testing/setup-entities'; import { ObjectId } from 'bson'; import { DeletionRequestRepo } from '../../repo'; diff --git a/apps/server/src/modules/files-storage/controller/api-test/files-security.api.spec.ts b/apps/server/src/modules/files-storage/controller/api-test/files-security.api.spec.ts index a29a35ba255..aa07da71ff1 100644 --- a/apps/server/src/modules/files-storage/controller/api-test/files-security.api.spec.ts +++ b/apps/server/src/modules/files-storage/controller/api-test/files-security.api.spec.ts @@ -2,7 +2,7 @@ import { createMock } from '@golevelup/ts-jest'; import { EntityManager } from '@mikro-orm/mongodb'; import { INestApplication } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { cleanupCollections } from '@testing/cleanup-collections'; import { fileRecordFactory } from '@testing/factory/filerecord.factory'; import { schoolEntityFactory } from '@testing/factory/school-entity.factory'; diff --git a/apps/server/src/modules/files-storage/controller/api-test/files-storage-copy-files.api.spec.ts b/apps/server/src/modules/files-storage/controller/api-test/files-storage-copy-files.api.spec.ts index 7ad19cd6359..90d587612ae 100644 --- a/apps/server/src/modules/files-storage/controller/api-test/files-storage-copy-files.api.spec.ts +++ b/apps/server/src/modules/files-storage/controller/api-test/files-storage-copy-files.api.spec.ts @@ -5,7 +5,7 @@ import { S3ClientAdapter } from '@infra/s3-client'; import { EntityManager } from '@mikro-orm/mongodb'; import { INestApplication } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { cleanupCollections } from '@testing/cleanup-collections'; import { courseFactory } from '@testing/factory/course.factory'; import { fileRecordFactory } from '@testing/factory/filerecord.factory'; diff --git a/apps/server/src/modules/files-storage/controller/api-test/files-storage-delete-files.api.spec.ts b/apps/server/src/modules/files-storage/controller/api-test/files-storage-delete-files.api.spec.ts index 0478e763303..4b52ec6cbaf 100644 --- a/apps/server/src/modules/files-storage/controller/api-test/files-storage-delete-files.api.spec.ts +++ b/apps/server/src/modules/files-storage/controller/api-test/files-storage-delete-files.api.spec.ts @@ -6,7 +6,7 @@ import { INestApplication } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; import { AuthorizationClientAdapter } from '@infra/authorization-client'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { EntityId } from '@shared/domain/types'; import { cleanupCollections } from '@testing/cleanup-collections'; import { fileRecordFactory } from '@testing/factory/filerecord.factory'; diff --git a/apps/server/src/modules/files-storage/controller/api-test/files-storage-download-upload.api.spec.ts b/apps/server/src/modules/files-storage/controller/api-test/files-storage-download-upload.api.spec.ts index c82fc880995..edc05cedde6 100644 --- a/apps/server/src/modules/files-storage/controller/api-test/files-storage-download-upload.api.spec.ts +++ b/apps/server/src/modules/files-storage/controller/api-test/files-storage-download-upload.api.spec.ts @@ -5,7 +5,7 @@ import { S3ClientAdapter } from '@infra/s3-client'; import { EntityManager, ObjectId } from '@mikro-orm/mongodb'; import { INestApplication } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { cleanupCollections } from '@testing/cleanup-collections'; import { JwtAuthenticationFactory } from '@testing/factory/jwt-authentication.factory'; import { schoolEntityFactory } from '@testing/factory/school-entity.factory'; diff --git a/apps/server/src/modules/files-storage/controller/api-test/files-storage-list-files.api.spec.ts b/apps/server/src/modules/files-storage/controller/api-test/files-storage-list-files.api.spec.ts index 2201e148761..bcadd7c2f75 100644 --- a/apps/server/src/modules/files-storage/controller/api-test/files-storage-list-files.api.spec.ts +++ b/apps/server/src/modules/files-storage/controller/api-test/files-storage-list-files.api.spec.ts @@ -3,7 +3,7 @@ import { AuthorizationClientAdapter } from '@infra/authorization-client'; import { EntityManager } from '@mikro-orm/mongodb'; import { INestApplication } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { EntityId } from '@shared/domain/types'; import { cleanupCollections } from '@testing/cleanup-collections'; import { fileRecordFactory } from '@testing/factory/filerecord.factory'; diff --git a/apps/server/src/modules/files-storage/controller/api-test/files-storage-preview.api.spec.ts b/apps/server/src/modules/files-storage/controller/api-test/files-storage-preview.api.spec.ts index c5efea819fb..714caaf0dd9 100644 --- a/apps/server/src/modules/files-storage/controller/api-test/files-storage-preview.api.spec.ts +++ b/apps/server/src/modules/files-storage/controller/api-test/files-storage-preview.api.spec.ts @@ -6,7 +6,7 @@ import { S3ClientAdapter } from '@infra/s3-client'; import { EntityManager, ObjectId } from '@mikro-orm/mongodb'; import { INestApplication, NotFoundException, StreamableFile } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { EntityId } from '@shared/domain/types'; import { cleanupCollections } from '@testing/cleanup-collections'; import { JwtAuthenticationFactory } from '@testing/factory/jwt-authentication.factory'; diff --git a/apps/server/src/modules/files-storage/controller/api-test/files-storage-rename-file.api.spec.ts b/apps/server/src/modules/files-storage/controller/api-test/files-storage-rename-file.api.spec.ts index 9b66ab6bf0c..0f4a0943457 100644 --- a/apps/server/src/modules/files-storage/controller/api-test/files-storage-rename-file.api.spec.ts +++ b/apps/server/src/modules/files-storage/controller/api-test/files-storage-rename-file.api.spec.ts @@ -3,7 +3,7 @@ import { AuthorizationClientAdapter } from '@infra/authorization-client'; import { EntityManager } from '@mikro-orm/mongodb'; import { INestApplication } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { cleanupCollections } from '@testing/cleanup-collections'; import { fileRecordFactory } from '@testing/factory/filerecord.factory'; import { JwtAuthenticationFactory } from '@testing/factory/jwt-authentication.factory'; diff --git a/apps/server/src/modules/files-storage/controller/api-test/files-storage-restore-files.api.spec.ts b/apps/server/src/modules/files-storage/controller/api-test/files-storage-restore-files.api.spec.ts index 8954687d1f9..fa955c659b6 100644 --- a/apps/server/src/modules/files-storage/controller/api-test/files-storage-restore-files.api.spec.ts +++ b/apps/server/src/modules/files-storage/controller/api-test/files-storage-restore-files.api.spec.ts @@ -5,7 +5,7 @@ import { S3ClientAdapter } from '@infra/s3-client'; import { EntityManager, ObjectId } from '@mikro-orm/mongodb'; import { INestApplication } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { EntityId } from '@shared/domain/types'; import { cleanupCollections } from '@testing/cleanup-collections'; import { fileRecordFactory } from '@testing/factory/filerecord.factory'; diff --git a/apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts b/apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts index bda96f52d75..c26e0704f24 100644 --- a/apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts +++ b/apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts @@ -1,6 +1,6 @@ import { ScanResult } from '@infra/antivirus'; import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; -import { StringToBoolean } from '@shared/controller'; +import { StringToBoolean } from '@shared/controller/transformer'; import { EntityId } from '@shared/domain/types'; import { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator'; import { FileRecordParentType, PreviewOutputMimeTypes, PreviewWidth, StorageLocation } from '../../interface'; diff --git a/apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts b/apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts index d0dd2b6f549..4566cba58cb 100644 --- a/apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts +++ b/apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts @@ -1,5 +1,6 @@ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; -import { DecodeHtmlEntities, PaginationResponse } from '@shared/controller'; +import { PaginationResponse } from '@shared/controller/dto'; +import { DecodeHtmlEntities } from '@shared/controller/transformer'; import { FileRecord, PreviewStatus, ScanStatus } from '../../entity'; import { API_VERSION_PATH } from '../../files-storage.const'; import { FileRecordParentType } from '../../interface'; diff --git a/apps/server/src/modules/files-storage/controller/files-storage.controller.ts b/apps/server/src/modules/files-storage/controller/files-storage.controller.ts index 95bb74a6d06..60fea3ae764 100644 --- a/apps/server/src/modules/files-storage/controller/files-storage.controller.ts +++ b/apps/server/src/modules/files-storage/controller/files-storage.controller.ts @@ -23,8 +23,9 @@ import { UseInterceptors, } from '@nestjs/common'; import { ApiConsumes, ApiHeader, ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger'; -import { ApiValidationError, RequestLoggingInterceptor } from '@shared/common'; -import { PaginationParams } from '@shared/controller'; +import { ApiValidationError } from '@shared/common/error'; +import { RequestLoggingInterceptor } from '@shared/common/interceptor'; +import { PaginationParams } from '@shared/controller/dto'; import { Request, Response } from 'express'; import { GetFileResponse } from '../interface'; import { FileRecordMapper, FilesStorageMapper } from '../mapper'; diff --git a/apps/server/src/modules/files-storage/files-preview-amqp.app.module.ts b/apps/server/src/modules/files-storage/files-preview-amqp.app.module.ts index 573ec7520dc..bd0b4b58632 100644 --- a/apps/server/src/modules/files-storage/files-preview-amqp.app.module.ts +++ b/apps/server/src/modules/files-storage/files-preview-amqp.app.module.ts @@ -2,7 +2,7 @@ import { CoreModule } from '@core/core.module'; import { PreviewGeneratorConsumerModule } from '@infra/preview-generator'; import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; -import { createConfigModuleOptions } from '@shared/common'; +import { createConfigModuleOptions } from '@shared/common/config-module-options'; import { config, defaultConfig, s3Config } from './files-storage.config'; @Module({ diff --git a/apps/server/src/modules/files-storage/files-storage-amqp.app.module.ts b/apps/server/src/modules/files-storage/files-storage-amqp.app.module.ts index 481b5d0a297..366740328ee 100644 --- a/apps/server/src/modules/files-storage/files-storage-amqp.app.module.ts +++ b/apps/server/src/modules/files-storage/files-storage-amqp.app.module.ts @@ -2,7 +2,7 @@ import { CoreModule } from '@core/core.module'; import { LoggerModule } from '@core/logger'; import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; -import { createConfigModuleOptions } from '@shared/common'; +import { createConfigModuleOptions } from '@shared/common/config-module-options'; import { FilesStorageConsumer } from './controller'; import { config } from './files-storage.config'; import { FilesStorageModule } from './files-storage.module'; diff --git a/apps/server/src/modules/files-storage/files-storage-api.app.module.ts b/apps/server/src/modules/files-storage/files-storage-api.app.module.ts index 129342f5c42..b5aed77dcef 100644 --- a/apps/server/src/modules/files-storage/files-storage-api.app.module.ts +++ b/apps/server/src/modules/files-storage/files-storage-api.app.module.ts @@ -4,7 +4,7 @@ import { AuthorizationClientModule } from '@infra/authorization-client'; import { HttpModule } from '@nestjs/axios'; import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; -import { createConfigModuleOptions } from '@shared/common'; +import { createConfigModuleOptions } from '@shared/common/config-module-options'; import { FileSecurityController, FilesStorageConfigController, FilesStorageController } from './controller'; import { authorizationClientConfig, config } from './files-storage.config'; import { FilesStorageModule } from './files-storage.module'; diff --git a/apps/server/src/modules/files-storage/repo/filerecord-scope.ts b/apps/server/src/modules/files-storage/repo/filerecord-scope.ts index c2a4fc9a1c3..b1c56a454f7 100644 --- a/apps/server/src/modules/files-storage/repo/filerecord-scope.ts +++ b/apps/server/src/modules/files-storage/repo/filerecord-scope.ts @@ -1,6 +1,6 @@ import { ObjectId } from '@mikro-orm/mongodb'; import { EntityId } from '@shared/domain/types'; -import { Scope } from '@shared/repo'; +import { Scope } from '@shared/repo/scope'; import { FileRecord } from '../entity'; import { StorageLocation } from '../interface'; diff --git a/apps/server/src/modules/files-storage/repo/filerecord.repo.ts b/apps/server/src/modules/files-storage/repo/filerecord.repo.ts index c50f4fa2acf..3d0050beac2 100644 --- a/apps/server/src/modules/files-storage/repo/filerecord.repo.ts +++ b/apps/server/src/modules/files-storage/repo/filerecord.repo.ts @@ -1,7 +1,7 @@ import { Injectable } from '@nestjs/common'; import { IFindOptions, SortOrder } from '@shared/domain/interface'; import { Counted, EntityId } from '@shared/domain/types'; -import { BaseRepo } from '@shared/repo'; +import { BaseRepo } from '@shared/repo/base.repo'; import { FileRecord } from '../entity'; import { StorageLocation } from '../interface'; import { FileRecordScope } from './filerecord-scope'; diff --git a/apps/server/src/modules/files/uc/delete-files.uc.ts b/apps/server/src/modules/files/uc/delete-files.uc.ts index d038698feae..641a6a1ebd9 100644 --- a/apps/server/src/modules/files/uc/delete-files.uc.ts +++ b/apps/server/src/modules/files/uc/delete-files.uc.ts @@ -1,10 +1,10 @@ /* eslint-disable no-await-in-loop */ import { DeleteObjectCommand, S3Client } from '@aws-sdk/client-s3'; +import { LegacyLogger } from '@core/logger'; import { Injectable } from '@nestjs/common'; +import { TypeGuard } from '@shared/common/guards'; import { StorageProviderEntity } from '@shared/domain/entity'; import { StorageProviderRepo } from '@shared/repo/storageprovider'; -import { LegacyLogger } from '@core/logger'; -import { TypeGuard } from '@shared/common'; import { FileEntity } from '../entity'; import { FilesRepo } from '../repo'; diff --git a/apps/server/src/modules/fwu-learning-contents/fwu-learning-contents-test.module.ts b/apps/server/src/modules/fwu-learning-contents/fwu-learning-contents-test.module.ts index 0a7208efd08..be208f7ec37 100644 --- a/apps/server/src/modules/fwu-learning-contents/fwu-learning-contents-test.module.ts +++ b/apps/server/src/modules/fwu-learning-contents/fwu-learning-contents-test.module.ts @@ -11,7 +11,7 @@ import { SystemEntity } from '@modules/system/entity'; import { HttpModule } from '@nestjs/axios'; import { DynamicModule, Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; -import { createConfigModuleOptions } from '@shared/common'; +import { createConfigModuleOptions } from '@shared/common/config-module-options'; import { Role, SchoolEntity, SchoolYearEntity, User } from '@shared/domain/entity'; import { FwuLearningContentsController } from './controller/fwu-learning-contents.controller'; import { config, s3Config } from './fwu-learning-contents.config'; diff --git a/apps/server/src/modules/fwu-learning-contents/fwu-learning-contents.app.module.ts b/apps/server/src/modules/fwu-learning-contents/fwu-learning-contents.app.module.ts index edca23e162a..f22c45b10c7 100644 --- a/apps/server/src/modules/fwu-learning-contents/fwu-learning-contents.app.module.ts +++ b/apps/server/src/modules/fwu-learning-contents/fwu-learning-contents.app.module.ts @@ -11,7 +11,7 @@ import { SystemEntity } from '@modules/system/entity'; import { HttpModule } from '@nestjs/axios'; import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; -import { createConfigModuleOptions } from '@shared/common'; +import { createConfigModuleOptions } from '@shared/common/config-module-options'; import { defaultMikroOrmOptions } from '@shared/common/defaultMikroOrmOptions'; import { Role, SchoolEntity, SchoolYearEntity, User } from '@shared/domain/entity'; import { FwuLearningContentsController } from './controller/fwu-learning-contents.controller'; diff --git a/apps/server/src/modules/group/controller/dto/request/class-sort-params.ts b/apps/server/src/modules/group/controller/dto/request/class-sort-params.ts index 25ff15adb18..ae7e7af0ae2 100644 --- a/apps/server/src/modules/group/controller/dto/request/class-sort-params.ts +++ b/apps/server/src/modules/group/controller/dto/request/class-sort-params.ts @@ -1,5 +1,5 @@ import { ApiPropertyOptional } from '@nestjs/swagger'; -import { SortingParams } from '@shared/controller'; +import { SortingParams } from '@shared/controller/dto'; import { IsEnum, IsOptional } from 'class-validator'; import { ClassSortQueryType } from '../interface'; diff --git a/apps/server/src/modules/group/controller/dto/request/group-pagination.params.ts b/apps/server/src/modules/group/controller/dto/request/group-pagination.params.ts index c96860abf04..4cd4395d7d4 100644 --- a/apps/server/src/modules/group/controller/dto/request/group-pagination.params.ts +++ b/apps/server/src/modules/group/controller/dto/request/group-pagination.params.ts @@ -1,5 +1,5 @@ import { ApiPropertyOptional } from '@nestjs/swagger'; -import { PaginationParams } from '@shared/controller'; +import { PaginationParams } from '@shared/controller/dto'; import { IsInt } from 'class-validator'; export class GroupPaginationParams extends PaginationParams { diff --git a/apps/server/src/modules/group/controller/dto/request/group-params.ts b/apps/server/src/modules/group/controller/dto/request/group-params.ts index 5ebbcfef23e..bad2b220a72 100644 --- a/apps/server/src/modules/group/controller/dto/request/group-params.ts +++ b/apps/server/src/modules/group/controller/dto/request/group-params.ts @@ -1,5 +1,5 @@ import { ApiPropertyOptional } from '@nestjs/swagger'; -import { StringToBoolean } from '@shared/controller'; +import { StringToBoolean } from '@shared/controller/transformer'; import { IsBoolean, IsOptional, IsString } from 'class-validator'; export class GroupParams { diff --git a/apps/server/src/modules/group/controller/dto/response/class-info-search-list.response.ts b/apps/server/src/modules/group/controller/dto/response/class-info-search-list.response.ts index 0af573f1b94..77d08f2a6cc 100644 --- a/apps/server/src/modules/group/controller/dto/response/class-info-search-list.response.ts +++ b/apps/server/src/modules/group/controller/dto/response/class-info-search-list.response.ts @@ -1,5 +1,5 @@ import { ApiProperty } from '@nestjs/swagger'; -import { PaginationResponse } from '@shared/controller'; +import { PaginationResponse } from '@shared/controller/dto'; import { ClassInfoResponse } from './class-info.response'; export class ClassInfoSearchListResponse extends PaginationResponse { diff --git a/apps/server/src/modules/group/controller/dto/response/group-list.response.ts b/apps/server/src/modules/group/controller/dto/response/group-list.response.ts index cdc6308b9d4..e4f985f463a 100644 --- a/apps/server/src/modules/group/controller/dto/response/group-list.response.ts +++ b/apps/server/src/modules/group/controller/dto/response/group-list.response.ts @@ -1,5 +1,5 @@ import { ApiProperty } from '@nestjs/swagger'; -import { PaginationResponse } from '@shared/controller'; +import { PaginationResponse } from '@shared/controller/dto'; import { GroupResponse } from './group.response'; export class GroupListResponse extends PaginationResponse { diff --git a/apps/server/src/modules/group/controller/group.controller.ts b/apps/server/src/modules/group/controller/group.controller.ts index 6b2033ee8be..e4b030376e0 100644 --- a/apps/server/src/modules/group/controller/group.controller.ts +++ b/apps/server/src/modules/group/controller/group.controller.ts @@ -2,7 +2,7 @@ import { CurrentUser, ICurrentUser, JwtAuthentication } from '@infra/auth-guard' import { Group } from '@modules/group'; import { Controller, ForbiddenException, Get, HttpStatus, Param, Query, UnauthorizedException } from '@nestjs/common'; import { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { Page } from '@shared/domain/domainobject'; import { IFindOptions } from '@shared/domain/interface'; import { ErrorResponse } from '@core/error/dto'; diff --git a/apps/server/src/modules/group/domain/group-aggregate.scope.ts b/apps/server/src/modules/group/domain/group-aggregate.scope.ts index f0b1caeba1d..1454868aa4d 100644 --- a/apps/server/src/modules/group/domain/group-aggregate.scope.ts +++ b/apps/server/src/modules/group/domain/group-aggregate.scope.ts @@ -1,7 +1,8 @@ import { ObjectId } from '@mikro-orm/mongodb'; -import { StringValidator } from '@shared/common'; +import { StringValidator } from '@shared/common/validator'; import { EntityId } from '@shared/domain/types'; -import { MongoDbScope, MongoPatterns } from '@shared/repo'; +import { MongoPatterns } from '@shared/repo/mongo.patterns'; +import { MongoDbScope } from '@shared/repo/mongodb-scope'; import { GroupEntity } from '../entity'; import { GroupTypes } from './group-types'; diff --git a/apps/server/src/modules/group/repo/group.repo.ts b/apps/server/src/modules/group/repo/group.repo.ts index af58c1d4f18..5324d1fe8cd 100644 --- a/apps/server/src/modules/group/repo/group.repo.ts +++ b/apps/server/src/modules/group/repo/group.repo.ts @@ -1,12 +1,12 @@ import { EntityData, EntityDictionary, EntityName, QueryOrder } from '@mikro-orm/core'; import { ObjectId } from '@mikro-orm/mongodb'; import { Injectable } from '@nestjs/common'; -import { StringValidator } from '@shared/common'; +import { StringValidator } from '@shared/common/validator'; import { Page } from '@shared/domain/domainobject'; import { IFindOptions } from '@shared/domain/interface'; import { EntityId } from '@shared/domain/types'; -import { MongoPatterns } from '@shared/repo'; import { BaseDomainObjectRepo } from '@shared/repo/base-domain-object.repo'; +import { MongoPatterns } from '@shared/repo/mongo.patterns'; import { ScopeAggregateResult } from '@shared/repo/mongodb-scope'; import { Group, GroupAggregateScope, GroupFilter, GroupTypes } from '../domain'; import { GroupEntity } from '../entity'; diff --git a/apps/server/src/modules/group/repo/group.scope.ts b/apps/server/src/modules/group/repo/group.scope.ts index 5b879c92609..e3b3f06c2f1 100644 --- a/apps/server/src/modules/group/repo/group.scope.ts +++ b/apps/server/src/modules/group/repo/group.scope.ts @@ -1,6 +1,6 @@ import { ObjectId } from '@mikro-orm/mongodb'; import { EntityId } from '@shared/domain/types'; -import { MongoPatterns } from '@shared/repo'; +import { MongoPatterns } from '@shared/repo/mongo.patterns'; import { Scope } from '@shared/repo/scope'; import { GroupEntity, GroupEntityTypes } from '../entity'; diff --git a/apps/server/src/modules/group/uc/class-group.uc.ts b/apps/server/src/modules/group/uc/class-group.uc.ts index e75e133ad06..642b4d0777a 100644 --- a/apps/server/src/modules/group/uc/class-group.uc.ts +++ b/apps/server/src/modules/group/uc/class-group.uc.ts @@ -9,7 +9,7 @@ import { School, SchoolService, SchoolYear } from '@modules/school/domain'; import { System, SystemService } from '@modules/system'; import { Injectable } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; -import { SortHelper } from '@shared/common'; +import { SortHelper } from '@shared/common/utils'; import { Page, UserDO } from '@shared/domain/domainobject'; import { SchoolYearEntity, User } from '@shared/domain/entity'; import { Pagination, Permission, SortOrder } from '@shared/domain/interface'; diff --git a/apps/server/src/modules/h5p-editor/controller/dto/h5p-editor.params.ts b/apps/server/src/modules/h5p-editor/controller/dto/h5p-editor.params.ts index 602af94d8a3..36ba8b8b0fc 100644 --- a/apps/server/src/modules/h5p-editor/controller/dto/h5p-editor.params.ts +++ b/apps/server/src/modules/h5p-editor/controller/dto/h5p-editor.params.ts @@ -1,6 +1,6 @@ import { IContentMetadata } from '@lumieducation/h5p-server'; import { ApiProperty } from '@nestjs/swagger'; -import { SanitizeHtml } from '@shared/controller'; +import { SanitizeHtml } from '@shared/controller/transformer'; import { LanguageType } from '@shared/domain/interface'; import { EntityId } from '@shared/domain/types'; diff --git a/apps/server/src/modules/h5p-editor/controller/h5p-editor.controller.ts b/apps/server/src/modules/h5p-editor/controller/h5p-editor.controller.ts index b193423e750..18066c34934 100644 --- a/apps/server/src/modules/h5p-editor/controller/h5p-editor.controller.ts +++ b/apps/server/src/modules/h5p-editor/controller/h5p-editor.controller.ts @@ -18,7 +18,7 @@ import { } from '@nestjs/common'; import { FileFieldsInterceptor } from '@nestjs/platform-express'; import { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { Request, Response } from 'express'; import { H5PEditorUc } from '../uc/h5p.uc'; diff --git a/apps/server/src/modules/h5p-editor/h5p-editor.app.module.ts b/apps/server/src/modules/h5p-editor/h5p-editor.app.module.ts index b3e19f43b72..674213f161b 100644 --- a/apps/server/src/modules/h5p-editor/h5p-editor.app.module.ts +++ b/apps/server/src/modules/h5p-editor/h5p-editor.app.module.ts @@ -9,7 +9,7 @@ import { MikroOrmModule } from '@mikro-orm/nestjs'; import { UserModule } from '@modules/user'; import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; -import { createConfigModuleOptions } from '@shared/common'; +import { createConfigModuleOptions } from '@shared/common/config-module-options'; import { defaultMikroOrmOptions } from '@shared/common/defaultMikroOrmOptions'; import { ALL_ENTITIES } from '@shared/domain/entity'; import { H5PEditorController } from './controller/h5p-editor.controller'; diff --git a/apps/server/src/modules/h5p-editor/uc/h5p-get-editor.uc.spec.ts b/apps/server/src/modules/h5p-editor/uc/h5p-get-editor.uc.spec.ts index 00e861084eb..4acfcbb0c9f 100644 --- a/apps/server/src/modules/h5p-editor/uc/h5p-get-editor.uc.spec.ts +++ b/apps/server/src/modules/h5p-editor/uc/h5p-get-editor.uc.spec.ts @@ -6,7 +6,7 @@ import { UserService } from '@modules/user'; import { ForbiddenException, NotFoundException } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; import { LanguageType } from '@shared/domain/interface'; -import { UserRepo } from '@shared/repo'; +import { UserRepo } from '@shared/repo/user'; import { h5pContentFactory } from '@testing/factory/h5p-content.factory'; import { setupEntities } from '@testing/setup-entities'; import { H5PAjaxEndpointProvider } from '../provider'; diff --git a/apps/server/src/modules/h5p-library-management/h5p-library-management.app.module.ts b/apps/server/src/modules/h5p-library-management/h5p-library-management.app.module.ts index 21c994c8a37..36d1cf97e8e 100644 --- a/apps/server/src/modules/h5p-library-management/h5p-library-management.app.module.ts +++ b/apps/server/src/modules/h5p-library-management/h5p-library-management.app.module.ts @@ -6,7 +6,7 @@ import { s3ConfigContent, s3ConfigLibraries } from '@modules/h5p-editor'; import { H5PEditorModule } from '@modules/h5p-editor/h5p-editor.app.module'; import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; -import { createConfigModuleOptions } from '@shared/common'; +import { createConfigModuleOptions } from '@shared/common/config-module-options'; import { H5PLibraryManagementService, h5PLibraryManagementConfig } from './service'; const imports = [ diff --git a/apps/server/src/modules/idp-console/idp-console.app.module.ts b/apps/server/src/modules/idp-console/idp-console.app.module.ts index ff20f380b25..b40ec6f6dd9 100644 --- a/apps/server/src/modules/idp-console/idp-console.app.module.ts +++ b/apps/server/src/modules/idp-console/idp-console.app.module.ts @@ -9,7 +9,7 @@ import { SynchronizationEntity, SynchronizationModule } from '@modules/synchroni import { UserModule } from '@modules/user'; import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; -import { createConfigModuleOptions } from '@shared/common'; +import { createConfigModuleOptions } from '@shared/common/config-module-options'; import { defaultMikroOrmOptions } from '@shared/common/defaultMikroOrmOptions'; import { ALL_ENTITIES } from '@shared/domain/entity'; import { ConsoleModule } from 'nestjs-console'; diff --git a/apps/server/src/modules/internal-server/internal-server-test.module.ts b/apps/server/src/modules/internal-server/internal-server-test.module.ts index 687f7a11466..60c5da5fd17 100644 --- a/apps/server/src/modules/internal-server/internal-server-test.module.ts +++ b/apps/server/src/modules/internal-server/internal-server-test.module.ts @@ -4,7 +4,7 @@ import { MongoMemoryDatabaseModule } from '@infra/database'; import { HealthApiModule, HealthEntities } from '@modules/health'; import { serverConfig } from '@modules/server'; import { ConfigModule } from '@nestjs/config'; -import { createConfigModuleOptions } from '@shared/common'; +import { createConfigModuleOptions } from '@shared/common/config-module-options'; /** * Internal server module used for testing. diff --git a/apps/server/src/modules/internal-server/internal-server.app.module.ts b/apps/server/src/modules/internal-server/internal-server.app.module.ts index 1c1bb8fa115..969d6e944d9 100644 --- a/apps/server/src/modules/internal-server/internal-server.app.module.ts +++ b/apps/server/src/modules/internal-server/internal-server.app.module.ts @@ -5,7 +5,7 @@ import { DB_PASSWORD, DB_URL, DB_USERNAME } from '@imports-from-feathers'; import { HealthApiModule, HealthEntities } from '@modules/health'; import { serverConfig } from '@modules/server'; import { ConfigModule } from '@nestjs/config'; -import { createConfigModuleOptions } from '@shared/common'; +import { createConfigModuleOptions } from '@shared/common/config-module-options'; @Module({ imports: [ diff --git a/apps/server/src/modules/learnroom/controller/api-test/dashboard.api.spec.ts b/apps/server/src/modules/learnroom/controller/api-test/dashboard.api.spec.ts index d4fc86b2297..9889234ada9 100644 --- a/apps/server/src/modules/learnroom/controller/api-test/dashboard.api.spec.ts +++ b/apps/server/src/modules/learnroom/controller/api-test/dashboard.api.spec.ts @@ -4,7 +4,7 @@ import { ServerTestModule } from '@modules/server/server.app.module'; import { INestApplication } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; import { DashboardEntity, GridElement, User } from '@shared/domain/entity'; -import { IDashboardRepo } from '@shared/repo'; +import { IDashboardRepo } from '@shared/repo/dashboard'; import { courseFactory } from '@testing/factory/course.factory'; import { UserAndAccountTestFactory } from '@testing/factory/user-and-account.test.factory'; import { TestApiClient } from '@testing/test-api-client'; diff --git a/apps/server/src/modules/learnroom/controller/course-info.controller.ts b/apps/server/src/modules/learnroom/controller/course-info.controller.ts index 4508626fa1a..7951665472f 100644 --- a/apps/server/src/modules/learnroom/controller/course-info.controller.ts +++ b/apps/server/src/modules/learnroom/controller/course-info.controller.ts @@ -1,15 +1,15 @@ import { CurrentUser, ICurrentUser, JwtAuthentication } from '@infra/auth-guard'; import { Controller, Get, HttpStatus, Query } from '@nestjs/common'; import { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger'; -import { PaginationParams } from '@shared/controller/'; +import { PaginationParams } from '@shared/controller/dto'; import { Page } from '@shared/domain/domainobject'; import { ErrorResponse } from '@core/error/dto'; import { CourseInfoResponseMapper } from '../mapper/course-info-response.mapper'; +import { CourseInfoUc } from '../uc/course-info.uc'; import { CourseInfoDto } from '../uc/dto'; import { CourseFilterParams } from './dto/request/course-filter-params'; import { CourseSortParams } from './dto/request/course-sort-params'; import { CourseInfoListResponse } from './dto/response'; -import { CourseInfoUc } from '../uc/course-info.uc'; @ApiTags('Course Info') @JwtAuthentication() diff --git a/apps/server/src/modules/learnroom/controller/course-rooms.controller.ts b/apps/server/src/modules/learnroom/controller/course-rooms.controller.ts index 4054a13f43e..6f5844e7809 100644 --- a/apps/server/src/modules/learnroom/controller/course-rooms.controller.ts +++ b/apps/server/src/modules/learnroom/controller/course-rooms.controller.ts @@ -2,18 +2,18 @@ import { CurrentUser, ICurrentUser, JwtAuthentication } from '@infra/auth-guard' import { CopyApiResponse, CopyMapper } from '@modules/copy-helper'; import { Body, Controller, Get, Param, Patch, Post } from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; -import { RequestTimeout } from '@shared/common'; +import { RequestTimeout } from '@shared/common/decorators'; import { RoomBoardResponseMapper } from '../mapper/room-board-response.mapper'; import { CourseCopyUC } from '../uc/course-copy.uc'; -import { LessonCopyUC } from '../uc/lesson-copy.uc'; import { CourseRoomsUc } from '../uc/course-rooms.uc'; +import { LessonCopyUC } from '../uc/lesson-copy.uc'; import { + CourseRoomElementUrlParams, + CourseRoomUrlParams, LessonCopyApiParams, LessonUrlParams, PatchOrderParams, PatchVisibilityParams, - CourseRoomElementUrlParams, - CourseRoomUrlParams, SingleColumnBoardResponse, } from './dto'; diff --git a/apps/server/src/modules/learnroom/controller/course.controller.ts b/apps/server/src/modules/learnroom/controller/course.controller.ts index aa52fb3eb67..488cc691089 100644 --- a/apps/server/src/modules/learnroom/controller/course.controller.ts +++ b/apps/server/src/modules/learnroom/controller/course.controller.ts @@ -25,7 +25,7 @@ import { ApiTags, ApiUnprocessableEntityResponse, } from '@nestjs/swagger'; -import { PaginationParams } from '@shared/controller/'; +import { PaginationParams } from '@shared/controller/dto'; import { CourseMapper } from '../mapper/course.mapper'; import { CourseImportUc, CourseSyncUc, CourseUc } from '../uc'; import { diff --git a/apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts b/apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts index b3615bcaf95..ab9e1cac6c9 100644 --- a/apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts +++ b/apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts @@ -1,5 +1,5 @@ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; -import { PaginationResponse } from '@shared/controller'; +import { PaginationResponse } from '@shared/controller/dto'; import { EntityId } from '@shared/domain/types'; export class CourseMetadataResponse { diff --git a/apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts b/apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts index 75076d41a9f..ae7cdcfc9bd 100644 --- a/apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts +++ b/apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts @@ -1,5 +1,5 @@ import { ApiProperty } from '@nestjs/swagger'; -import { DecodeHtmlEntities } from '@shared/controller'; +import { DecodeHtmlEntities } from '@shared/controller/transformer'; export class DashboardGridSubElementResponse { @ApiProperty({ diff --git a/apps/server/src/modules/learnroom/controller/dto/patch-group.params.ts b/apps/server/src/modules/learnroom/controller/dto/patch-group.params.ts index 7f571eb5c0b..0787318eb6f 100644 --- a/apps/server/src/modules/learnroom/controller/dto/patch-group.params.ts +++ b/apps/server/src/modules/learnroom/controller/dto/patch-group.params.ts @@ -1,5 +1,5 @@ import { ApiProperty } from '@nestjs/swagger'; -import { SanitizeHtml } from '@shared/controller'; +import { SanitizeHtml } from '@shared/controller/transformer'; import { IsString } from 'class-validator'; /** diff --git a/apps/server/src/modules/learnroom/controller/dto/request/course-sort-params.ts b/apps/server/src/modules/learnroom/controller/dto/request/course-sort-params.ts index eef900bb569..640285d4b6a 100644 --- a/apps/server/src/modules/learnroom/controller/dto/request/course-sort-params.ts +++ b/apps/server/src/modules/learnroom/controller/dto/request/course-sort-params.ts @@ -1,5 +1,5 @@ import { ApiPropertyOptional } from '@nestjs/swagger'; -import { SortingParams } from '@shared/controller'; +import { SortingParams } from '@shared/controller/dto'; import { IsEnum, IsOptional } from 'class-validator'; import { CourseSortProps } from '../../../domain/interface/course-sort-props.enum'; diff --git a/apps/server/src/modules/learnroom/controller/dto/response/course-info-list.response.ts b/apps/server/src/modules/learnroom/controller/dto/response/course-info-list.response.ts index d988fe45dbc..9c66061b3ef 100644 --- a/apps/server/src/modules/learnroom/controller/dto/response/course-info-list.response.ts +++ b/apps/server/src/modules/learnroom/controller/dto/response/course-info-list.response.ts @@ -1,5 +1,5 @@ import { ApiProperty } from '@nestjs/swagger'; -import { PaginationResponse } from '@shared/controller'; +import { PaginationResponse } from '@shared/controller/dto'; import { CourseInfoDataResponse } from './course-info-data-response'; export class CourseInfoListResponse extends PaginationResponse { diff --git a/apps/server/src/modules/learnroom/controller/dto/single-column-board/board-column-board.response.ts b/apps/server/src/modules/learnroom/controller/dto/single-column-board/board-column-board.response.ts index 3a18b5f1a8a..3a66ad9669e 100644 --- a/apps/server/src/modules/learnroom/controller/dto/single-column-board/board-column-board.response.ts +++ b/apps/server/src/modules/learnroom/controller/dto/single-column-board/board-column-board.response.ts @@ -1,6 +1,6 @@ import { BoardLayout } from '@modules/board'; import { ApiProperty } from '@nestjs/swagger'; -import { DecodeHtmlEntities } from '@shared/controller'; +import { DecodeHtmlEntities } from '@shared/controller/transformer'; export class BoardColumnBoardResponse { constructor({ id, columnBoardId, title, published, createdAt, updatedAt, layout }: BoardColumnBoardResponse) { diff --git a/apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts b/apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts index 163f8fcd19c..1addc7aa9ac 100644 --- a/apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts +++ b/apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts @@ -1,5 +1,5 @@ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; -import { DecodeHtmlEntities } from '@shared/controller'; +import { DecodeHtmlEntities } from '@shared/controller/transformer'; import { IsNumber, IsOptional, Min } from 'class-validator'; export class BoardLessonResponse { diff --git a/apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts b/apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts index c0bc66c20e6..041610c548d 100644 --- a/apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts +++ b/apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts @@ -1,5 +1,5 @@ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; -import { DecodeHtmlEntities } from '@shared/controller'; +import { DecodeHtmlEntities } from '@shared/controller/transformer'; import { BoardTaskStatusResponse } from './board-task-status.response'; export class BoardTaskResponse { diff --git a/apps/server/src/modules/learnroom/controller/dto/single-column-board/board.response.ts b/apps/server/src/modules/learnroom/controller/dto/single-column-board/board.response.ts index 5f67a20e1cc..2aa9d675863 100644 --- a/apps/server/src/modules/learnroom/controller/dto/single-column-board/board.response.ts +++ b/apps/server/src/modules/learnroom/controller/dto/single-column-board/board.response.ts @@ -1,5 +1,5 @@ import { ApiProperty } from '@nestjs/swagger'; -import { DecodeHtmlEntities } from '@shared/controller'; +import { DecodeHtmlEntities } from '@shared/controller/transformer'; import { BoardElementResponse } from './board-element.response'; // TODO: this and DashboardResponse should be combined diff --git a/apps/server/src/modules/learnroom/learnroom-api.module.ts b/apps/server/src/modules/learnroom/learnroom-api.module.ts index 62cbacd67c5..677b207fd4e 100644 --- a/apps/server/src/modules/learnroom/learnroom-api.module.ts +++ b/apps/server/src/modules/learnroom/learnroom-api.module.ts @@ -9,7 +9,10 @@ import { RoleModule } from '@modules/role'; import { SchoolModule } from '@modules/school'; import { UserModule } from '@modules/user'; import { Module } from '@nestjs/common'; -import { CourseRepo, DashboardModelMapper, DashboardRepo, LegacyBoardRepo, UserRepo } from '@shared/repo'; +import { CourseRepo } from '@shared/repo/course'; +import { DashboardModelMapper, DashboardRepo } from '@shared/repo/dashboard'; +import { LegacyBoardRepo } from '@shared/repo/legacy-board'; +import { UserRepo } from '@shared/repo/user'; import { CourseRoomsController } from './controller/course-rooms.controller'; import { CourseController } from './controller/course.controller'; import { DashboardController } from './controller/dashboard.controller'; diff --git a/apps/server/src/modules/learnroom/learnroom.module.ts b/apps/server/src/modules/learnroom/learnroom.module.ts index 73b4839688d..3752e5c2b98 100644 --- a/apps/server/src/modules/learnroom/learnroom.module.ts +++ b/apps/server/src/modules/learnroom/learnroom.module.ts @@ -1,3 +1,4 @@ +import { LoggerModule } from '@core/logger'; import { BoardModule } from '@modules/board'; import { ClassModule } from '@modules/class'; import { CopyHelperModule } from '@modules/copy-helper'; @@ -10,16 +11,11 @@ import { ContextExternalToolModule } from '@modules/tool/context-external-tool'; import { UserModule } from '@modules/user'; import { forwardRef, Module } from '@nestjs/common'; import { CqrsModule } from '@nestjs/cqrs'; -import { - CourseGroupRepo, - CourseRepo, - DashboardElementRepo, - DashboardModelMapper, - DashboardRepo, - LegacyBoardRepo, - UserRepo, -} from '@shared/repo'; -import { LoggerModule } from '@core/logger'; +import { CourseRepo } from '@shared/repo/course'; +import { CourseGroupRepo } from '@shared/repo/coursegroup'; +import { DashboardElementRepo, DashboardModelMapper, DashboardRepo } from '@shared/repo/dashboard'; +import { LegacyBoardRepo } from '@shared/repo/legacy-board'; +import { UserRepo } from '@shared/repo/user'; import { CommonCartridgeFileValidatorPipe } from '../common-cartridge/controller/utils'; import { COURSE_REPO } from './domain'; import { CommonCartridgeExportMapper } from './mapper/common-cartridge-export.mapper'; diff --git a/apps/server/src/modules/learnroom/repo/mikro-orm/course.repo.ts b/apps/server/src/modules/learnroom/repo/mikro-orm/course.repo.ts index 647d43aed26..763641ac829 100644 --- a/apps/server/src/modules/learnroom/repo/mikro-orm/course.repo.ts +++ b/apps/server/src/modules/learnroom/repo/mikro-orm/course.repo.ts @@ -4,8 +4,8 @@ import { Page } from '@shared/domain/domainobject'; import { Course as CourseEntity } from '@shared/domain/entity'; import { IFindOptions } from '@shared/domain/interface'; import { EntityId } from '@shared/domain/types'; -import { CourseScope } from '@shared/repo'; import { BaseDomainObjectRepo } from '@shared/repo/base-domain-object.repo'; +import { CourseScope } from '@shared/repo/course'; import { Course, CourseFilter, CourseRepo, CourseStatus } from '../../domain'; import { CourseEntityMapper } from './mapper/course.entity.mapper'; diff --git a/apps/server/src/modules/learnroom/service/board-copy.service.spec.ts b/apps/server/src/modules/learnroom/service/board-copy.service.spec.ts index 449a291eaa0..e6285ab0260 100644 --- a/apps/server/src/modules/learnroom/service/board-copy.service.spec.ts +++ b/apps/server/src/modules/learnroom/service/board-copy.service.spec.ts @@ -12,7 +12,7 @@ import { Test, TestingModule } from '@nestjs/testing'; import { AuthorizableObject } from '@shared/domain/domain-object'; import { LegacyBoard } from '@shared/domain/entity'; import { EntityId } from '@shared/domain/types'; -import { LegacyBoardRepo } from '@shared/repo'; +import { LegacyBoardRepo } from '@shared/repo/legacy-board'; import { boardFactory } from '@testing/factory/board.factory'; import { columnboardBoardElementFactory, diff --git a/apps/server/src/modules/learnroom/service/board-copy.service.ts b/apps/server/src/modules/learnroom/service/board-copy.service.ts index d733e38f32f..1808a2eca1b 100644 --- a/apps/server/src/modules/learnroom/service/board-copy.service.ts +++ b/apps/server/src/modules/learnroom/service/board-copy.service.ts @@ -22,7 +22,7 @@ import { User, } from '@shared/domain/entity'; import { EntityId } from '@shared/domain/types'; -import { LegacyBoardRepo } from '@shared/repo'; +import { LegacyBoardRepo } from '@shared/repo/legacy-board'; import { sortBy } from 'lodash'; import { ColumnBoardNodeRepo } from '../repo'; diff --git a/apps/server/src/modules/learnroom/service/course-copy.service.spec.ts b/apps/server/src/modules/learnroom/service/course-copy.service.spec.ts index ca4cc870041..d129517cacd 100644 --- a/apps/server/src/modules/learnroom/service/course-copy.service.spec.ts +++ b/apps/server/src/modules/learnroom/service/course-copy.service.spec.ts @@ -10,7 +10,9 @@ import { ToolConfig } from '@modules/tool/tool-config'; import { ConfigService } from '@nestjs/config'; import { Test, TestingModule } from '@nestjs/testing'; import { Course } from '@shared/domain/entity'; -import { CourseRepo, LegacyBoardRepo, UserRepo } from '@shared/repo'; +import { CourseRepo } from '@shared/repo/course'; +import { LegacyBoardRepo } from '@shared/repo/legacy-board'; +import { UserRepo } from '@shared/repo/user'; import { boardFactory } from '@testing/factory/board.factory'; import { courseFactory } from '@testing/factory/course.factory'; import { courseGroupFactory } from '@testing/factory/coursegroup.factory'; diff --git a/apps/server/src/modules/learnroom/service/course-copy.service.ts b/apps/server/src/modules/learnroom/service/course-copy.service.ts index d3b82021d00..f3465bf6f36 100644 --- a/apps/server/src/modules/learnroom/service/course-copy.service.ts +++ b/apps/server/src/modules/learnroom/service/course-copy.service.ts @@ -11,7 +11,9 @@ import { Injectable } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { Course, User } from '@shared/domain/entity'; import { EntityId } from '@shared/domain/types'; -import { CourseRepo, LegacyBoardRepo, UserRepo } from '@shared/repo'; +import { CourseRepo } from '@shared/repo/course'; +import { LegacyBoardRepo } from '@shared/repo/legacy-board'; +import { UserRepo } from '@shared/repo/user'; import { BoardCopyService } from './board-copy.service'; import { CourseRoomsService } from './course-rooms.service'; diff --git a/apps/server/src/modules/learnroom/service/course-rooms.service.spec.ts b/apps/server/src/modules/learnroom/service/course-rooms.service.spec.ts index 9c3b3b34709..a0341fc5e3b 100644 --- a/apps/server/src/modules/learnroom/service/course-rooms.service.spec.ts +++ b/apps/server/src/modules/learnroom/service/course-rooms.service.spec.ts @@ -4,7 +4,7 @@ import { IConfig } from '@hpi-schul-cloud/commons/lib/interfaces/IConfig'; import { LessonService } from '@modules/lesson'; import { TaskService } from '@modules/task'; import { Test, TestingModule } from '@nestjs/testing'; -import { LegacyBoardRepo } from '@shared/repo'; +import { LegacyBoardRepo } from '@shared/repo/legacy-board'; import { boardFactory } from '@testing/factory/board.factory'; import { columnBoardNodeFactory } from '@testing/factory/column-board-node.factory'; import { courseFactory } from '@testing/factory/course.factory'; diff --git a/apps/server/src/modules/learnroom/service/course-rooms.service.ts b/apps/server/src/modules/learnroom/service/course-rooms.service.ts index 90cd4368698..a7e06c37b54 100644 --- a/apps/server/src/modules/learnroom/service/course-rooms.service.ts +++ b/apps/server/src/modules/learnroom/service/course-rooms.service.ts @@ -4,7 +4,7 @@ import { TaskService } from '@modules/task'; import { Injectable } from '@nestjs/common'; import { LegacyBoard } from '@shared/domain/entity'; import { EntityId } from '@shared/domain/types'; -import { LegacyBoardRepo } from '@shared/repo'; +import { LegacyBoardRepo } from '@shared/repo/legacy-board'; import { ColumnBoardNodeRepo } from '../repo'; /** diff --git a/apps/server/src/modules/learnroom/service/course.service.spec.ts b/apps/server/src/modules/learnroom/service/course.service.spec.ts index 541075297dd..e7d71d0d95e 100644 --- a/apps/server/src/modules/learnroom/service/course.service.spec.ts +++ b/apps/server/src/modules/learnroom/service/course.service.spec.ts @@ -1,3 +1,4 @@ +import { Logger } from '@core/logger'; import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { MikroORM } from '@mikro-orm/core'; import { @@ -11,8 +12,8 @@ import { deletionRequestFactory } from '@modules/deletion/domain/testing'; import { EventBus } from '@nestjs/cqrs'; import { Test, TestingModule } from '@nestjs/testing'; import { Course as CourseEntity } from '@shared/domain/entity'; -import { CourseRepo as LegacyCourseRepo, UserRepo } from '@shared/repo'; -import { Logger } from '@core/logger'; +import { CourseRepo as LegacyCourseRepo } from '@shared/repo/course'; +import { UserRepo } from '@shared/repo/user'; import { courseFactory } from '@testing/factory/course.factory'; import { userFactory } from '@testing/factory/user.factory'; import { setupEntities } from '@testing/setup-entities'; diff --git a/apps/server/src/modules/learnroom/service/course.service.ts b/apps/server/src/modules/learnroom/service/course.service.ts index 3733617fdf5..b2988491313 100644 --- a/apps/server/src/modules/learnroom/service/course.service.ts +++ b/apps/server/src/modules/learnroom/service/course.service.ts @@ -1,3 +1,4 @@ +import { Logger } from '@core/logger'; import { MikroORM, UseRequestContext } from '@mikro-orm/core'; import { DataDeletedEvent, @@ -15,8 +16,7 @@ import { Injectable } from '@nestjs/common'; import { EventBus, EventsHandler, IEventHandler } from '@nestjs/cqrs'; import { Course as CourseEntity } from '@shared/domain/entity'; import { Counted, EntityId } from '@shared/domain/types'; -import { CourseRepo as LegacyCourseRepo } from '@shared/repo'; -import { Logger } from '@core/logger'; +import { CourseRepo as LegacyCourseRepo } from '@shared/repo/course'; @Injectable() @EventsHandler(UserDeletedEvent) diff --git a/apps/server/src/modules/learnroom/service/coursegroup.service.spec.ts b/apps/server/src/modules/learnroom/service/coursegroup.service.spec.ts index f54b552f19c..b54607899cf 100644 --- a/apps/server/src/modules/learnroom/service/coursegroup.service.spec.ts +++ b/apps/server/src/modules/learnroom/service/coursegroup.service.spec.ts @@ -1,3 +1,4 @@ +import { Logger } from '@core/logger'; import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { MikroORM } from '@mikro-orm/core'; import { @@ -10,8 +11,8 @@ import { import { deletionRequestFactory } from '@modules/deletion/domain/testing'; import { EventBus } from '@nestjs/cqrs'; import { Test, TestingModule } from '@nestjs/testing'; -import { CourseGroupRepo, UserRepo } from '@shared/repo'; -import { Logger } from '@core/logger'; +import { CourseGroupRepo } from '@shared/repo/coursegroup'; +import { UserRepo } from '@shared/repo/user'; import { courseGroupFactory } from '@testing/factory/coursegroup.factory'; import { userFactory } from '@testing/factory/user.factory'; import { setupEntities } from '@testing/setup-entities'; diff --git a/apps/server/src/modules/learnroom/service/coursegroup.service.ts b/apps/server/src/modules/learnroom/service/coursegroup.service.ts index 0f6d827c087..69d214e3e0e 100644 --- a/apps/server/src/modules/learnroom/service/coursegroup.service.ts +++ b/apps/server/src/modules/learnroom/service/coursegroup.service.ts @@ -1,3 +1,4 @@ +import { Logger } from '@core/logger'; import { MikroORM, UseRequestContext } from '@mikro-orm/core'; import { DataDeletedEvent, @@ -15,8 +16,7 @@ import { Injectable } from '@nestjs/common'; import { EventBus, EventsHandler, IEventHandler } from '@nestjs/cqrs'; import { CourseGroup } from '@shared/domain/entity'; import { Counted, EntityId } from '@shared/domain/types'; -import { CourseGroupRepo } from '@shared/repo'; -import { Logger } from '@core/logger'; +import { CourseGroupRepo } from '@shared/repo/coursegroup'; @Injectable() @EventsHandler(UserDeletedEvent) diff --git a/apps/server/src/modules/learnroom/service/dashboard.service.spec.ts b/apps/server/src/modules/learnroom/service/dashboard.service.spec.ts index aa4bf223ebb..1f80fe1a498 100644 --- a/apps/server/src/modules/learnroom/service/dashboard.service.spec.ts +++ b/apps/server/src/modules/learnroom/service/dashboard.service.spec.ts @@ -1,3 +1,4 @@ +import { Logger } from '@core/logger'; import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { MikroORM } from '@mikro-orm/core'; import { @@ -12,8 +13,8 @@ import { EventBus } from '@nestjs/cqrs'; import { Test, TestingModule } from '@nestjs/testing'; import { DashboardEntity, GridElement } from '@shared/domain/entity'; import { LearnroomMetadata, LearnroomTypes } from '@shared/domain/types'; -import { DashboardElementRepo, IDashboardRepo, UserRepo } from '@shared/repo'; -import { Logger } from '@core/logger'; +import { DashboardElementRepo, IDashboardRepo } from '@shared/repo/dashboard'; +import { UserRepo } from '@shared/repo/user'; import { userFactory } from '@testing/factory/user.factory'; import { setupEntities } from '@testing/setup-entities'; import { ObjectId } from 'bson'; diff --git a/apps/server/src/modules/learnroom/service/dashboard.service.ts b/apps/server/src/modules/learnroom/service/dashboard.service.ts index 41e75037bc7..7afadce1619 100644 --- a/apps/server/src/modules/learnroom/service/dashboard.service.ts +++ b/apps/server/src/modules/learnroom/service/dashboard.service.ts @@ -1,3 +1,4 @@ +import { Logger } from '@core/logger'; import { MikroORM, UseRequestContext } from '@mikro-orm/core'; import { DataDeletedEvent, @@ -14,8 +15,7 @@ import { import { Inject, Injectable } from '@nestjs/common'; import { EventBus, EventsHandler, IEventHandler } from '@nestjs/cqrs'; import { EntityId } from '@shared/domain/types'; -import { DashboardElementRepo, IDashboardRepo } from '@shared/repo'; -import { Logger } from '@core/logger'; +import { DashboardElementRepo, IDashboardRepo } from '@shared/repo/dashboard'; @Injectable() @EventsHandler(UserDeletedEvent) diff --git a/apps/server/src/modules/learnroom/uc/course-rooms.uc.spec.ts b/apps/server/src/modules/learnroom/uc/course-rooms.uc.spec.ts index 93e6bfceb2e..c4befbcb2e5 100644 --- a/apps/server/src/modules/learnroom/uc/course-rooms.uc.spec.ts +++ b/apps/server/src/modules/learnroom/uc/course-rooms.uc.spec.ts @@ -1,7 +1,10 @@ import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { ForbiddenException } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; -import { CourseRepo, LegacyBoardRepo, TaskRepo, UserRepo } from '@shared/repo'; +import { CourseRepo } from '@shared/repo/course'; +import { LegacyBoardRepo } from '@shared/repo/legacy-board'; +import { TaskRepo } from '@shared/repo/task'; +import { UserRepo } from '@shared/repo/user'; import { boardFactory } from '@testing/factory/board.factory'; import { courseFactory } from '@testing/factory/course.factory'; import { lessonFactory } from '@testing/factory/lesson.factory'; diff --git a/apps/server/src/modules/learnroom/uc/course-rooms.uc.ts b/apps/server/src/modules/learnroom/uc/course-rooms.uc.ts index 22df4d015f5..1fb3ce5c4f7 100644 --- a/apps/server/src/modules/learnroom/uc/course-rooms.uc.ts +++ b/apps/server/src/modules/learnroom/uc/course-rooms.uc.ts @@ -1,10 +1,12 @@ import { ForbiddenException, Injectable } from '@nestjs/common'; import { EntityId } from '@shared/domain/types'; -import { CourseRepo, LegacyBoardRepo, UserRepo } from '@shared/repo'; +import { CourseRepo } from '@shared/repo/course'; +import { LegacyBoardRepo } from '@shared/repo/legacy-board'; +import { UserRepo } from '@shared/repo/user'; import { CourseRoomsService } from '../service/course-rooms.service'; import { RoomBoardDTO } from '../types'; -import { RoomBoardDTOFactory } from './room-board-dto.factory'; import { CourseRoomsAuthorisationService } from './course-rooms.authorisation.service'; +import { RoomBoardDTOFactory } from './room-board-dto.factory'; @Injectable() export class CourseRoomsUc { diff --git a/apps/server/src/modules/learnroom/uc/course.uc.spec.ts b/apps/server/src/modules/learnroom/uc/course.uc.spec.ts index 18b6f4ddb81..2a8706dd83d 100644 --- a/apps/server/src/modules/learnroom/uc/course.uc.spec.ts +++ b/apps/server/src/modules/learnroom/uc/course.uc.spec.ts @@ -5,7 +5,7 @@ import { AuthorizationService } from '@modules/authorization'; import { RoleDto, RoleService } from '@modules/role'; import { Test, TestingModule } from '@nestjs/testing'; import { Permission, RoleName, SortOrder } from '@shared/domain/interface'; -import { CourseRepo } from '@shared/repo'; +import { CourseRepo } from '@shared/repo/course'; import { courseFactory } from '@testing/factory/course.factory'; import { currentUserFactory } from '@testing/factory/currentuser.factory'; import { UserAndAccountTestFactory } from '@testing/factory/user-and-account.test.factory'; diff --git a/apps/server/src/modules/learnroom/uc/course.uc.ts b/apps/server/src/modules/learnroom/uc/course.uc.ts index 1314fb3084c..8547261576d 100644 --- a/apps/server/src/modules/learnroom/uc/course.uc.ts +++ b/apps/server/src/modules/learnroom/uc/course.uc.ts @@ -2,11 +2,11 @@ import { ICurrentUser } from '@infra/auth-guard'; import { AuthorizationService } from '@modules/authorization'; import { RoleService } from '@modules/role'; import { Injectable } from '@nestjs/common'; -import { PaginationParams } from '@shared/controller/'; +import { PaginationParams } from '@shared/controller/dto'; import { Course } from '@shared/domain/entity'; import { Permission, SortOrder } from '@shared/domain/interface'; import { Counted, EntityId } from '@shared/domain/types'; -import { CourseRepo } from '@shared/repo'; +import { CourseRepo } from '@shared/repo/course'; import { RoleNameMapper } from '../mapper/rolename.mapper'; import { CourseService } from '../service'; diff --git a/apps/server/src/modules/learnroom/uc/dashboard.uc.spec.ts b/apps/server/src/modules/learnroom/uc/dashboard.uc.spec.ts index b7fa299d7aa..5cf3f8613fb 100644 --- a/apps/server/src/modules/learnroom/uc/dashboard.uc.spec.ts +++ b/apps/server/src/modules/learnroom/uc/dashboard.uc.spec.ts @@ -4,7 +4,8 @@ import { Test, TestingModule } from '@nestjs/testing'; import { Course, DashboardEntity, GridElement } from '@shared/domain/entity'; import { SortOrder } from '@shared/domain/interface'; import { EntityId, LearnroomMetadata, LearnroomTypes } from '@shared/domain/types'; -import { CourseRepo, IDashboardRepo } from '@shared/repo'; +import { CourseRepo } from '@shared/repo/course'; +import { IDashboardRepo } from '@shared/repo/dashboard'; import { setupEntities } from '@testing/setup-entities'; import { DashboardUc } from './dashboard.uc'; diff --git a/apps/server/src/modules/learnroom/uc/dashboard.uc.ts b/apps/server/src/modules/learnroom/uc/dashboard.uc.ts index da4824791bf..f68421b62b7 100644 --- a/apps/server/src/modules/learnroom/uc/dashboard.uc.ts +++ b/apps/server/src/modules/learnroom/uc/dashboard.uc.ts @@ -2,7 +2,8 @@ import { Inject, Injectable, NotFoundException } from '@nestjs/common'; import { DashboardEntity, GridPosition, GridPositionWithGroupIndex } from '@shared/domain/entity'; import { SortOrder } from '@shared/domain/interface'; import { EntityId } from '@shared/domain/types'; -import { CourseRepo, IDashboardRepo } from '@shared/repo'; +import { CourseRepo } from '@shared/repo/course'; +import { IDashboardRepo } from '@shared/repo/dashboard'; // import { NotFound } from '@feathersjs/errors'; // wrong import? see NotFoundException @Injectable() diff --git a/apps/server/src/modules/learnroom/uc/lesson-copy.uc.spec.ts b/apps/server/src/modules/learnroom/uc/lesson-copy.uc.spec.ts index 4f2cc62be7d..2698c75abad 100644 --- a/apps/server/src/modules/learnroom/uc/lesson-copy.uc.spec.ts +++ b/apps/server/src/modules/learnroom/uc/lesson-copy.uc.spec.ts @@ -7,7 +7,8 @@ import { LessonCopyService, LessonService } from '@modules/lesson'; import { ForbiddenException, InternalServerErrorException } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; import { Permission } from '@shared/domain/interface'; -import { CourseRepo, UserRepo } from '@shared/repo'; +import { CourseRepo } from '@shared/repo/course'; +import { UserRepo } from '@shared/repo/user'; import { courseFactory } from '@testing/factory/course.factory'; import { lessonFactory } from '@testing/factory/lesson.factory'; import { userFactory } from '@testing/factory/user.factory'; diff --git a/apps/server/src/modules/learnroom/uc/lesson-copy.uc.ts b/apps/server/src/modules/learnroom/uc/lesson-copy.uc.ts index 09d7dd41260..6a242153376 100644 --- a/apps/server/src/modules/learnroom/uc/lesson-copy.uc.ts +++ b/apps/server/src/modules/learnroom/uc/lesson-copy.uc.ts @@ -6,7 +6,7 @@ import { ForbiddenException, Injectable, InternalServerErrorException } from '@n import { Course, LessonEntity, User } from '@shared/domain/entity'; import { Permission } from '@shared/domain/interface/permission.enum'; import { EntityId } from '@shared/domain/types'; -import { CourseRepo } from '@shared/repo'; +import { CourseRepo } from '@shared/repo/course'; @Injectable() export class LessonCopyUC { diff --git a/apps/server/src/modules/legacy-school/legacy-school.module.ts b/apps/server/src/modules/legacy-school/legacy-school.module.ts index aa00988dc98..5e30e67f625 100644 --- a/apps/server/src/modules/legacy-school/legacy-school.module.ts +++ b/apps/server/src/modules/legacy-school/legacy-school.module.ts @@ -1,6 +1,7 @@ import { GroupModule } from '@modules/group'; import { forwardRef, Module } from '@nestjs/common'; -import { FederalStateRepo, LegacySchoolRepo } from '@shared/repo'; +import { FederalStateRepo } from '@shared/repo/federalstate'; +import { LegacySchoolRepo } from '@shared/repo/school'; import { StorageProviderRepo } from '@shared/repo/storageprovider'; import { LoggerModule } from '@core/logger'; import { SchoolSystemOptionsRepo, SchoolYearRepo } from './repo'; diff --git a/apps/server/src/modules/legacy-school/service/federal-state.service.spec.ts b/apps/server/src/modules/legacy-school/service/federal-state.service.spec.ts index af43f827058..5bc3d206411 100644 --- a/apps/server/src/modules/legacy-school/service/federal-state.service.spec.ts +++ b/apps/server/src/modules/legacy-school/service/federal-state.service.spec.ts @@ -1,7 +1,7 @@ import { DeepMocked, createMock } from '@golevelup/ts-jest'; import { Test, TestingModule } from '@nestjs/testing'; import { FederalStateEntity } from '@shared/domain/entity'; -import { FederalStateRepo } from '@shared/repo'; +import { FederalStateRepo } from '@shared/repo/federalstate'; import { federalStateFactory } from '@testing/factory/federal-state.factory'; import { setupEntities } from '@testing/setup-entities'; import { FederalStateNames } from '../types/federal-state-names.enum'; diff --git a/apps/server/src/modules/legacy-school/service/federal-state.service.ts b/apps/server/src/modules/legacy-school/service/federal-state.service.ts index 941771b3178..3cf2c2263a2 100644 --- a/apps/server/src/modules/legacy-school/service/federal-state.service.ts +++ b/apps/server/src/modules/legacy-school/service/federal-state.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@nestjs/common'; import { FederalStateEntity } from '@shared/domain/entity'; -import { FederalStateRepo } from '@shared/repo'; +import { FederalStateRepo } from '@shared/repo/federalstate'; @Injectable() export class FederalStateService { diff --git a/apps/server/src/modules/legacy-school/service/legacy-school.service.spec.ts b/apps/server/src/modules/legacy-school/service/legacy-school.service.spec.ts index 820efa27fee..23de4242893 100644 --- a/apps/server/src/modules/legacy-school/service/legacy-school.service.spec.ts +++ b/apps/server/src/modules/legacy-school/service/legacy-school.service.spec.ts @@ -2,7 +2,7 @@ import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { Test, TestingModule } from '@nestjs/testing'; import { LegacySchoolDo } from '@shared/domain/domainobject'; import { SchoolFeature } from '@shared/domain/types'; -import { LegacySchoolRepo } from '@shared/repo'; +import { LegacySchoolRepo } from '@shared/repo/school'; import { StorageProviderRepo } from '@shared/repo/storageprovider'; import { legacySchoolDoFactory } from '@testing/factory/domainobject'; import { federalStateFactory } from '@testing/factory/federal-state.factory'; diff --git a/apps/server/src/modules/legacy-school/service/legacy-school.service.ts b/apps/server/src/modules/legacy-school/service/legacy-school.service.ts index 7e0f815d885..c779bcba985 100644 --- a/apps/server/src/modules/legacy-school/service/legacy-school.service.ts +++ b/apps/server/src/modules/legacy-school/service/legacy-school.service.ts @@ -2,7 +2,7 @@ import { FileStorageType } from '@modules/school'; import { Injectable, InternalServerErrorException } from '@nestjs/common'; import { LegacySchoolDo } from '@shared/domain/domainobject'; import { EntityId, SchoolFeature } from '@shared/domain/types'; -import { LegacySchoolRepo } from '@shared/repo'; +import { LegacySchoolRepo } from '@shared/repo/school'; import { StorageProviderRepo } from '@shared/repo/storageprovider'; import { FederalStateService } from './federal-state.service'; import { SchoolYearService } from './school-year.service'; diff --git a/apps/server/src/modules/legacy-school/service/validation/school-validation.service.spec.ts b/apps/server/src/modules/legacy-school/service/validation/school-validation.service.spec.ts index 08acc6cd0d0..2168d8d7382 100644 --- a/apps/server/src/modules/legacy-school/service/validation/school-validation.service.spec.ts +++ b/apps/server/src/modules/legacy-school/service/validation/school-validation.service.spec.ts @@ -2,7 +2,7 @@ import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { Test, TestingModule } from '@nestjs/testing'; import { LegacySchoolDo } from '@shared/domain/domainobject'; -import { LegacySchoolRepo } from '@shared/repo'; +import { LegacySchoolRepo } from '@shared/repo/school'; import { legacySchoolDoFactory } from '@testing/factory/domainobject'; import { SchoolNumberDuplicateLoggableException } from '../../loggable'; import { SchoolValidationService } from './school-validation.service'; diff --git a/apps/server/src/modules/legacy-school/service/validation/school-validation.service.ts b/apps/server/src/modules/legacy-school/service/validation/school-validation.service.ts index 3a7814e0a7b..e4dc85806f5 100644 --- a/apps/server/src/modules/legacy-school/service/validation/school-validation.service.ts +++ b/apps/server/src/modules/legacy-school/service/validation/school-validation.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@nestjs/common'; import { LegacySchoolDo } from '@shared/domain/domainobject'; -import { LegacySchoolRepo } from '@shared/repo'; +import { LegacySchoolRepo } from '@shared/repo/school'; import { SchoolNumberDuplicateLoggableException } from '../../loggable'; @Injectable() diff --git a/apps/server/src/modules/lesson/controller/dto/lesson.response.ts b/apps/server/src/modules/lesson/controller/dto/lesson.response.ts index 65c7d37a630..c362f7ac8b8 100644 --- a/apps/server/src/modules/lesson/controller/dto/lesson.response.ts +++ b/apps/server/src/modules/lesson/controller/dto/lesson.response.ts @@ -1,9 +1,9 @@ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; -import { EntityId } from '@shared/domain/types'; -import { PaginationResponse } from '@shared/controller'; +import { PaginationResponse } from '@shared/controller/dto'; import { ComponentProperties, LessonEntity } from '@shared/domain/entity'; -import { MaterialResponse } from './material.response'; +import { EntityId } from '@shared/domain/types'; import { LessonContentResponse } from './lesson-content.response'; +import { MaterialResponse } from './material.response'; export class LessonMetadataResponse { constructor({ _id, name }: LessonMetadataResponse) { diff --git a/apps/server/src/modules/lesson/repository/lesson-scope.ts b/apps/server/src/modules/lesson/repository/lesson-scope.ts index ecc6f15352b..3846e0c664a 100644 --- a/apps/server/src/modules/lesson/repository/lesson-scope.ts +++ b/apps/server/src/modules/lesson/repository/lesson-scope.ts @@ -1,6 +1,6 @@ import { LessonEntity } from '@shared/domain/entity'; import { EntityId } from '@shared/domain/types'; -import { Scope } from '@shared/repo'; +import { Scope } from '@shared/repo/scope'; export class LessonScope extends Scope { byCourseIds(courseIds: EntityId[]): LessonScope { diff --git a/apps/server/src/modules/lesson/repository/lesson.repo.ts b/apps/server/src/modules/lesson/repository/lesson.repo.ts index bad3db0ca2e..dedfb5ed80d 100644 --- a/apps/server/src/modules/lesson/repository/lesson.repo.ts +++ b/apps/server/src/modules/lesson/repository/lesson.repo.ts @@ -4,7 +4,7 @@ import { Injectable } from '@nestjs/common'; import { LessonEntity } from '@shared/domain/entity'; import { SortOrder } from '@shared/domain/interface'; import { Counted, EntityId } from '@shared/domain/types'; -import { BaseRepo } from '@shared/repo'; +import { BaseRepo } from '@shared/repo/base.repo'; import { LessonScope } from './lesson-scope'; @Injectable() diff --git a/apps/server/src/modules/lti-tool/lti-tool.module.ts b/apps/server/src/modules/lti-tool/lti-tool.module.ts index 93b94c862de..2640384c849 100644 --- a/apps/server/src/modules/lti-tool/lti-tool.module.ts +++ b/apps/server/src/modules/lti-tool/lti-tool.module.ts @@ -1,6 +1,6 @@ -import { Module } from '@nestjs/common'; -import { LtiToolRepo } from '@shared/repo'; import { LegacyLogger } from '@core/logger'; +import { Module } from '@nestjs/common'; +import { LtiToolRepo } from '@shared/repo/ltitool'; import { LtiToolService } from './service'; @Module({ diff --git a/apps/server/src/modules/lti-tool/service/lti-tool.service.spec.ts b/apps/server/src/modules/lti-tool/service/lti-tool.service.spec.ts index b5d887f4d7b..3233814b058 100644 --- a/apps/server/src/modules/lti-tool/service/lti-tool.service.spec.ts +++ b/apps/server/src/modules/lti-tool/service/lti-tool.service.spec.ts @@ -1,7 +1,7 @@ import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { Test, TestingModule } from '@nestjs/testing'; import { LtiToolDO } from '@shared/domain/domainobject'; -import { LtiToolRepo } from '@shared/repo'; +import { LtiToolRepo } from '@shared/repo/ltitool'; import { ltiToolDOFactory } from '@testing/factory/domainobject'; import { LtiToolService } from './lti-tool.service'; diff --git a/apps/server/src/modules/lti-tool/service/lti-tool.service.ts b/apps/server/src/modules/lti-tool/service/lti-tool.service.ts index 918941bf5d9..c37430e821d 100644 --- a/apps/server/src/modules/lti-tool/service/lti-tool.service.ts +++ b/apps/server/src/modules/lti-tool/service/lti-tool.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@nestjs/common'; import { LtiToolDO } from '@shared/domain/domainobject/ltitool.do'; -import { LtiToolRepo } from '@shared/repo'; +import { LtiToolRepo } from '@shared/repo/ltitool'; @Injectable() export class LtiToolService { diff --git a/apps/server/src/modules/management/management.module.ts b/apps/server/src/modules/management/management.module.ts index 5aeb168982f..c20eda6a20f 100644 --- a/apps/server/src/modules/management/management.module.ts +++ b/apps/server/src/modules/management/management.module.ts @@ -1,3 +1,4 @@ +import { LoggerModule } from '@core/logger'; import { Configuration } from '@hpi-schul-cloud/commons/lib'; import { ConsoleWriterService } from '@infra/console'; import { DatabaseManagementModule, DatabaseManagementService } from '@infra/database'; @@ -8,8 +9,7 @@ import { KeycloakConfigurationModule } from '@infra/identity-management/keycloak import { serverConfig } from '@modules/server'; import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; -import { createConfigModuleOptions } from '@shared/common'; -import { LoggerModule } from '@core/logger'; +import { createConfigModuleOptions } from '@shared/common/config-module-options'; import { DatabaseManagementConsole } from './console/database-management.console'; import { DatabaseManagementController } from './controller/database-management.controller'; import { BsonConverter } from './converter/bson.converter'; diff --git a/apps/server/src/modules/meta-tag-extractor/controller/dto/meta-tag-extractor.response.ts b/apps/server/src/modules/meta-tag-extractor/controller/dto/meta-tag-extractor.response.ts index 05cabd99f39..dc6083eddbf 100644 --- a/apps/server/src/modules/meta-tag-extractor/controller/dto/meta-tag-extractor.response.ts +++ b/apps/server/src/modules/meta-tag-extractor/controller/dto/meta-tag-extractor.response.ts @@ -1,5 +1,5 @@ import { ApiProperty } from '@nestjs/swagger'; -import { DecodeHtmlEntities } from '@shared/controller'; +import { DecodeHtmlEntities } from '@shared/controller/transformer'; import { IsString, IsUrl } from 'class-validator'; import { MetaDataEntityType } from '../../types'; diff --git a/apps/server/src/modules/meta-tag-extractor/meta-tag-extractor.module.ts b/apps/server/src/modules/meta-tag-extractor/meta-tag-extractor.module.ts index 301e46bc62a..5f02661d908 100644 --- a/apps/server/src/modules/meta-tag-extractor/meta-tag-extractor.module.ts +++ b/apps/server/src/modules/meta-tag-extractor/meta-tag-extractor.module.ts @@ -1,3 +1,4 @@ +import { LoggerModule } from '@core/logger'; import { ConsoleWriterModule } from '@infra/console'; import { BoardModule } from '@modules/board'; import { LearnroomModule } from '@modules/learnroom'; @@ -7,8 +8,7 @@ import { UserModule } from '@modules/user'; import { HttpModule } from '@nestjs/axios'; import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; -import { createConfigModuleOptions } from '@shared/common'; -import { LoggerModule } from '@core/logger'; +import { createConfigModuleOptions } from '@shared/common/config-module-options'; import metaTagExtractorConfig from './meta-tag-extractor.config'; import { MetaTagExtractorService } from './service'; import { MetaTagExternalUrlService } from './service/meta-tag-external-url.service'; diff --git a/apps/server/src/modules/news/controller/dto/create-news.params.ts b/apps/server/src/modules/news/controller/dto/create-news.params.ts index e54ab40be2b..68a88163b61 100644 --- a/apps/server/src/modules/news/controller/dto/create-news.params.ts +++ b/apps/server/src/modules/news/controller/dto/create-news.params.ts @@ -1,5 +1,5 @@ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; -import { SanitizeHtml } from '@shared/controller'; +import { SanitizeHtml } from '@shared/controller/transformer'; import { InputFormat, NewsTargetModel } from '@shared/domain/types'; import { IsDate, IsEnum, IsMongoId, IsOptional, IsString } from 'class-validator'; diff --git a/apps/server/src/modules/news/controller/dto/news.response.ts b/apps/server/src/modules/news/controller/dto/news.response.ts index 0d9fe9e13b2..e7b1c7b5f2e 100644 --- a/apps/server/src/modules/news/controller/dto/news.response.ts +++ b/apps/server/src/modules/news/controller/dto/news.response.ts @@ -1,5 +1,5 @@ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; -import { PaginationResponse } from '@shared/controller'; +import { PaginationResponse } from '@shared/controller/dto'; import { NewsTargetModel } from '@shared/domain/types'; import { SchoolInfoResponse } from './school-info.response'; import { TargetInfoResponse } from './target-info.response'; diff --git a/apps/server/src/modules/news/controller/dto/update-news.params.ts b/apps/server/src/modules/news/controller/dto/update-news.params.ts index 9489702524a..54df16fb162 100644 --- a/apps/server/src/modules/news/controller/dto/update-news.params.ts +++ b/apps/server/src/modules/news/controller/dto/update-news.params.ts @@ -1,5 +1,5 @@ import { ApiPropertyOptional } from '@nestjs/swagger'; -import { SanitizeHtml } from '@shared/controller'; +import { SanitizeHtml } from '@shared/controller/transformer'; import { InputFormat } from '@shared/domain/types'; import { IsDate, IsOptional, IsString } from 'class-validator'; diff --git a/apps/server/src/modules/news/controller/news.controller.ts b/apps/server/src/modules/news/controller/news.controller.ts index 2bc2b716377..882c47e7948 100644 --- a/apps/server/src/modules/news/controller/news.controller.ts +++ b/apps/server/src/modules/news/controller/news.controller.ts @@ -1,7 +1,7 @@ import { CurrentUser, ICurrentUser, JwtAuthentication } from '@infra/auth-guard'; import { Body, Controller, Delete, Get, Param, Patch, Post, Query } from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; -import { PaginationParams } from '@shared/controller'; +import { PaginationParams } from '@shared/controller/dto'; import { NewsMapper } from '../mapper/news.mapper'; import { NewsUc } from '../uc/news.uc'; import { diff --git a/apps/server/src/modules/news/controller/team-news.controller.ts b/apps/server/src/modules/news/controller/team-news.controller.ts index 0810eb5048b..127653797cc 100644 --- a/apps/server/src/modules/news/controller/team-news.controller.ts +++ b/apps/server/src/modules/news/controller/team-news.controller.ts @@ -1,7 +1,7 @@ import { CurrentUser, ICurrentUser, JwtAuthentication } from '@infra/auth-guard'; import { Controller, Get, Param, Query } from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; -import { PaginationParams } from '@shared/controller'; +import { PaginationParams } from '@shared/controller/dto'; import { NewsMapper } from '../mapper/news.mapper'; import { NewsUc } from '../uc'; import { FilterNewsParams, NewsListResponse, TeamUrlParams } from './dto'; diff --git a/apps/server/src/modules/news/loggable/news-crud-operation.loggable.ts b/apps/server/src/modules/news/loggable/news-crud-operation.loggable.ts index 93ad8888aec..a17dc9c710a 100644 --- a/apps/server/src/modules/news/loggable/news-crud-operation.loggable.ts +++ b/apps/server/src/modules/news/loggable/news-crud-operation.loggable.ts @@ -1,7 +1,7 @@ +import { Loggable, LogMessage } from '@core/logger'; import { News } from '@shared/domain/entity'; import { EntityId } from '@shared/domain/types'; -import { CrudOperation } from '@shared/types'; -import { Loggable, LogMessage } from '@core/logger'; +import { CrudOperation } from '@shared/types/crud-operation.enum'; import { NewsMapper } from '../mapper/news.mapper'; export class NewsCrudOperationLoggable implements Loggable { diff --git a/apps/server/src/modules/news/news.module.ts b/apps/server/src/modules/news/news.module.ts index 8359ef1cf55..2306647ec9b 100644 --- a/apps/server/src/modules/news/news.module.ts +++ b/apps/server/src/modules/news/news.module.ts @@ -1,12 +1,12 @@ -import { Module } from '@nestjs/common'; -import { NewsRepo } from '@shared/repo'; import { LoggerModule } from '@core/logger'; import { AuthorizationModule } from '@modules/authorization'; +import { Module } from '@nestjs/common'; import { CqrsModule } from '@nestjs/cqrs'; +import { NewsRepo } from '@shared/repo/news'; import { NewsController } from './controller/news.controller'; import { TeamNewsController } from './controller/team-news.controller'; -import { NewsUc } from './uc/news.uc'; import { NewsService } from './service/news.service'; +import { NewsUc } from './uc/news.uc'; // imports from deletion module? @Module({ diff --git a/apps/server/src/modules/news/service/news.service.spec.ts b/apps/server/src/modules/news/service/news.service.spec.ts index b3e645202df..33d9fb53e47 100644 --- a/apps/server/src/modules/news/service/news.service.spec.ts +++ b/apps/server/src/modules/news/service/news.service.spec.ts @@ -1,3 +1,4 @@ +import { Logger } from '@core/logger'; import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { MikroORM } from '@mikro-orm/core'; import { ObjectId } from '@mikro-orm/mongodb'; @@ -11,8 +12,7 @@ import { import { deletionRequestFactory } from '@modules/deletion/domain/testing'; import { EventBus } from '@nestjs/cqrs'; import { Test, TestingModule } from '@nestjs/testing'; -import { NewsRepo } from '@shared/repo'; -import { Logger } from '@core/logger'; +import { NewsRepo } from '@shared/repo/news'; import { teamNewsFactory } from '@testing/factory/news.factory'; import { userFactory } from '@testing/factory/user.factory'; import { setupEntities } from '@testing/setup-entities'; diff --git a/apps/server/src/modules/news/service/news.service.ts b/apps/server/src/modules/news/service/news.service.ts index c948c56258d..8663659f918 100644 --- a/apps/server/src/modules/news/service/news.service.ts +++ b/apps/server/src/modules/news/service/news.service.ts @@ -1,3 +1,4 @@ +import { Logger } from '@core/logger'; import { MikroORM, UseRequestContext } from '@mikro-orm/core'; import { DataDeletedEvent, @@ -15,8 +16,7 @@ import { Injectable } from '@nestjs/common'; import { EventBus, EventsHandler, IEventHandler } from '@nestjs/cqrs'; import { News } from '@shared/domain/entity'; import { EntityId } from '@shared/domain/types'; -import { NewsRepo } from '@shared/repo'; -import { Logger } from '@core/logger'; +import { NewsRepo } from '@shared/repo/news'; @Injectable() @EventsHandler(UserDeletedEvent) diff --git a/apps/server/src/modules/news/uc/news.uc.spec.ts b/apps/server/src/modules/news/uc/news.uc.spec.ts index 15132bc8894..24b9bfc00e4 100644 --- a/apps/server/src/modules/news/uc/news.uc.spec.ts +++ b/apps/server/src/modules/news/uc/news.uc.spec.ts @@ -1,3 +1,4 @@ +import { Logger } from '@core/logger'; import { createMock } from '@golevelup/ts-jest'; import { ObjectId } from '@mikro-orm/mongodb'; import { FeathersAuthorizationService } from '@modules/authorization'; @@ -6,8 +7,7 @@ import { NotFoundException } from '@nestjs/common/exceptions/not-found.exception import { Test, TestingModule } from '@nestjs/testing'; import { Permission } from '@shared/domain/interface'; import { CreateNews, NewsTargetModel } from '@shared/domain/types'; -import { NewsRepo } from '@shared/repo'; -import { Logger } from '@core/logger'; +import { NewsRepo } from '@shared/repo/news'; import { NewsUc } from './news.uc'; describe('NewsUc', () => { diff --git a/apps/server/src/modules/news/uc/news.uc.ts b/apps/server/src/modules/news/uc/news.uc.ts index 02dd2d1c84d..c4a04f511db 100644 --- a/apps/server/src/modules/news/uc/news.uc.ts +++ b/apps/server/src/modules/news/uc/news.uc.ts @@ -1,11 +1,11 @@ +import { Logger } from '@core/logger'; import { FeathersAuthorizationService } from '@modules/authorization'; import { Injectable } from '@nestjs/common'; import { News } from '@shared/domain/entity'; import { IFindOptions, Permission, SortOrder } from '@shared/domain/interface'; import { Counted, CreateNews, EntityId, INewsScope, IUpdateNews, NewsTargetModel } from '@shared/domain/types'; -import { NewsRepo, NewsTargetFilter } from '@shared/repo'; -import { CrudOperation } from '@shared/types'; -import { Logger } from '@core/logger'; +import { NewsRepo, NewsTargetFilter } from '@shared/repo/news'; +import { CrudOperation } from '@shared/types/crud-operation.enum'; import { NewsCrudOperationLoggable } from '../loggable/news-crud-operation.loggable'; type NewsPermission = Permission.NEWS_VIEW | Permission.NEWS_EDIT; diff --git a/apps/server/src/modules/oauth-provider/api/dto/request/accept.query.ts b/apps/server/src/modules/oauth-provider/api/dto/request/accept.query.ts index 59877c84a65..e31d214b6fd 100644 --- a/apps/server/src/modules/oauth-provider/api/dto/request/accept.query.ts +++ b/apps/server/src/modules/oauth-provider/api/dto/request/accept.query.ts @@ -1,5 +1,5 @@ import { ApiPropertyOptional } from '@nestjs/swagger'; -import { StringToBoolean } from '@shared/controller'; +import { StringToBoolean } from '@shared/controller/transformer'; import { IsBoolean } from 'class-validator'; export class AcceptQuery { diff --git a/apps/server/src/modules/oauth-provider/domain/service/id-token.service.spec.ts b/apps/server/src/modules/oauth-provider/domain/service/id-token.service.spec.ts index f90d3833567..0d4d156661d 100644 --- a/apps/server/src/modules/oauth-provider/domain/service/id-token.service.spec.ts +++ b/apps/server/src/modules/oauth-provider/domain/service/id-token.service.spec.ts @@ -6,7 +6,7 @@ import { UserService } from '@modules/user/service/user.service'; import { Test, TestingModule } from '@nestjs/testing'; import { Pseudonym, UserDO } from '@shared/domain/domainobject'; import { TeamEntity } from '@shared/domain/entity'; -import { TeamsRepo } from '@shared/repo'; +import { TeamsRepo } from '@shared/repo/teams'; import { pseudonymFactory } from '@testing/factory/domainobject'; import { teamFactory } from '@testing/factory/team.factory'; import { userDoFactory } from '@testing/factory/user.do.factory'; diff --git a/apps/server/src/modules/oauth-provider/domain/service/id-token.service.ts b/apps/server/src/modules/oauth-provider/domain/service/id-token.service.ts index 4117b530a22..74323b86e6e 100644 --- a/apps/server/src/modules/oauth-provider/domain/service/id-token.service.ts +++ b/apps/server/src/modules/oauth-provider/domain/service/id-token.service.ts @@ -4,7 +4,7 @@ import { UserService } from '@modules/user'; import { Injectable } from '@nestjs/common'; import { LtiToolDO, Pseudonym, UserDO } from '@shared/domain/domainobject'; import { TeamEntity } from '@shared/domain/entity'; -import { TeamsRepo } from '@shared/repo'; +import { TeamsRepo } from '@shared/repo/teams'; import { IdTokenCreationLoggableException } from '../error'; import { GroupNameIdTuple, IdToken, OauthScope } from '../interface'; import { OauthProviderLoginFlowService } from './oauth-provider.login-flow.service'; diff --git a/apps/server/src/modules/oauth-provider/oauth-provider.module.ts b/apps/server/src/modules/oauth-provider/oauth-provider.module.ts index 96f6289e867..6b4529a92e4 100644 --- a/apps/server/src/modules/oauth-provider/oauth-provider.module.ts +++ b/apps/server/src/modules/oauth-provider/oauth-provider.module.ts @@ -1,10 +1,10 @@ +import { LoggerModule } from '@core/logger'; import { LtiToolModule } from '@modules/lti-tool'; import { PseudonymModule } from '@modules/pseudonym'; import { ToolModule } from '@modules/tool'; import { UserModule } from '@modules/user'; import { Module } from '@nestjs/common'; -import { TeamsRepo } from '@shared/repo'; -import { LoggerModule } from '@core/logger'; +import { TeamsRepo } from '@shared/repo/teams'; import { IdTokenService } from './domain/service/id-token.service'; import { OauthProviderLoginFlowService } from './domain/service/oauth-provider.login-flow.service'; import { OauthProviderServiceModule } from './oauth-provider-service.module'; diff --git a/apps/server/src/modules/oauth/loggable/id-token-extraction-failure-loggable-exception.ts b/apps/server/src/modules/oauth/loggable/id-token-extraction-failure-loggable-exception.ts index 96cdf0e334f..612d25c4ae1 100644 --- a/apps/server/src/modules/oauth/loggable/id-token-extraction-failure-loggable-exception.ts +++ b/apps/server/src/modules/oauth/loggable/id-token-extraction-failure-loggable-exception.ts @@ -1,6 +1,6 @@ -import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; +import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; export class IdTokenExtractionFailureLoggableException extends BusinessError implements Loggable { constructor(private readonly fieldName: string) { diff --git a/apps/server/src/modules/oauth/loggable/id-token-user-not-found-loggable-exception.ts b/apps/server/src/modules/oauth/loggable/id-token-user-not-found-loggable-exception.ts index caed6f79198..38dcec4044e 100644 --- a/apps/server/src/modules/oauth/loggable/id-token-user-not-found-loggable-exception.ts +++ b/apps/server/src/modules/oauth/loggable/id-token-user-not-found-loggable-exception.ts @@ -1,6 +1,6 @@ -import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; +import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; export class IdTokenUserNotFoundLoggableException extends BusinessError implements Loggable { constructor(private readonly uuid: string, private readonly additionalInfo?: string) { diff --git a/apps/server/src/modules/oauth/loggable/multiple-users-found.loggable-exception.ts b/apps/server/src/modules/oauth/loggable/multiple-users-found.loggable-exception.ts index f2de85212aa..1b1c1b4c65b 100644 --- a/apps/server/src/modules/oauth/loggable/multiple-users-found.loggable-exception.ts +++ b/apps/server/src/modules/oauth/loggable/multiple-users-found.loggable-exception.ts @@ -1,6 +1,6 @@ -import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; +import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; export class MultipleUsersFoundLoggableException extends BusinessError implements Loggable { constructor(private readonly externalUserId: string) { diff --git a/apps/server/src/modules/oauth/loggable/oauth-config-missing-loggable-exception.ts b/apps/server/src/modules/oauth/loggable/oauth-config-missing-loggable-exception.ts index c2b97a579b5..32ae2a261de 100644 --- a/apps/server/src/modules/oauth/loggable/oauth-config-missing-loggable-exception.ts +++ b/apps/server/src/modules/oauth/loggable/oauth-config-missing-loggable-exception.ts @@ -1,6 +1,6 @@ -import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; +import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; export class OauthConfigMissingLoggableException extends BusinessError implements Loggable { constructor(private readonly systemId: string) { diff --git a/apps/server/src/modules/oauth/loggable/token-invalid-loggable-exception.ts b/apps/server/src/modules/oauth/loggable/token-invalid-loggable-exception.ts index 1d774b6561f..666c3267c91 100644 --- a/apps/server/src/modules/oauth/loggable/token-invalid-loggable-exception.ts +++ b/apps/server/src/modules/oauth/loggable/token-invalid-loggable-exception.ts @@ -1,6 +1,6 @@ -import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; +import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; export class TokenInvalidLoggableException extends BusinessError implements Loggable { constructor() { diff --git a/apps/server/src/modules/oauth/loggable/user-not-found-after-provisioning.loggable-exception.ts b/apps/server/src/modules/oauth/loggable/user-not-found-after-provisioning.loggable-exception.ts index d4593d7ea37..27694f35d8b 100644 --- a/apps/server/src/modules/oauth/loggable/user-not-found-after-provisioning.loggable-exception.ts +++ b/apps/server/src/modules/oauth/loggable/user-not-found-after-provisioning.loggable-exception.ts @@ -1,5 +1,5 @@ import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; +import { BusinessError } from '@shared/common/error'; import { EntityId } from '@shared/domain/types'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; diff --git a/apps/server/src/modules/oauth/oauth.module.ts b/apps/server/src/modules/oauth/oauth.module.ts index 51ef4b3537f..873ed66e337 100644 --- a/apps/server/src/modules/oauth/oauth.module.ts +++ b/apps/server/src/modules/oauth/oauth.module.ts @@ -1,3 +1,4 @@ +import { LoggerModule } from '@core/logger'; import { CacheWrapperModule } from '@infra/cache'; import { EncryptionModule } from '@infra/encryption'; import { AuthorizationModule } from '@modules/authorization'; @@ -8,8 +9,7 @@ import { UserModule } from '@modules/user'; import { UserLoginMigrationModule } from '@modules/user-login-migration'; import { HttpModule } from '@nestjs/axios'; import { Module } from '@nestjs/common'; -import { LtiToolRepo } from '@shared/repo'; -import { LoggerModule } from '@core/logger'; +import { LtiToolRepo } from '@shared/repo/ltitool'; import { OAUTH_SESSION_TOKEN_REPO, OauthSessionTokenMikroOrmRepo } from './repo'; import { HydraSsoService, OauthAdapterService, OAuthService, OauthSessionTokenService } from './service'; diff --git a/apps/server/src/modules/oauth/service/hydra.service.spec.ts b/apps/server/src/modules/oauth/service/hydra.service.spec.ts index 0a9d4a845d3..abfd8baa501 100644 --- a/apps/server/src/modules/oauth/service/hydra.service.spec.ts +++ b/apps/server/src/modules/oauth/service/hydra.service.spec.ts @@ -1,3 +1,4 @@ +import { LegacyLogger } from '@core/logger'; import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { Configuration } from '@hpi-schul-cloud/commons/lib'; import { DefaultEncryptionService, SymmetricKeyEncryptionService } from '@infra/encryption'; @@ -11,8 +12,7 @@ import { InternalServerErrorException } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; import { LtiToolDO } from '@shared/domain/domainobject/ltitool.do'; import { LtiPrivacyPermission, LtiRoleType } from '@shared/domain/entity'; -import { LtiToolRepo } from '@shared/repo'; -import { LegacyLogger } from '@core/logger'; +import { LtiToolRepo } from '@shared/repo/ltitool'; import { axiosResponseFactory } from '@testing/factory/axios-response.factory'; import { AxiosResponse } from 'axios'; import { of } from 'rxjs'; diff --git a/apps/server/src/modules/oauth/service/hydra.service.ts b/apps/server/src/modules/oauth/service/hydra.service.ts index fc5db8036cb..8694d9fe123 100644 --- a/apps/server/src/modules/oauth/service/hydra.service.ts +++ b/apps/server/src/modules/oauth/service/hydra.service.ts @@ -1,3 +1,4 @@ +import { LegacyLogger } from '@core/logger'; import { Configuration } from '@hpi-schul-cloud/commons/lib'; import { DefaultEncryptionService, EncryptionService } from '@infra/encryption'; import { AuthorizationParams } from '@modules/oauth/controller/dto/authorization.params'; @@ -8,8 +9,7 @@ import { HttpService } from '@nestjs/axios'; import { Inject, InternalServerErrorException } from '@nestjs/common'; import { Injectable } from '@nestjs/common/decorators/core/injectable.decorator'; import { LtiToolDO } from '@shared/domain/domainobject/ltitool.do'; -import { LtiToolRepo } from '@shared/repo'; -import { LegacyLogger } from '@core/logger'; +import { LtiToolRepo } from '@shared/repo/ltitool'; import { AxiosRequestConfig, AxiosResponse } from 'axios'; import { nanoid } from 'nanoid'; import QueryString from 'qs'; diff --git a/apps/server/src/modules/provisioning/loggable/bad-data.loggable-exception.ts b/apps/server/src/modules/provisioning/loggable/bad-data.loggable-exception.ts index 0f225c2ca93..225d92d1111 100644 --- a/apps/server/src/modules/provisioning/loggable/bad-data.loggable-exception.ts +++ b/apps/server/src/modules/provisioning/loggable/bad-data.loggable-exception.ts @@ -1,6 +1,6 @@ -import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; import { ErrorLogMessage, Loggable, LogMessage, LogMessageData, ValidationErrorLogMessage } from '@core/logger'; +import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; export class BadDataLoggableException extends BusinessError implements Loggable { constructor(message?: string, details?: Record) { diff --git a/apps/server/src/modules/provisioning/loggable/school-missing.loggable-exception.ts b/apps/server/src/modules/provisioning/loggable/school-missing.loggable-exception.ts index 7d47703a4a3..7aa5915af91 100644 --- a/apps/server/src/modules/provisioning/loggable/school-missing.loggable-exception.ts +++ b/apps/server/src/modules/provisioning/loggable/school-missing.loggable-exception.ts @@ -1,6 +1,6 @@ -import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; +import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; import { ExternalUserDto } from '../dto'; export class SchoolMissingLoggableException extends BusinessError implements Loggable { diff --git a/apps/server/src/modules/provisioning/loggable/school-name-required-loggable-exception.ts b/apps/server/src/modules/provisioning/loggable/school-name-required-loggable-exception.ts index 8c539e2986f..13772e71281 100644 --- a/apps/server/src/modules/provisioning/loggable/school-name-required-loggable-exception.ts +++ b/apps/server/src/modules/provisioning/loggable/school-name-required-loggable-exception.ts @@ -1,6 +1,6 @@ -import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; +import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; export class SchoolNameRequiredLoggableException extends BusinessError implements Loggable { constructor(private readonly fieldName: string) { diff --git a/apps/server/src/modules/provisioning/loggable/user-role-unknown.loggable-exception.ts b/apps/server/src/modules/provisioning/loggable/user-role-unknown.loggable-exception.ts index 7dd12c82b7d..315e90d3c4d 100644 --- a/apps/server/src/modules/provisioning/loggable/user-role-unknown.loggable-exception.ts +++ b/apps/server/src/modules/provisioning/loggable/user-role-unknown.loggable-exception.ts @@ -1,6 +1,6 @@ -import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; +import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; import { ExternalUserDto } from '../dto'; export class UserRoleUnknownLoggableException extends BusinessError implements Loggable { diff --git a/apps/server/src/modules/pseudonym/entity/pseudonym.scope.ts b/apps/server/src/modules/pseudonym/entity/pseudonym.scope.ts index a80b89bcc18..ba9f0695e35 100644 --- a/apps/server/src/modules/pseudonym/entity/pseudonym.scope.ts +++ b/apps/server/src/modules/pseudonym/entity/pseudonym.scope.ts @@ -1,5 +1,5 @@ -import { Scope } from '@shared/repo'; import { ObjectId } from '@mikro-orm/mongodb'; +import { Scope } from '@shared/repo/scope'; import { ExternalToolPseudonymEntity } from './external-tool-pseudonym.entity'; export class PseudonymScope extends Scope { diff --git a/apps/server/src/modules/pseudonym/loggable/too-many-pseudonyms.loggable-exception.ts b/apps/server/src/modules/pseudonym/loggable/too-many-pseudonyms.loggable-exception.ts index 2d93fcb5615..8486c0de27a 100644 --- a/apps/server/src/modules/pseudonym/loggable/too-many-pseudonyms.loggable-exception.ts +++ b/apps/server/src/modules/pseudonym/loggable/too-many-pseudonyms.loggable-exception.ts @@ -1,7 +1,7 @@ -import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; import { Loggable } from '@core/logger/interfaces'; import { ErrorLogMessage, LogMessage, ValidationErrorLogMessage } from '@core/logger/types'; +import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; export class TooManyPseudonymsLoggableException extends BusinessError implements Loggable { constructor(private readonly pseudonym: string) { diff --git a/apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.repo.ts b/apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.repo.ts index 7b64c67e61b..6bc875e95e2 100644 --- a/apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.repo.ts +++ b/apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.repo.ts @@ -3,7 +3,7 @@ import { Injectable } from '@nestjs/common'; import { Page, Pseudonym } from '@shared/domain/domainobject'; import { IFindOptions, Pagination } from '@shared/domain/interface'; import { EntityId } from '@shared/domain/types'; -import { Scope } from '@shared/repo'; +import { Scope } from '@shared/repo/scope'; import { PseudonymSearchQuery } from '../domain'; import { ExternalToolPseudonymEntity, ExternalToolPseudonymEntityProps } from '../entity'; import { PseudonymScope } from '../entity/pseudonym.scope'; diff --git a/apps/server/src/modules/role/role.module.ts b/apps/server/src/modules/role/role.module.ts index a80847c7899..31340b35b88 100644 --- a/apps/server/src/modules/role/role.module.ts +++ b/apps/server/src/modules/role/role.module.ts @@ -1,5 +1,5 @@ import { Module } from '@nestjs/common'; -import { RoleRepo } from '@shared/repo'; +import { RoleRepo } from '@shared/repo/role'; import { RoleService } from './service'; import { RoleUc } from './uc'; diff --git a/apps/server/src/modules/role/service/role.service.spec.ts b/apps/server/src/modules/role/service/role.service.spec.ts index 74794113f72..d4fcee13b65 100644 --- a/apps/server/src/modules/role/service/role.service.spec.ts +++ b/apps/server/src/modules/role/service/role.service.spec.ts @@ -3,7 +3,7 @@ import { NotFoundError } from '@mikro-orm/core'; import { Test, TestingModule } from '@nestjs/testing'; import { Role } from '@shared/domain/entity'; import { RoleName } from '@shared/domain/interface'; -import { RoleRepo } from '@shared/repo'; +import { RoleRepo } from '@shared/repo/role'; import { roleFactory } from '@testing/factory/role.factory'; import { RoleDto } from './dto'; import { RoleService } from './role.service'; diff --git a/apps/server/src/modules/role/service/role.service.ts b/apps/server/src/modules/role/service/role.service.ts index ffa4837ce10..ea632ecc07f 100644 --- a/apps/server/src/modules/role/service/role.service.ts +++ b/apps/server/src/modules/role/service/role.service.ts @@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common'; import { Role } from '@shared/domain/entity'; import { RoleName } from '@shared/domain/interface'; import { EntityId } from '@shared/domain/types'; -import { RoleRepo } from '@shared/repo'; +import { RoleRepo } from '@shared/repo/role'; import { RoleMapper } from '../mapper/role.mapper'; import { RoleDto } from './dto'; diff --git a/apps/server/src/modules/room/api/dto/request/create-room.body.params.ts b/apps/server/src/modules/room/api/dto/request/create-room.body.params.ts index 42e4e5b586e..ae52d8f2574 100644 --- a/apps/server/src/modules/room/api/dto/request/create-room.body.params.ts +++ b/apps/server/src/modules/room/api/dto/request/create-room.body.params.ts @@ -1,7 +1,7 @@ -import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; -import { NullToUndefined, SanitizeHtml } from '@shared/controller'; import { RoomCreateProps } from '@modules/room/domain'; import { RoomColor } from '@modules/room/domain/type'; +import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; +import { NullToUndefined, SanitizeHtml } from '@shared/controller/transformer'; import { IsDate, IsEnum, IsOptional, IsString, MaxLength, MinLength } from 'class-validator'; export class CreateRoomBodyParams implements Omit { diff --git a/apps/server/src/modules/room/api/dto/request/room-pagination.params.ts b/apps/server/src/modules/room/api/dto/request/room-pagination.params.ts index cfcb914cc63..d82256297ae 100644 --- a/apps/server/src/modules/room/api/dto/request/room-pagination.params.ts +++ b/apps/server/src/modules/room/api/dto/request/room-pagination.params.ts @@ -1,5 +1,5 @@ import { ApiPropertyOptional } from '@nestjs/swagger'; -import { PaginationParams } from '@shared/controller'; +import { PaginationParams } from '@shared/controller/dto'; import { IsInt } from 'class-validator'; export class RoomPaginationParams extends PaginationParams { diff --git a/apps/server/src/modules/room/api/dto/request/update-room.body.params.ts b/apps/server/src/modules/room/api/dto/request/update-room.body.params.ts index 71bf7ac10a1..390f8f3bc90 100644 --- a/apps/server/src/modules/room/api/dto/request/update-room.body.params.ts +++ b/apps/server/src/modules/room/api/dto/request/update-room.body.params.ts @@ -1,7 +1,7 @@ import { RoomUpdateProps } from '@modules/room/domain'; import { RoomColor } from '@modules/room/domain/type'; import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; -import { NullToUndefined, SanitizeHtml } from '@shared/controller'; +import { NullToUndefined, SanitizeHtml } from '@shared/controller/transformer'; import { IsDate, IsEnum, IsOptional, IsString, MaxLength, MinLength } from 'class-validator'; export class UpdateRoomBodyParams implements RoomUpdateProps { diff --git a/apps/server/src/modules/room/api/dto/response/room-board-list.response.ts b/apps/server/src/modules/room/api/dto/response/room-board-list.response.ts index 60d8510709b..3c99afe63e9 100644 --- a/apps/server/src/modules/room/api/dto/response/room-board-list.response.ts +++ b/apps/server/src/modules/room/api/dto/response/room-board-list.response.ts @@ -1,5 +1,5 @@ import { ApiProperty } from '@nestjs/swagger'; -import { PaginationResponse } from '@shared/controller'; +import { PaginationResponse } from '@shared/controller/dto'; import { RoomBoardItemResponse } from './room-board-item.response'; export class RoomBoardListResponse extends PaginationResponse { diff --git a/apps/server/src/modules/room/api/dto/response/room-list.response.ts b/apps/server/src/modules/room/api/dto/response/room-list.response.ts index 63d84e6ea3f..42ce730ad76 100644 --- a/apps/server/src/modules/room/api/dto/response/room-list.response.ts +++ b/apps/server/src/modules/room/api/dto/response/room-list.response.ts @@ -1,5 +1,5 @@ import { ApiProperty } from '@nestjs/swagger'; -import { PaginationResponse } from '@shared/controller'; +import { PaginationResponse } from '@shared/controller/dto'; import { RoomItemResponse } from './room-item.response'; export class RoomListResponse extends PaginationResponse { diff --git a/apps/server/src/modules/room/api/room.controller.ts b/apps/server/src/modules/room/api/room.controller.ts index a08ee97a5e1..a92a047561b 100644 --- a/apps/server/src/modules/room/api/room.controller.ts +++ b/apps/server/src/modules/room/api/room.controller.ts @@ -16,7 +16,7 @@ import { UnauthorizedException, } from '@nestjs/common'; import { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { IFindOptions } from '@shared/domain/interface'; import { ErrorResponse } from '@core/error/dto'; import { Room } from '../domain'; @@ -30,9 +30,9 @@ import { RoomBoardListResponse } from './dto/response/room-board-list.response'; import { RoomDetailsResponse } from './dto/response/room-details.response'; import { RoomItemResponse } from './dto/response/room-item.response'; import { RoomListResponse } from './dto/response/room-list.response'; +import { RoomMemberListResponse } from './dto/response/room-member-list.response'; import { RoomMapper } from './mapper/room.mapper'; import { RoomUc } from './room.uc'; -import { RoomMemberListResponse } from './dto/response/room-member-list.response'; import { ChangeRoomRoleBodyParams } from './dto/request/change-room-role.body.params'; @ApiTags('Room') diff --git a/apps/server/src/modules/room/domain/service/room.service.spec.ts b/apps/server/src/modules/room/domain/service/room.service.spec.ts index 08191e7409d..c86bca830d8 100644 --- a/apps/server/src/modules/room/domain/service/room.service.spec.ts +++ b/apps/server/src/modules/room/domain/service/room.service.spec.ts @@ -1,9 +1,9 @@ import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { ObjectId } from '@mikro-orm/mongodb'; import { Test, TestingModule } from '@nestjs/testing'; +import { ValidationError } from '@shared/common/error'; import { Page } from '@shared/domain/domainobject'; import { EntityId } from '@shared/domain/types'; -import { ValidationError } from '@shared/common'; import { RoomRepo } from '../../repo'; import { roomFactory } from '../../testing'; import { Room, RoomCreateProps, RoomUpdateProps } from '../do'; diff --git a/apps/server/src/modules/room/domain/service/room.service.ts b/apps/server/src/modules/room/domain/service/room.service.ts index 241b26a191a..3526f54e597 100644 --- a/apps/server/src/modules/room/domain/service/room.service.ts +++ b/apps/server/src/modules/room/domain/service/room.service.ts @@ -1,9 +1,9 @@ import { ObjectId } from '@mikro-orm/mongodb'; import { Injectable } from '@nestjs/common'; +import { ValidationError } from '@shared/common/error'; import { Page } from '@shared/domain/domainobject'; import { IFindOptions } from '@shared/domain/interface'; import { EntityId } from '@shared/domain/types'; -import { ValidationError } from '@shared/common'; import { RoomRepo } from '../../repo'; import { Room, RoomCreateProps, RoomProps, RoomUpdateProps } from '../do'; diff --git a/apps/server/src/modules/school/api/dto/param/school-update-body.params.ts b/apps/server/src/modules/school/api/dto/param/school-update-body.params.ts index 6b6726a72d6..2e0c2adaeff 100644 --- a/apps/server/src/modules/school/api/dto/param/school-update-body.params.ts +++ b/apps/server/src/modules/school/api/dto/param/school-update-body.params.ts @@ -1,5 +1,5 @@ import { ApiPropertyOptional } from '@nestjs/swagger'; -import { SanitizeHtml } from '@shared/controller'; +import { SanitizeHtml } from '@shared/controller/transformer'; import { LanguageType, Permission } from '@shared/domain/interface'; import { EntityId, SchoolFeature } from '@shared/domain/types'; import { Transform, Type } from 'class-transformer'; diff --git a/apps/server/src/modules/school/api/school.controller.ts b/apps/server/src/modules/school/api/school.controller.ts index 5da7e5e11e1..51644e46c1b 100644 --- a/apps/server/src/modules/school/api/school.controller.ts +++ b/apps/server/src/modules/school/api/school.controller.ts @@ -1,7 +1,7 @@ import { CurrentUser, ICurrentUser, JwtAuthentication } from '@infra/auth-guard'; import { Body, Controller, ForbiddenException, Get, NotFoundException, Param, Patch, Query } from '@nestjs/common'; import { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { SchoolQueryParams, SchoolRemoveSystemUrlParams, SchoolUpdateBodyParams, SchoolUrlParams } from './dto/param'; import { SchoolForExternalInviteResponse, SchoolResponse, SchoolSystemResponse } from './dto/response'; import { SchoolExistsResponse } from './dto/response/school-exists.response'; diff --git a/apps/server/src/modules/school/domain/do/school.ts b/apps/server/src/modules/school/domain/do/school.ts index f6178d468ae..a335dbe9968 100644 --- a/apps/server/src/modules/school/domain/do/school.ts +++ b/apps/server/src/modules/school/domain/do/school.ts @@ -1,4 +1,4 @@ -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { AuthorizableObject, DomainObject } from '@shared/domain/domain-object'; import { LanguageType } from '@shared/domain/interface'; import { EntityId, SchoolFeature, SchoolPurpose } from '@shared/domain/types'; diff --git a/apps/server/src/modules/school/domain/service/school.service.ts b/apps/server/src/modules/school/domain/service/school.service.ts index be216c6d34c..a4fb57c8f5c 100644 --- a/apps/server/src/modules/school/domain/service/school.service.ts +++ b/apps/server/src/modules/school/domain/service/school.service.ts @@ -1,7 +1,7 @@ import { System, SystemService } from '@modules/system'; import { Inject, Injectable, NotFoundException } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; -import { TypeGuard } from '@shared/common'; +import { TypeGuard } from '@shared/common/guards'; import { IFindOptions } from '@shared/domain/interface/find-options'; import { EntityId } from '@shared/domain/types/entity-id'; import { SchoolConfig } from '../../school.config'; diff --git a/apps/server/src/modules/server-console/server-console.app.module.ts b/apps/server/src/modules/server-console/server-console.app.module.ts index 5f5acab7726..fd5d1e255bf 100644 --- a/apps/server/src/modules/server-console/server-console.app.module.ts +++ b/apps/server/src/modules/server-console/server-console.app.module.ts @@ -8,7 +8,7 @@ import { ManagementModule } from '@modules/management/management.module'; import { serverConfig } from '@modules/server'; import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; -import { createConfigModuleOptions } from '@shared/common'; +import { createConfigModuleOptions } from '@shared/common/config-module-options'; import { ConsoleModule } from 'nestjs-console'; import { mikroOrmCliConfig } from '../../config/mikro-orm-cli.config'; import { ServerConsole } from './server.console'; diff --git a/apps/server/src/modules/server/admin-api.server.app.module.ts b/apps/server/src/modules/server/admin-api.server.app.module.ts index 426b64b8a4a..17047c1b1e7 100644 --- a/apps/server/src/modules/server/admin-api.server.app.module.ts +++ b/apps/server/src/modules/server/admin-api.server.app.module.ts @@ -14,7 +14,7 @@ import { UserAdminApiModule } from '@modules/user/user-admin-api.module'; import { DynamicModule, Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { CqrsModule } from '@nestjs/cqrs'; -import { createConfigModuleOptions } from '@shared/common'; +import { createConfigModuleOptions } from '@shared/common/config-module-options'; import { defaultMikroOrmOptions } from '@shared/common/defaultMikroOrmOptions'; import { ALL_ENTITIES } from '@shared/domain/entity'; import { AdminApiRegistrationPinModule } from '../registration-pin/admin-api-registration-pin.module'; diff --git a/apps/server/src/modules/server/server.app.module.ts b/apps/server/src/modules/server/server.app.module.ts index 5b90d1df82b..d41b5eeae79 100644 --- a/apps/server/src/modules/server/server.app.module.ts +++ b/apps/server/src/modules/server/server.app.module.ts @@ -47,7 +47,7 @@ import { UserApiModule } from '@modules/user/user-api.module'; import { VideoConferenceApiModule } from '@modules/video-conference/video-conference-api.module'; import { DynamicModule, Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; -import { createConfigModuleOptions } from '@shared/common'; +import { createConfigModuleOptions } from '@shared/common/config-module-options'; import { defaultMikroOrmOptions } from '@shared/common/defaultMikroOrmOptions'; import { ALL_ENTITIES } from '@shared/domain/entity'; import { ServerConfigController, ServerController, ServerUc } from './api'; diff --git a/apps/server/src/modules/sharing/controller/dto/share-token-import.body.params.ts b/apps/server/src/modules/sharing/controller/dto/share-token-import.body.params.ts index 28453a6a4c7..8a129c5d59c 100644 --- a/apps/server/src/modules/sharing/controller/dto/share-token-import.body.params.ts +++ b/apps/server/src/modules/sharing/controller/dto/share-token-import.body.params.ts @@ -1,5 +1,5 @@ import { ApiProperty } from '@nestjs/swagger'; -import { SanitizeHtml } from '@shared/controller'; +import { SanitizeHtml } from '@shared/controller/transformer'; import { IsOptional, IsString } from 'class-validator'; export class ShareTokenImportBodyParams { diff --git a/apps/server/src/modules/sharing/controller/dto/share-token-info.reponse.ts b/apps/server/src/modules/sharing/controller/dto/share-token-info.reponse.ts index 7696a510ae0..83bcbf8c277 100644 --- a/apps/server/src/modules/sharing/controller/dto/share-token-info.reponse.ts +++ b/apps/server/src/modules/sharing/controller/dto/share-token-info.reponse.ts @@ -1,5 +1,5 @@ import { ApiProperty } from '@nestjs/swagger'; -import { DecodeHtmlEntities } from '@shared/controller'; +import { DecodeHtmlEntities } from '@shared/controller/transformer'; import { ShareTokenParentType } from '../../domainobject/share-token.do'; export class ShareTokenInfoResponse { diff --git a/apps/server/src/modules/sharing/controller/share-token.controller.ts b/apps/server/src/modules/sharing/controller/share-token.controller.ts index 04e9ec01b8c..876677a7f7c 100644 --- a/apps/server/src/modules/sharing/controller/share-token.controller.ts +++ b/apps/server/src/modules/sharing/controller/share-token.controller.ts @@ -12,7 +12,8 @@ import { Post, } from '@nestjs/common'; import { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger'; -import { ApiValidationError, RequestTimeout } from '@shared/common'; +import { RequestTimeout } from '@shared/common/decorators'; +import { ApiValidationError } from '@shared/common/error'; import { ShareTokenInfoResponseMapper, ShareTokenResponseMapper } from '../mapper'; import { ShareTokenUC } from '../uc'; import { diff --git a/apps/server/src/modules/shd/api/shd.controller.ts b/apps/server/src/modules/shd/api/shd.controller.ts index d9ca202f3ee..756d28ac421 100644 --- a/apps/server/src/modules/shd/api/shd.controller.ts +++ b/apps/server/src/modules/shd/api/shd.controller.ts @@ -1,7 +1,7 @@ import { CurrentUser, ICurrentUser, JwtAuthentication } from '@infra/auth-guard'; import { Body, Controller, ForbiddenException, Post, UnauthorizedException } from '@nestjs/common'; import { ApiBody, ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { TargetUserIdParams } from './dtos/target-user-id.params'; import { ShdUc } from './shd.uc'; diff --git a/apps/server/src/modules/system/controller/dto/system.filter.params.ts b/apps/server/src/modules/system/controller/dto/system.filter.params.ts index 6cd966eb5bb..5896e0d6323 100644 --- a/apps/server/src/modules/system/controller/dto/system.filter.params.ts +++ b/apps/server/src/modules/system/controller/dto/system.filter.params.ts @@ -1,5 +1,5 @@ import { ApiPropertyOptional } from '@nestjs/swagger'; -import { SingleValueToArrayTransformer } from '@shared/controller'; +import { SingleValueToArrayTransformer } from '@shared/controller/transformer'; import { IsArray, IsEnum, IsOptional } from 'class-validator'; import { SystemType } from '../../domain'; diff --git a/apps/server/src/modules/task/controller/api-test/submission.api.spec.ts b/apps/server/src/modules/task/controller/api-test/submission.api.spec.ts index 0a070eccf1d..b975ab0a4cf 100644 --- a/apps/server/src/modules/task/controller/api-test/submission.api.spec.ts +++ b/apps/server/src/modules/task/controller/api-test/submission.api.spec.ts @@ -5,7 +5,7 @@ import { ServerTestModule } from '@modules/server/server.app.module'; import { SubmissionStatusListResponse } from '@modules/task/controller/dto/submission.response'; import { INestApplication } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { Submission } from '@shared/domain/entity'; import { cleanupCollections } from '@testing/cleanup-collections'; import { courseFactory } from '@testing/factory/course.factory'; diff --git a/apps/server/src/modules/task/controller/dto/task-create.params.ts b/apps/server/src/modules/task/controller/dto/task-create.params.ts index 97bd4af24cb..5761fa02604 100644 --- a/apps/server/src/modules/task/controller/dto/task-create.params.ts +++ b/apps/server/src/modules/task/controller/dto/task-create.params.ts @@ -1,5 +1,5 @@ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; -import { SanitizeHtml } from '@shared/controller'; +import { SanitizeHtml } from '@shared/controller/transformer'; import { InputFormat, TaskCreate } from '@shared/domain/types'; import { IsDate, IsMongoId, IsOptional, IsString } from 'class-validator'; diff --git a/apps/server/src/modules/task/controller/dto/task-update.params.ts b/apps/server/src/modules/task/controller/dto/task-update.params.ts index 2462ee0e616..5a6574d0cb7 100644 --- a/apps/server/src/modules/task/controller/dto/task-update.params.ts +++ b/apps/server/src/modules/task/controller/dto/task-update.params.ts @@ -1,5 +1,5 @@ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; -import { SanitizeHtml } from '@shared/controller'; +import { SanitizeHtml } from '@shared/controller/transformer'; import { InputFormat, TaskUpdate } from '@shared/domain/types'; import { IsDate, IsMongoId, IsOptional, IsString } from 'class-validator'; diff --git a/apps/server/src/modules/task/controller/dto/task.response.ts b/apps/server/src/modules/task/controller/dto/task.response.ts index fc635b1c0d4..61124a35471 100644 --- a/apps/server/src/modules/task/controller/dto/task.response.ts +++ b/apps/server/src/modules/task/controller/dto/task.response.ts @@ -1,5 +1,6 @@ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; -import { DecodeHtmlEntities, PaginationResponse } from '@shared/controller'; +import { PaginationResponse } from '@shared/controller/dto'; +import { DecodeHtmlEntities } from '@shared/controller/transformer'; import { RichText } from '@shared/domain/types'; import { TaskStatusResponse } from './task-status.response'; diff --git a/apps/server/src/modules/task/controller/task.controller.ts b/apps/server/src/modules/task/controller/task.controller.ts index a99a584db2c..63532bef430 100644 --- a/apps/server/src/modules/task/controller/task.controller.ts +++ b/apps/server/src/modules/task/controller/task.controller.ts @@ -2,8 +2,8 @@ import { CurrentUser, ICurrentUser, JwtAuthentication } from '@infra/auth-guard' import { CopyApiResponse, CopyMapper } from '@modules/copy-helper'; import { Body, Controller, Delete, Get, Param, Patch, Post, Query } from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; -import { RequestTimeout } from '@shared/common'; -import { PaginationParams } from '@shared/controller/'; +import { RequestTimeout } from '@shared/common/decorators'; +import { PaginationParams } from '@shared/controller/dto'; import { TaskMapper } from '../mapper'; import { TaskCopyUC } from '../uc/task-copy.uc'; import { TaskUC } from '../uc/task.uc'; diff --git a/apps/server/src/modules/task/service/submission.service.spec.ts b/apps/server/src/modules/task/service/submission.service.spec.ts index 67bd1a62a65..3f4b3eea647 100644 --- a/apps/server/src/modules/task/service/submission.service.spec.ts +++ b/apps/server/src/modules/task/service/submission.service.spec.ts @@ -1,3 +1,4 @@ +import { Logger } from '@core/logger'; import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { FileRecordParentType } from '@infra/rabbitmq'; import { MikroORM } from '@mikro-orm/core'; @@ -14,8 +15,7 @@ import { EventBus } from '@nestjs/cqrs'; import { Test, TestingModule } from '@nestjs/testing'; import { Submission } from '@shared/domain/entity'; import { Counted } from '@shared/domain/types'; -import { SubmissionRepo } from '@shared/repo'; -import { Logger } from '@core/logger'; +import { SubmissionRepo } from '@shared/repo/submission'; import { submissionFactory } from '@testing/factory/submission.factory'; import { taskFactory } from '@testing/factory/task.factory'; import { userFactory } from '@testing/factory/user.factory'; diff --git a/apps/server/src/modules/task/service/submission.service.ts b/apps/server/src/modules/task/service/submission.service.ts index 6b4078ba822..855f720ccbd 100644 --- a/apps/server/src/modules/task/service/submission.service.ts +++ b/apps/server/src/modules/task/service/submission.service.ts @@ -1,3 +1,4 @@ +import { Logger } from '@core/logger'; import { MikroORM, UseRequestContext } from '@mikro-orm/core'; import { DataDeletedEvent, @@ -17,8 +18,7 @@ import { Injectable } from '@nestjs/common'; import { EventBus, EventsHandler, IEventHandler } from '@nestjs/cqrs'; import { Submission } from '@shared/domain/entity'; import { Counted, EntityId } from '@shared/domain/types'; -import { SubmissionRepo } from '@shared/repo'; -import { Logger } from '@core/logger'; +import { SubmissionRepo } from '@shared/repo/submission'; @Injectable() @EventsHandler(UserDeletedEvent) diff --git a/apps/server/src/modules/task/service/task-copy.service.spec.ts b/apps/server/src/modules/task/service/task-copy.service.spec.ts index f45e4358989..9b07850ceca 100644 --- a/apps/server/src/modules/task/service/task-copy.service.spec.ts +++ b/apps/server/src/modules/task/service/task-copy.service.spec.ts @@ -3,7 +3,7 @@ import { CopyElementType, CopyHelperService, CopyStatusEnum } from '@modules/cop import { CopyFilesService } from '@modules/files-storage-client'; import { Test, TestingModule } from '@nestjs/testing'; import { Task } from '@shared/domain/entity'; -import { TaskRepo } from '@shared/repo'; +import { TaskRepo } from '@shared/repo/task'; import { courseFactory } from '@testing/factory/course.factory'; import { legacyFileEntityMockFactory } from '@testing/factory/legacy-file-entity-mock.factory'; import { lessonFactory } from '@testing/factory/lesson.factory'; diff --git a/apps/server/src/modules/task/service/task-copy.service.ts b/apps/server/src/modules/task/service/task-copy.service.ts index 95a5a83d08b..b3d7f04dd5f 100644 --- a/apps/server/src/modules/task/service/task-copy.service.ts +++ b/apps/server/src/modules/task/service/task-copy.service.ts @@ -3,7 +3,7 @@ import { CopyFilesService, FileUrlReplacement } from '@modules/files-storage-cli import { Injectable } from '@nestjs/common'; import { Course, LessonEntity, Task, User } from '@shared/domain/entity'; import { EntityId } from '@shared/domain/types'; -import { TaskRepo } from '@shared/repo'; +import { TaskRepo } from '@shared/repo/task'; type TaskCopyParams = { originalTaskId: EntityId; diff --git a/apps/server/src/modules/task/service/task.service.spec.ts b/apps/server/src/modules/task/service/task.service.spec.ts index 89912ba277e..672516f90a8 100644 --- a/apps/server/src/modules/task/service/task.service.spec.ts +++ b/apps/server/src/modules/task/service/task.service.spec.ts @@ -1,3 +1,4 @@ +import { Logger } from '@core/logger'; import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { MikroORM } from '@mikro-orm/core'; import { @@ -11,8 +12,7 @@ import { deletionRequestFactory } from '@modules/deletion/domain/testing'; import { FilesStorageClientAdapterService } from '@modules/files-storage-client'; import { EventBus } from '@nestjs/cqrs'; import { Test, TestingModule } from '@nestjs/testing'; -import { TaskRepo } from '@shared/repo'; -import { Logger } from '@core/logger'; +import { TaskRepo } from '@shared/repo/task'; import { courseFactory } from '@testing/factory/course.factory'; import { submissionFactory } from '@testing/factory/submission.factory'; import { taskFactory } from '@testing/factory/task.factory'; diff --git a/apps/server/src/modules/task/service/task.service.ts b/apps/server/src/modules/task/service/task.service.ts index 1a382604b61..a119a350174 100644 --- a/apps/server/src/modules/task/service/task.service.ts +++ b/apps/server/src/modules/task/service/task.service.ts @@ -1,3 +1,4 @@ +import { Logger } from '@core/logger'; import { MikroORM, UseRequestContext } from '@mikro-orm/core'; import { DataDeletedEvent, @@ -18,8 +19,7 @@ import { EventBus, EventsHandler, IEventHandler } from '@nestjs/cqrs'; import { Task } from '@shared/domain/entity'; import { IFindOptions } from '@shared/domain/interface'; import { Counted, EntityId } from '@shared/domain/types'; -import { TaskRepo } from '@shared/repo'; -import { Logger } from '@core/logger'; +import { TaskRepo } from '@shared/repo/task'; import { SubmissionService } from './submission.service'; @Injectable() diff --git a/apps/server/src/modules/task/task-api.module.ts b/apps/server/src/modules/task/task-api.module.ts index 6085e426f6c..d5f14782db0 100644 --- a/apps/server/src/modules/task/task-api.module.ts +++ b/apps/server/src/modules/task/task-api.module.ts @@ -1,8 +1,9 @@ import { AuthorizationModule } from '@modules/authorization'; import { CopyHelperModule } from '@modules/copy-helper/copy-helper.module'; -import { Module } from '@nestjs/common'; -import { CourseRepo, TaskRepo } from '@shared/repo'; import { LessonModule } from '@modules/lesson'; +import { Module } from '@nestjs/common'; +import { CourseRepo } from '@shared/repo/course'; +import { TaskRepo } from '@shared/repo/task'; import { SubmissionController, TaskController } from './controller'; import { TaskModule } from './task.module'; import { SubmissionUc, TaskCopyUC, TaskUC } from './uc'; diff --git a/apps/server/src/modules/task/task.module.ts b/apps/server/src/modules/task/task.module.ts index 17b108a9dfc..090062d0ca5 100644 --- a/apps/server/src/modules/task/task.module.ts +++ b/apps/server/src/modules/task/task.module.ts @@ -1,9 +1,11 @@ +import { LoggerModule } from '@core/logger'; import { CopyHelperModule } from '@modules/copy-helper'; import { FilesStorageClientModule } from '@modules/files-storage-client'; import { Module } from '@nestjs/common'; -import { CourseRepo, SubmissionRepo, TaskRepo } from '@shared/repo'; -import { LoggerModule } from '@core/logger'; import { CqrsModule } from '@nestjs/cqrs'; +import { CourseRepo } from '@shared/repo/course'; +import { SubmissionRepo } from '@shared/repo/submission'; +import { TaskRepo } from '@shared/repo/task'; import { SubmissionService, TaskCopyService, TaskService } from './service'; @Module({ diff --git a/apps/server/src/modules/task/uc/task-copy.uc.spec.ts b/apps/server/src/modules/task/uc/task-copy.uc.spec.ts index 2612e70a5fa..68ab59d995e 100644 --- a/apps/server/src/modules/task/uc/task-copy.uc.spec.ts +++ b/apps/server/src/modules/task/uc/task-copy.uc.spec.ts @@ -7,7 +7,9 @@ import { FilesStorageClientAdapterService } from '@modules/files-storage-client' import { LessonService } from '@modules/lesson'; import { ForbiddenException, InternalServerErrorException, NotFoundException } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; -import { CourseRepo, TaskRepo, UserRepo } from '@shared/repo'; +import { CourseRepo } from '@shared/repo/course'; +import { TaskRepo } from '@shared/repo/task'; +import { UserRepo } from '@shared/repo/user'; import { courseFactory } from '@testing/factory/course.factory'; import { lessonFactory } from '@testing/factory/lesson.factory'; import { taskFactory } from '@testing/factory/task.factory'; diff --git a/apps/server/src/modules/task/uc/task-copy.uc.ts b/apps/server/src/modules/task/uc/task-copy.uc.ts index 2df39034716..11e034327f2 100644 --- a/apps/server/src/modules/task/uc/task-copy.uc.ts +++ b/apps/server/src/modules/task/uc/task-copy.uc.ts @@ -5,7 +5,8 @@ import { LessonService } from '@modules/lesson'; import { ForbiddenException, Injectable, InternalServerErrorException, NotFoundException } from '@nestjs/common'; import { Course, LessonEntity, Task, User } from '@shared/domain/entity'; import { EntityId } from '@shared/domain/types'; -import { CourseRepo, TaskRepo } from '@shared/repo'; +import { CourseRepo } from '@shared/repo/course'; +import { TaskRepo } from '@shared/repo/task'; import { TaskCopyService } from '../service'; import { TaskCopyParentParams } from '../types'; diff --git a/apps/server/src/modules/task/uc/task.uc.spec.ts b/apps/server/src/modules/task/uc/task.uc.spec.ts index 28f8763b633..3f253fc1e33 100644 --- a/apps/server/src/modules/task/uc/task.uc.spec.ts +++ b/apps/server/src/modules/task/uc/task.uc.spec.ts @@ -3,11 +3,12 @@ import { Action, AuthorizationService } from '@modules/authorization'; import { LessonService } from '@modules/lesson'; import { ForbiddenException, UnauthorizedException } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; -import { PaginationParams } from '@shared/controller'; +import { PaginationParams } from '@shared/controller/dto'; import { Permission, SortOrder } from '@shared/domain/interface'; import { TaskStatus } from '@shared/domain/types'; -import { CourseRepo, TaskRepo } from '@shared/repo'; +import { CourseRepo } from '@shared/repo/course'; +import { TaskRepo } from '@shared/repo/task'; import { courseFactory } from '@testing/factory/course.factory'; import { lessonFactory } from '@testing/factory/lesson.factory'; import { roleFactory } from '@testing/factory/role.factory'; diff --git a/apps/server/src/modules/task/uc/task.uc.ts b/apps/server/src/modules/task/uc/task.uc.ts index 107e1015784..d1e68f2e009 100644 --- a/apps/server/src/modules/task/uc/task.uc.ts +++ b/apps/server/src/modules/task/uc/task.uc.ts @@ -4,7 +4,8 @@ import { Injectable, UnauthorizedException } from '@nestjs/common'; import { Course, LessonEntity, TaskWithStatusVo, User } from '@shared/domain/entity'; import { Pagination, Permission, SortOrder } from '@shared/domain/interface'; import { Counted, EntityId, TaskStatus } from '@shared/domain/types'; -import { CourseRepo, TaskRepo } from '@shared/repo'; +import { CourseRepo } from '@shared/repo/course'; +import { TaskRepo } from '@shared/repo/task'; import { TaskService } from '../service'; @Injectable() diff --git a/apps/server/src/modules/teams/service/team-authorisable.service.spec.ts b/apps/server/src/modules/teams/service/team-authorisable.service.spec.ts index f76f60302dc..fb3928c9877 100644 --- a/apps/server/src/modules/teams/service/team-authorisable.service.spec.ts +++ b/apps/server/src/modules/teams/service/team-authorisable.service.spec.ts @@ -1,7 +1,7 @@ import { DeepMocked, createMock } from '@golevelup/ts-jest'; import { AuthorizableReferenceType, AuthorizationInjectionService } from '@modules/authorization'; import { Test, TestingModule } from '@nestjs/testing'; -import { TeamsRepo } from '@shared/repo'; +import { TeamsRepo } from '@shared/repo/teams'; import { teamFactory } from '@testing/factory/team.factory'; import { setupEntities } from '@testing/setup-entities'; import { TeamAuthorisableService } from './team-authorisable.service'; diff --git a/apps/server/src/modules/teams/service/team-authorisable.service.ts b/apps/server/src/modules/teams/service/team-authorisable.service.ts index 05061d3f83c..a64a3f95ee2 100644 --- a/apps/server/src/modules/teams/service/team-authorisable.service.ts +++ b/apps/server/src/modules/teams/service/team-authorisable.service.ts @@ -5,7 +5,7 @@ import { } from '@modules/authorization'; import { Injectable } from '@nestjs/common'; import { TeamEntity } from '@shared/domain/entity'; -import { TeamsRepo } from '@shared/repo'; +import { TeamsRepo } from '@shared/repo/teams'; @Injectable() export class TeamAuthorisableService implements AuthorizationLoaderServiceGeneric { diff --git a/apps/server/src/modules/teams/service/team.service.spec.ts b/apps/server/src/modules/teams/service/team.service.spec.ts index f71eda91593..dc165a6a27f 100644 --- a/apps/server/src/modules/teams/service/team.service.spec.ts +++ b/apps/server/src/modules/teams/service/team.service.spec.ts @@ -1,3 +1,4 @@ +import { Logger } from '@core/logger'; import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { MikroORM } from '@mikro-orm/core'; import { @@ -10,8 +11,7 @@ import { import { deletionRequestFactory } from '@modules/deletion/domain/testing'; import { EventBus } from '@nestjs/cqrs/dist'; import { Test, TestingModule } from '@nestjs/testing'; -import { TeamsRepo } from '@shared/repo'; -import { Logger } from '@core/logger'; +import { TeamsRepo } from '@shared/repo/teams'; import { teamFactory } from '@testing/factory/team.factory'; import { teamUserFactory } from '@testing/factory/teamuser.factory'; import { setupEntities } from '@testing/setup-entities'; diff --git a/apps/server/src/modules/teams/service/team.service.ts b/apps/server/src/modules/teams/service/team.service.ts index dbdf378cf0b..6bb942f074a 100644 --- a/apps/server/src/modules/teams/service/team.service.ts +++ b/apps/server/src/modules/teams/service/team.service.ts @@ -1,3 +1,4 @@ +import { Logger } from '@core/logger'; import { MikroORM, UseRequestContext } from '@mikro-orm/core'; import { DataDeletedEvent, @@ -15,8 +16,7 @@ import { Injectable } from '@nestjs/common'; import { EventBus, EventsHandler, IEventHandler } from '@nestjs/cqrs'; import { TeamEntity } from '@shared/domain/entity'; import { EntityId } from '@shared/domain/types'; -import { TeamsRepo } from '@shared/repo'; -import { Logger } from '@core/logger'; +import { TeamsRepo } from '@shared/repo/teams'; @Injectable() @EventsHandler(UserDeletedEvent) diff --git a/apps/server/src/modules/teams/teams.module.ts b/apps/server/src/modules/teams/teams.module.ts index ebca484535f..ac4f972ea22 100644 --- a/apps/server/src/modules/teams/teams.module.ts +++ b/apps/server/src/modules/teams/teams.module.ts @@ -1,8 +1,8 @@ +import { LoggerModule } from '@core/logger'; import { AuthorizationModule } from '@modules/authorization'; import { Module } from '@nestjs/common'; import { CqrsModule } from '@nestjs/cqrs'; -import { TeamsRepo } from '@shared/repo'; -import { LoggerModule } from '@core/logger'; +import { TeamsRepo } from '@shared/repo/teams'; import { TeamAuthorisableService, TeamService } from './service'; @Module({ diff --git a/apps/server/src/modules/tool/common/common-tool.module.ts b/apps/server/src/modules/tool/common/common-tool.module.ts index 8137f7d9a59..f54f2c3f858 100644 --- a/apps/server/src/modules/tool/common/common-tool.module.ts +++ b/apps/server/src/modules/tool/common/common-tool.module.ts @@ -3,7 +3,9 @@ import { BoardModule } from '@modules/board'; import { SchoolModule } from '@modules/school'; import { forwardRef, Module } from '@nestjs/common'; import { CqrsModule } from '@nestjs/cqrs'; -import { ContextExternalToolRepo, ExternalToolRepo, SchoolExternalToolRepo } from '@shared/repo'; +import { ContextExternalToolRepo } from '@shared/repo/contextexternaltool'; +import { ExternalToolRepo } from '@shared/repo/externaltool'; +import { SchoolExternalToolRepo } from '@shared/repo/schoolexternaltool'; import { CommonToolDeleteService, CommonToolService, diff --git a/apps/server/src/modules/tool/common/domain/error/context-external-tool-name-already-exists.loggable-exception.ts b/apps/server/src/modules/tool/common/domain/error/context-external-tool-name-already-exists.loggable-exception.ts index e9acb1fbc6a..cb0713ccae3 100644 --- a/apps/server/src/modules/tool/common/domain/error/context-external-tool-name-already-exists.loggable-exception.ts +++ b/apps/server/src/modules/tool/common/domain/error/context-external-tool-name-already-exists.loggable-exception.ts @@ -1,6 +1,6 @@ -import { BusinessError } from '@shared/common'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; import { EntityId } from '@shared/domain/types'; export class ContextExternalToolNameAlreadyExistsLoggableException extends BusinessError implements Loggable { diff --git a/apps/server/src/modules/tool/common/domain/error/tool-parameter-duplicate.loggable-exception.ts b/apps/server/src/modules/tool/common/domain/error/tool-parameter-duplicate.loggable-exception.ts index f0c4aef9ce4..fce18778a82 100644 --- a/apps/server/src/modules/tool/common/domain/error/tool-parameter-duplicate.loggable-exception.ts +++ b/apps/server/src/modules/tool/common/domain/error/tool-parameter-duplicate.loggable-exception.ts @@ -1,6 +1,6 @@ -import { BusinessError } from '@shared/common'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; import { EntityId } from '@shared/domain/types'; export class ToolParameterDuplicateLoggableException extends BusinessError implements Loggable { diff --git a/apps/server/src/modules/tool/common/domain/error/tool-parameter-mandatory-value-missing-loggable.exception.ts b/apps/server/src/modules/tool/common/domain/error/tool-parameter-mandatory-value-missing-loggable.exception.ts index d17962ac47f..e69a9785ce1 100644 --- a/apps/server/src/modules/tool/common/domain/error/tool-parameter-mandatory-value-missing-loggable.exception.ts +++ b/apps/server/src/modules/tool/common/domain/error/tool-parameter-mandatory-value-missing-loggable.exception.ts @@ -1,7 +1,7 @@ import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; -import { BusinessError } from '@shared/common'; -import { EntityId } from '@shared/domain/types'; import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; +import { EntityId } from '@shared/domain/types'; import { CustomParameter } from '../custom-parameter.do'; export class ToolParameterMandatoryValueMissingLoggableException extends BusinessError implements Loggable { diff --git a/apps/server/src/modules/tool/common/domain/error/tool-parameter-optional-value-missing-loggable-exception.ts b/apps/server/src/modules/tool/common/domain/error/tool-parameter-optional-value-missing-loggable-exception.ts index 8a32c7d97ac..e1a92ee42fc 100644 --- a/apps/server/src/modules/tool/common/domain/error/tool-parameter-optional-value-missing-loggable-exception.ts +++ b/apps/server/src/modules/tool/common/domain/error/tool-parameter-optional-value-missing-loggable-exception.ts @@ -1,6 +1,6 @@ -import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; +import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; import { EntityId } from '@shared/domain/types'; import { CustomParameter } from '../custom-parameter.do'; diff --git a/apps/server/src/modules/tool/common/domain/error/tool-parameter-required.loggable-exception.ts b/apps/server/src/modules/tool/common/domain/error/tool-parameter-required.loggable-exception.ts index aafde0cadd2..524b66f0f5e 100644 --- a/apps/server/src/modules/tool/common/domain/error/tool-parameter-required.loggable-exception.ts +++ b/apps/server/src/modules/tool/common/domain/error/tool-parameter-required.loggable-exception.ts @@ -1,7 +1,7 @@ import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; import { EntityId } from '@shared/domain/types'; -import { BusinessError } from '@shared/common'; import { CustomParameter } from '../custom-parameter.do'; export class ToolParameterRequiredLoggableException extends BusinessError implements Loggable { diff --git a/apps/server/src/modules/tool/common/domain/error/tool-parameter-type-mismatch.loggable-exception.ts b/apps/server/src/modules/tool/common/domain/error/tool-parameter-type-mismatch.loggable-exception.ts index 284b896f1f5..7cd96642c4f 100644 --- a/apps/server/src/modules/tool/common/domain/error/tool-parameter-type-mismatch.loggable-exception.ts +++ b/apps/server/src/modules/tool/common/domain/error/tool-parameter-type-mismatch.loggable-exception.ts @@ -1,6 +1,6 @@ -import { BusinessError } from '@shared/common'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; import { EntityId } from '@shared/domain/types'; import { CustomParameter } from '../custom-parameter.do'; diff --git a/apps/server/src/modules/tool/common/domain/error/tool-parameter-unknown.loggable-exception.ts b/apps/server/src/modules/tool/common/domain/error/tool-parameter-unknown.loggable-exception.ts index f07b27cc202..30287522ee4 100644 --- a/apps/server/src/modules/tool/common/domain/error/tool-parameter-unknown.loggable-exception.ts +++ b/apps/server/src/modules/tool/common/domain/error/tool-parameter-unknown.loggable-exception.ts @@ -1,6 +1,6 @@ -import { BusinessError } from '@shared/common'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; import { EntityId } from '@shared/domain/types'; import { CustomParameterEntry } from '../custom-parameter-entry.do'; diff --git a/apps/server/src/modules/tool/common/domain/error/tool-parameter-value-regex.loggable-exception.ts b/apps/server/src/modules/tool/common/domain/error/tool-parameter-value-regex.loggable-exception.ts index b1b68a1bcdb..df752d3bd39 100644 --- a/apps/server/src/modules/tool/common/domain/error/tool-parameter-value-regex.loggable-exception.ts +++ b/apps/server/src/modules/tool/common/domain/error/tool-parameter-value-regex.loggable-exception.ts @@ -1,6 +1,6 @@ -import { BusinessError } from '@shared/common'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; import { EntityId } from '@shared/domain/types'; import { CustomParameter } from '../custom-parameter.do'; diff --git a/apps/server/src/modules/tool/common/service/common-tool-delete.service.spec.ts b/apps/server/src/modules/tool/common/service/common-tool-delete.service.spec.ts index ca8b4f6cd07..6fc3d2c962b 100644 --- a/apps/server/src/modules/tool/common/service/common-tool-delete.service.spec.ts +++ b/apps/server/src/modules/tool/common/service/common-tool-delete.service.spec.ts @@ -1,7 +1,9 @@ import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { EventBus } from '@nestjs/cqrs'; import { Test, TestingModule } from '@nestjs/testing'; -import { ContextExternalToolRepo, ExternalToolRepo, SchoolExternalToolRepo } from '@shared/repo'; +import { ContextExternalToolRepo } from '@shared/repo/contextexternaltool'; +import { ExternalToolRepo } from '@shared/repo/externaltool'; +import { SchoolExternalToolRepo } from '@shared/repo/schoolexternaltool'; import { ContextExternalToolDeletedEvent } from '../../context-external-tool/domain'; import { contextExternalToolFactory } from '../../context-external-tool/testing'; import { externalToolFactory } from '../../external-tool/testing'; diff --git a/apps/server/src/modules/tool/common/service/common-tool-delete.service.ts b/apps/server/src/modules/tool/common/service/common-tool-delete.service.ts index efaca8f9fc0..3ce5c4ba622 100644 --- a/apps/server/src/modules/tool/common/service/common-tool-delete.service.ts +++ b/apps/server/src/modules/tool/common/service/common-tool-delete.service.ts @@ -1,8 +1,10 @@ +import { ToolContextType } from '@modules/tool/common/enum'; import { Injectable } from '@nestjs/common'; import { EventBus } from '@nestjs/cqrs'; -import { ContextExternalToolRepo, ExternalToolRepo, SchoolExternalToolRepo } from '@shared/repo'; import { EntityId } from '@shared/domain/types'; -import { ToolContextType } from '@modules/tool/common/enum'; +import { ContextExternalToolRepo } from '@shared/repo/contextexternaltool'; +import { ExternalToolRepo } from '@shared/repo/externaltool'; +import { SchoolExternalToolRepo } from '@shared/repo/schoolexternaltool'; import { ContextExternalTool, ContextExternalToolDeletedEvent } from '../../context-external-tool/domain'; import type { ExternalTool } from '../../external-tool/domain'; import type { SchoolExternalTool } from '../../school-external-tool/domain'; diff --git a/apps/server/src/modules/tool/common/service/common-tool-metadata.service.spec.ts b/apps/server/src/modules/tool/common/service/common-tool-metadata.service.spec.ts index ed0fedbf61c..91a0d6ec235 100644 --- a/apps/server/src/modules/tool/common/service/common-tool-metadata.service.spec.ts +++ b/apps/server/src/modules/tool/common/service/common-tool-metadata.service.spec.ts @@ -2,7 +2,8 @@ import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { ObjectId } from '@mikro-orm/mongodb'; import { BoardCommonToolService } from '@modules/board'; import { Test, TestingModule } from '@nestjs/testing'; -import { ContextExternalToolRepo, SchoolExternalToolRepo } from '@shared/repo'; +import { ContextExternalToolRepo } from '@shared/repo/contextexternaltool'; +import { SchoolExternalToolRepo } from '@shared/repo/schoolexternaltool'; import { ContextExternalTool } from '../../context-external-tool/domain'; import { contextExternalToolFactory } from '../../context-external-tool/testing'; import { ExternalToolMetadata } from '../../external-tool/domain'; diff --git a/apps/server/src/modules/tool/common/service/common-tool-metadata.service.ts b/apps/server/src/modules/tool/common/service/common-tool-metadata.service.ts index 62c2d79307a..e963a72d75b 100644 --- a/apps/server/src/modules/tool/common/service/common-tool-metadata.service.ts +++ b/apps/server/src/modules/tool/common/service/common-tool-metadata.service.ts @@ -1,7 +1,8 @@ import { BoardCommonToolService } from '@modules/board'; import { forwardRef, Inject, Injectable } from '@nestjs/common'; import { EntityId } from '@shared/domain/types'; -import { ContextExternalToolRepo, SchoolExternalToolRepo } from '@shared/repo'; +import { ContextExternalToolRepo } from '@shared/repo/contextexternaltool'; +import { SchoolExternalToolRepo } from '@shared/repo/schoolexternaltool'; import { ContextExternalTool } from '../../context-external-tool/domain'; import { ContextExternalToolType } from '../../context-external-tool/entity'; import { ExternalToolMetadata } from '../../external-tool/domain'; diff --git a/apps/server/src/modules/tool/common/service/validation/common-tool-validation.service.spec.ts b/apps/server/src/modules/tool/common/service/validation/common-tool-validation.service.spec.ts index 6b7c73fd042..648ab0bc626 100644 --- a/apps/server/src/modules/tool/common/service/validation/common-tool-validation.service.spec.ts +++ b/apps/server/src/modules/tool/common/service/validation/common-tool-validation.service.spec.ts @@ -1,5 +1,5 @@ import { Test, TestingModule } from '@nestjs/testing'; -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { contextExternalToolFactory } from '../../../context-external-tool/testing'; import { customParameterFactory, externalToolFactory } from '../../../external-tool/testing'; import { schoolExternalToolFactory } from '../../../school-external-tool/testing'; diff --git a/apps/server/src/modules/tool/common/service/validation/common-tool-validation.service.ts b/apps/server/src/modules/tool/common/service/validation/common-tool-validation.service.ts index 4f875faefe0..e0794212758 100644 --- a/apps/server/src/modules/tool/common/service/validation/common-tool-validation.service.ts +++ b/apps/server/src/modules/tool/common/service/validation/common-tool-validation.service.ts @@ -1,5 +1,5 @@ import { Injectable } from '@nestjs/common'; -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { ContextExternalTool, ContextExternalToolLaunchable } from '../../../context-external-tool/domain'; import { ExternalTool } from '../../../external-tool/domain'; import { SchoolExternalTool } from '../../../school-external-tool/domain'; diff --git a/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-duplicate-key-validator.spec.ts b/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-duplicate-key-validator.spec.ts index d98c2c74b51..a8bcd1c7724 100644 --- a/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-duplicate-key-validator.spec.ts +++ b/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-duplicate-key-validator.spec.ts @@ -1,4 +1,4 @@ -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { CustomParameterEntry, ToolParameterDuplicateLoggableException } from '../../../domain'; import { ParameterArrayDuplicateKeyValidator } from './parameter-array-duplicate-key-validator'; diff --git a/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-duplicate-key-validator.ts b/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-duplicate-key-validator.ts index ab8a0f8250e..08b0a9fc084 100644 --- a/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-duplicate-key-validator.ts +++ b/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-duplicate-key-validator.ts @@ -1,4 +1,4 @@ -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { EntityId } from '@shared/domain/types'; import { CustomParameter, CustomParameterEntry, ToolParameterDuplicateLoggableException } from '../../../domain'; import { ParameterArrayValidator } from './parameter-array-validator'; diff --git a/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-entry-validator.spec.ts b/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-entry-validator.spec.ts index b764f1ed541..1e1c7fab3c7 100644 --- a/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-entry-validator.spec.ts +++ b/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-entry-validator.spec.ts @@ -1,4 +1,4 @@ -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { customParameterFactory } from '../../../../external-tool/testing'; import { CustomParameter, diff --git a/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-entry-validator.ts b/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-entry-validator.ts index f672f359e47..2e67cf68985 100644 --- a/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-entry-validator.ts +++ b/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-entry-validator.ts @@ -1,4 +1,4 @@ -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { EntityId } from '@shared/domain/types'; import { CustomParameter, CustomParameterEntry, ToolParameterRequiredLoggableException } from '../../../domain'; import { ParameterArrayValidator } from './parameter-array-validator'; diff --git a/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-unknown-key-validator.spec.ts b/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-unknown-key-validator.spec.ts index 4b096e781a5..9ea5718b8b1 100644 --- a/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-unknown-key-validator.spec.ts +++ b/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-unknown-key-validator.spec.ts @@ -1,4 +1,4 @@ -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { customParameterFactory } from '../../../../external-tool/testing'; import { CustomParameter, CustomParameterEntry, ToolParameterUnknownLoggableException } from '../../../domain'; import { ParameterArrayUnknownKeyValidator } from './parameter-array-unknown-key-validator'; diff --git a/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-unknown-key-validator.ts b/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-unknown-key-validator.ts index 314e5b9ec2c..01ae34426c2 100644 --- a/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-unknown-key-validator.ts +++ b/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-unknown-key-validator.ts @@ -1,4 +1,4 @@ -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { EntityId } from '@shared/domain/types'; import { CustomParameter, CustomParameterEntry, ToolParameterUnknownLoggableException } from '../../../domain'; import { ParameterArrayValidator } from './parameter-array-validator'; diff --git a/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-validator.ts b/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-validator.ts index b3407545e29..f10bf004845 100644 --- a/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-validator.ts +++ b/apps/server/src/modules/tool/common/service/validation/rules/parameter-array-validator.ts @@ -1,4 +1,4 @@ -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { EntityId } from '@shared/domain/types'; import { CustomParameter, CustomParameterEntry } from '../../../domain'; diff --git a/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-regex-validator.spec.ts b/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-regex-validator.spec.ts index c8b99c99345..6c16eb702f3 100644 --- a/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-regex-validator.spec.ts +++ b/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-regex-validator.spec.ts @@ -1,4 +1,4 @@ -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { customParameterFactory } from '../../../../external-tool/testing'; import { CustomParameter, CustomParameterEntry, ToolParameterValueRegexLoggableException } from '../../../domain'; import { ParameterEntryRegexValidator } from './parameter-entry-regex-validator'; diff --git a/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-regex-validator.ts b/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-regex-validator.ts index a50d69a426e..b5a01415145 100644 --- a/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-regex-validator.ts +++ b/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-regex-validator.ts @@ -1,4 +1,4 @@ -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { EntityId } from '@shared/domain/types'; import { CustomParameter, CustomParameterEntry, ToolParameterValueRegexLoggableException } from '../../../domain'; import { ParameterEntryValidator } from './parameter-entry-validator'; diff --git a/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-type-validator.spec.ts b/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-type-validator.spec.ts index 0b949df28fa..6d09af8dba1 100644 --- a/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-type-validator.spec.ts +++ b/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-type-validator.spec.ts @@ -1,4 +1,4 @@ -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { customParameterFactory } from '../../../../external-tool/testing'; import { CustomParameter, CustomParameterEntry, ToolParameterTypeMismatchLoggableException } from '../../../domain'; import { CustomParameterType } from '../../../enum'; diff --git a/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-type-validator.ts b/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-type-validator.ts index f2405eb3506..62bd65c1930 100644 --- a/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-type-validator.ts +++ b/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-type-validator.ts @@ -1,4 +1,4 @@ -import { BusinessError } from '@shared/common'; +import { BusinessError } from '@shared/common/error'; import { EntityId } from '@shared/domain/types'; import { CustomParameter, CustomParameterEntry, ToolParameterTypeMismatchLoggableException } from '../../../domain'; import { ToolParameterTypeValidationUtil } from '../tool-parameter-type-validation.util'; diff --git a/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-validator.ts b/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-validator.ts index 1e30ba32fe6..4306e981f0d 100644 --- a/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-validator.ts +++ b/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-validator.ts @@ -1,4 +1,4 @@ -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { EntityId } from '@shared/domain/types'; import { CustomParameter, CustomParameterEntry } from '../../../domain'; diff --git a/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-value-validator.spec.ts b/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-value-validator.spec.ts index 63dffd305d8..885979d5744 100644 --- a/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-value-validator.spec.ts +++ b/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-value-validator.spec.ts @@ -1,4 +1,4 @@ -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { customParameterFactory } from '../../../../external-tool/testing'; import { CustomParameter, diff --git a/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-value-validator.ts b/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-value-validator.ts index 191367d7c8f..7a2495d9f29 100644 --- a/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-value-validator.ts +++ b/apps/server/src/modules/tool/common/service/validation/rules/parameter-entry-value-validator.ts @@ -1,4 +1,4 @@ -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { EntityId } from '@shared/domain/types'; import { CustomParameter, diff --git a/apps/server/src/modules/tool/context-external-tool/controller/dto/lti11-deep-link/lti11-deep-link-content-item.params.ts b/apps/server/src/modules/tool/context-external-tool/controller/dto/lti11-deep-link/lti11-deep-link-content-item.params.ts index 402eb2f376c..fc296304396 100644 --- a/apps/server/src/modules/tool/context-external-tool/controller/dto/lti11-deep-link/lti11-deep-link-content-item.params.ts +++ b/apps/server/src/modules/tool/context-external-tool/controller/dto/lti11-deep-link/lti11-deep-link-content-item.params.ts @@ -1,5 +1,5 @@ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; -import { ValidateRecord } from '@shared/controller'; +import { ValidateRecord } from '@shared/controller/validator'; import { Type } from 'class-transformer'; import { IsEnum, IsObject, IsOptional, isString, IsString, ValidateNested } from 'class-validator'; import { Lti11ContentItemType } from './lti11-content-item-type'; diff --git a/apps/server/src/modules/tool/context-external-tool/controller/dto/lti11-deep-link/lti11-deep-link.params.ts b/apps/server/src/modules/tool/context-external-tool/controller/dto/lti11-deep-link/lti11-deep-link.params.ts index 047e44d91b5..4c238f8800e 100644 --- a/apps/server/src/modules/tool/context-external-tool/controller/dto/lti11-deep-link/lti11-deep-link.params.ts +++ b/apps/server/src/modules/tool/context-external-tool/controller/dto/lti11-deep-link/lti11-deep-link.params.ts @@ -1,5 +1,5 @@ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; -import { StringToObject } from '@shared/controller'; +import { StringToObject } from '@shared/controller/transformer'; import { Type } from 'class-transformer'; import { Equals, IsNumber, IsObject, IsOptional, IsString, ValidateNested } from 'class-validator'; import { Lti11DeepLinkContentItemListParams } from './lti11-deep-link-content-item-list.params'; diff --git a/apps/server/src/modules/tool/context-external-tool/controller/tool-context.controller.ts b/apps/server/src/modules/tool/context-external-tool/controller/tool-context.controller.ts index 3dd29938984..6dc716e8765 100644 --- a/apps/server/src/modules/tool/context-external-tool/controller/tool-context.controller.ts +++ b/apps/server/src/modules/tool/context-external-tool/controller/tool-context.controller.ts @@ -1,3 +1,4 @@ +import { LegacyLogger } from '@core/logger'; import { CurrentUser, ICurrentUser, JwtAuthentication } from '@infra/auth-guard'; import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Post, Put } from '@nestjs/common'; import { @@ -11,8 +12,7 @@ import { ApiUnauthorizedResponse, ApiUnprocessableEntityResponse, } from '@nestjs/swagger'; -import { ValidationError } from '@shared/common'; -import { LegacyLogger } from '@core/logger'; +import { ValidationError } from '@shared/common/error'; import { ContextExternalTool } from '../domain'; import { ContextExternalToolRequestMapper, ContextExternalToolResponseMapper } from '../mapper'; import { ContextExternalToolUc } from '../uc'; diff --git a/apps/server/src/modules/tool/context-external-tool/service/context-external-tool-authorizable.service.spec.ts b/apps/server/src/modules/tool/context-external-tool/service/context-external-tool-authorizable.service.spec.ts index 204676bce6d..7e47ae1619c 100644 --- a/apps/server/src/modules/tool/context-external-tool/service/context-external-tool-authorizable.service.spec.ts +++ b/apps/server/src/modules/tool/context-external-tool/service/context-external-tool-authorizable.service.spec.ts @@ -1,7 +1,7 @@ import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { AuthorizableReferenceType, AuthorizationInjectionService } from '@modules/authorization'; import { Test, TestingModule } from '@nestjs/testing'; -import { ContextExternalToolRepo } from '@shared/repo'; +import { ContextExternalToolRepo } from '@shared/repo/contextexternaltool'; import { legacySchoolDoFactory } from '@testing/factory/domainobject'; import { SchoolExternalTool } from '../../school-external-tool/domain'; import { schoolExternalToolFactory } from '../../school-external-tool/testing'; diff --git a/apps/server/src/modules/tool/context-external-tool/service/context-external-tool-authorizable.service.ts b/apps/server/src/modules/tool/context-external-tool/service/context-external-tool-authorizable.service.ts index c68cf09b082..cedbd8dccde 100644 --- a/apps/server/src/modules/tool/context-external-tool/service/context-external-tool-authorizable.service.ts +++ b/apps/server/src/modules/tool/context-external-tool/service/context-external-tool-authorizable.service.ts @@ -5,7 +5,7 @@ import { } from '@modules/authorization'; import { Injectable } from '@nestjs/common'; import { EntityId } from '@shared/domain/types'; -import { ContextExternalToolRepo } from '@shared/repo'; +import { ContextExternalToolRepo } from '@shared/repo/contextexternaltool'; import { ContextExternalTool } from '../domain'; @Injectable() diff --git a/apps/server/src/modules/tool/context-external-tool/service/context-external-tool-validation.service.spec.ts b/apps/server/src/modules/tool/context-external-tool/service/context-external-tool-validation.service.spec.ts index a73bfe44a20..b412551b063 100644 --- a/apps/server/src/modules/tool/context-external-tool/service/context-external-tool-validation.service.spec.ts +++ b/apps/server/src/modules/tool/context-external-tool/service/context-external-tool-validation.service.spec.ts @@ -1,6 +1,6 @@ import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { Test, TestingModule } from '@nestjs/testing'; -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { CommonToolValidationService } from '../../common/service'; import { ExternalToolService } from '../../external-tool/service'; import { externalToolFactory } from '../../external-tool/testing'; diff --git a/apps/server/src/modules/tool/context-external-tool/service/context-external-tool-validation.service.ts b/apps/server/src/modules/tool/context-external-tool/service/context-external-tool-validation.service.ts index f83c6d2c597..5d57cec63cf 100644 --- a/apps/server/src/modules/tool/context-external-tool/service/context-external-tool-validation.service.ts +++ b/apps/server/src/modules/tool/context-external-tool/service/context-external-tool-validation.service.ts @@ -1,5 +1,5 @@ import { Injectable } from '@nestjs/common'; -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { CommonToolValidationService } from '../../common/service'; import { ExternalTool } from '../../external-tool/domain'; import { ExternalToolService } from '../../external-tool/service'; diff --git a/apps/server/src/modules/tool/context-external-tool/service/context-external-tool.service.spec.ts b/apps/server/src/modules/tool/context-external-tool/service/context-external-tool.service.spec.ts index 47de4faad84..ee945cfe84b 100644 --- a/apps/server/src/modules/tool/context-external-tool/service/context-external-tool.service.spec.ts +++ b/apps/server/src/modules/tool/context-external-tool/service/context-external-tool.service.spec.ts @@ -6,7 +6,7 @@ import { schoolFactory } from '@modules/school/testing'; import { NotFoundException } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; import { Permission } from '@shared/domain/interface'; -import { ContextExternalToolRepo } from '@shared/repo'; +import { ContextExternalToolRepo } from '@shared/repo/contextexternaltool'; import { legacySchoolDoFactory } from '@testing/factory/domainobject'; import { CustomParameter } from '../../common/domain'; import { ToolContextType } from '../../common/enum'; diff --git a/apps/server/src/modules/tool/context-external-tool/service/tool-configuration-status.service.spec.ts b/apps/server/src/modules/tool/context-external-tool/service/tool-configuration-status.service.spec.ts index 587d9731b6f..304b4bcb280 100644 --- a/apps/server/src/modules/tool/context-external-tool/service/tool-configuration-status.service.spec.ts +++ b/apps/server/src/modules/tool/context-external-tool/service/tool-configuration-status.service.spec.ts @@ -4,7 +4,7 @@ import { MediaBoardConfig } from '@modules/board/media-board.config'; import { MediaUserLicense, mediaUserLicenseFactory, MediaUserLicenseService } from '@modules/user-license'; import { ConfigService } from '@nestjs/config'; import { Test, TestingModule } from '@nestjs/testing'; -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { ContextExternalToolConfigurationStatus, ToolParameterDuplicateLoggableException, diff --git a/apps/server/src/modules/tool/context-external-tool/service/tool-configuration-status.service.ts b/apps/server/src/modules/tool/context-external-tool/service/tool-configuration-status.service.ts index e1387d59dc5..0b7f188427d 100644 --- a/apps/server/src/modules/tool/context-external-tool/service/tool-configuration-status.service.ts +++ b/apps/server/src/modules/tool/context-external-tool/service/tool-configuration-status.service.ts @@ -2,7 +2,7 @@ import { MediaBoardConfig } from '@modules/board/media-board.config'; import { MediaUserLicense, MediaUserLicenseService } from '@modules/user-license'; import { Injectable } from '@nestjs/common/decorators/core/injectable.decorator'; import { ConfigService } from '@nestjs/config'; -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { EntityId } from '@shared/domain/types'; import { ContextExternalToolConfigurationStatus, diff --git a/apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-sort.params.ts b/apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-sort.params.ts index 26b91afdbbe..cfac2b6b83c 100644 --- a/apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-sort.params.ts +++ b/apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-sort.params.ts @@ -1,6 +1,6 @@ -import { SortingParams } from '@shared/controller'; -import { IsEnum, IsOptional } from 'class-validator'; import { ApiPropertyOptional } from '@nestjs/swagger'; +import { SortingParams } from '@shared/controller/dto'; +import { IsEnum, IsOptional } from 'class-validator'; export enum ExternalToolSortBy { ID = 'id', diff --git a/apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool-search-list.response.ts b/apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool-search-list.response.ts index 39d562b8d37..4b2da6a665b 100644 --- a/apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool-search-list.response.ts +++ b/apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool-search-list.response.ts @@ -1,5 +1,5 @@ -import { PaginationResponse } from '@shared/controller'; import { ApiProperty } from '@nestjs/swagger'; +import { PaginationResponse } from '@shared/controller/dto'; import { ExternalToolResponse } from './external-tool.response'; export class ExternalToolSearchListResponse extends PaginationResponse { diff --git a/apps/server/src/modules/tool/external-tool/controller/tool.controller.ts b/apps/server/src/modules/tool/external-tool/controller/tool.controller.ts index 8c4215dd666..bc8734daa06 100644 --- a/apps/server/src/modules/tool/external-tool/controller/tool.controller.ts +++ b/apps/server/src/modules/tool/external-tool/controller/tool.controller.ts @@ -25,8 +25,8 @@ import { ApiUnauthorizedResponse, ApiUnprocessableEntityResponse, } from '@nestjs/swagger'; -import { ValidationError } from '@shared/common'; -import { PaginationParams } from '@shared/controller'; +import { ValidationError } from '@shared/common/error'; +import { PaginationParams } from '@shared/controller/dto'; import { Page } from '@shared/domain/domainobject'; import { IFindOptions } from '@shared/domain/interface'; import { LegacyLogger } from '@core/logger'; diff --git a/apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-fetch-failed-loggable-exception.ts b/apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-fetch-failed-loggable-exception.ts index c26a1d1fc58..4d6942f4ba8 100644 --- a/apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-fetch-failed-loggable-exception.ts +++ b/apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-fetch-failed-loggable-exception.ts @@ -1,6 +1,6 @@ -import { HttpStatus } from '@nestjs/common'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; -import { BusinessError } from '@shared/common'; +import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; export class ExternalToolLogoFetchFailedLoggableException extends BusinessError implements Loggable { constructor(private readonly logoUrl: string, private readonly httpStatus?: HttpStatus) { diff --git a/apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-size-exceeded-loggable-exception.ts b/apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-size-exceeded-loggable-exception.ts index ba1be587d79..d1976eed003 100644 --- a/apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-size-exceeded-loggable-exception.ts +++ b/apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-size-exceeded-loggable-exception.ts @@ -1,6 +1,6 @@ -import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; +import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; export class ExternalToolLogoSizeExceededLoggableException extends BusinessError implements Loggable { constructor( diff --git a/apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-wrong-file-type-loggable-exception.ts b/apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-wrong-file-type-loggable-exception.ts index 1431caec1a5..6d34a994cc1 100644 --- a/apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-wrong-file-type-loggable-exception.ts +++ b/apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-wrong-file-type-loggable-exception.ts @@ -1,6 +1,6 @@ -import { BusinessError } from '@shared/common'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; export class ExternalToolLogoWrongFileTypeLoggableException extends BusinessError implements Loggable { constructor() { diff --git a/apps/server/src/modules/tool/external-tool/service/external-tool-authorizable.service.spec.ts b/apps/server/src/modules/tool/external-tool/service/external-tool-authorizable.service.spec.ts index 4a43a0c7ca5..6ae37c7c5c1 100644 --- a/apps/server/src/modules/tool/external-tool/service/external-tool-authorizable.service.spec.ts +++ b/apps/server/src/modules/tool/external-tool/service/external-tool-authorizable.service.spec.ts @@ -1,7 +1,7 @@ import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { AuthorizableReferenceType, AuthorizationInjectionService } from '@modules/authorization'; import { Test, TestingModule } from '@nestjs/testing'; -import { ExternalToolRepo } from '@shared/repo'; +import { ExternalToolRepo } from '@shared/repo/externaltool'; import { externalToolFactory } from '../testing'; import { ExternalToolAuthorizableService } from './external-tool-authorizable.service'; diff --git a/apps/server/src/modules/tool/external-tool/service/external-tool-authorizable.service.ts b/apps/server/src/modules/tool/external-tool/service/external-tool-authorizable.service.ts index fb092f43e93..778ea7b9f2d 100644 --- a/apps/server/src/modules/tool/external-tool/service/external-tool-authorizable.service.ts +++ b/apps/server/src/modules/tool/external-tool/service/external-tool-authorizable.service.ts @@ -5,7 +5,7 @@ import { } from '@modules/authorization'; import { Injectable } from '@nestjs/common'; import { EntityId } from '@shared/domain/types'; -import { ExternalToolRepo } from '@shared/repo'; +import { ExternalToolRepo } from '@shared/repo/externaltool'; import { ExternalTool } from '../domain'; @Injectable() diff --git a/apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.spec.ts b/apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.spec.ts index a5f6c50f4cd..689e44221c9 100644 --- a/apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.spec.ts +++ b/apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.spec.ts @@ -1,6 +1,6 @@ import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { Test, TestingModule } from '@nestjs/testing'; -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { CustomParameter } from '../../common/domain'; import { CustomParameterScope, CustomParameterType } from '../../common/enum'; import { CommonToolValidationService } from '../../common/service'; diff --git a/apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts b/apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts index b7ed1709209..9de764766bc 100644 --- a/apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts +++ b/apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts @@ -1,5 +1,5 @@ import { Injectable } from '@nestjs/common'; -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { CustomParameter } from '../../common/domain'; import { autoParameters, CustomParameterScope, CustomParameterType } from '../../common/enum'; import { ToolParameterTypeValidationUtil } from '../../common/service'; diff --git a/apps/server/src/modules/tool/external-tool/service/external-tool-validation.service.spec.ts b/apps/server/src/modules/tool/external-tool/service/external-tool-validation.service.spec.ts index 6ada828de21..d10e43a8074 100644 --- a/apps/server/src/modules/tool/external-tool/service/external-tool-validation.service.spec.ts +++ b/apps/server/src/modules/tool/external-tool/service/external-tool-validation.service.spec.ts @@ -1,7 +1,7 @@ import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { ConfigService } from '@nestjs/config'; import { Test, TestingModule } from '@nestjs/testing'; -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { Page } from '@shared/domain/domainobject'; import { ToolConfig } from '../../tool-config'; import { ExternalTool } from '../domain'; diff --git a/apps/server/src/modules/tool/external-tool/service/external-tool-validation.service.ts b/apps/server/src/modules/tool/external-tool/service/external-tool-validation.service.ts index 281f551873a..f2d26a9dd19 100644 --- a/apps/server/src/modules/tool/external-tool/service/external-tool-validation.service.ts +++ b/apps/server/src/modules/tool/external-tool/service/external-tool-validation.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { Page } from '@shared/domain/domainobject'; import { ToolConfig } from '../../tool-config'; import { ExternalTool } from '../domain'; diff --git a/apps/server/src/modules/tool/external-tool/service/external-tool.service.spec.ts b/apps/server/src/modules/tool/external-tool/service/external-tool.service.spec.ts index 94cfd0f2007..a7c3e508478 100644 --- a/apps/server/src/modules/tool/external-tool/service/external-tool.service.spec.ts +++ b/apps/server/src/modules/tool/external-tool/service/external-tool.service.spec.ts @@ -1,11 +1,11 @@ +import { LegacyLogger } from '@core/logger'; import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { ProviderOauthClient } from '@modules/oauth-provider/domain'; import { UnprocessableEntityException } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; import { Page } from '@shared/domain/domainobject'; import { IFindOptions, SortOrder } from '@shared/domain/interface'; -import { ExternalToolRepo } from '@shared/repo'; -import { LegacyLogger } from '@core/logger'; +import { ExternalToolRepo } from '@shared/repo/externaltool'; import { OauthProviderService } from '../../../oauth-provider/domain/service/oauth-provider.service'; import { providerOauthClientFactory } from '../../../oauth-provider/testing'; import { ExternalToolSearchQuery } from '../../common/interface'; diff --git a/apps/server/src/modules/tool/school-external-tool/controller/tool-school.controller.ts b/apps/server/src/modules/tool/school-external-tool/controller/tool-school.controller.ts index 36cbe40cf6b..5af04a587f2 100644 --- a/apps/server/src/modules/tool/school-external-tool/controller/tool-school.controller.ts +++ b/apps/server/src/modules/tool/school-external-tool/controller/tool-school.controller.ts @@ -1,3 +1,4 @@ +import { LegacyLogger } from '@core/logger'; import { CurrentUser, ICurrentUser, JwtAuthentication } from '@infra/auth-guard'; import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Post, Put, Query } from '@nestjs/common'; import { @@ -12,8 +13,7 @@ import { ApiUnauthorizedResponse, ApiUnprocessableEntityResponse, } from '@nestjs/swagger'; -import { ValidationError } from '@shared/common'; -import { LegacyLogger } from '@core/logger'; +import { ValidationError } from '@shared/common/error'; import { ExternalToolSearchListResponse } from '../../external-tool/controller/dto'; import { SchoolExternalTool, SchoolExternalToolMetadata, SchoolExternalToolProps } from '../domain'; import { diff --git a/apps/server/src/modules/tool/school-external-tool/service/school-external-tool-authorizable.service.ts b/apps/server/src/modules/tool/school-external-tool/service/school-external-tool-authorizable.service.ts index 39de9ffa293..e40163cce54 100644 --- a/apps/server/src/modules/tool/school-external-tool/service/school-external-tool-authorizable.service.ts +++ b/apps/server/src/modules/tool/school-external-tool/service/school-external-tool-authorizable.service.ts @@ -5,7 +5,7 @@ import { } from '@modules/authorization'; import { Injectable } from '@nestjs/common'; import { EntityId } from '@shared/domain/types'; -import { SchoolExternalToolRepo } from '@shared/repo'; +import { SchoolExternalToolRepo } from '@shared/repo/schoolexternaltool'; import { SchoolExternalTool } from '../domain'; @Injectable() diff --git a/apps/server/src/modules/tool/school-external-tool/service/school-external-tool-authorization.service.spec.ts b/apps/server/src/modules/tool/school-external-tool/service/school-external-tool-authorization.service.spec.ts index 6909d37ec72..f9aee7ab5dd 100644 --- a/apps/server/src/modules/tool/school-external-tool/service/school-external-tool-authorization.service.spec.ts +++ b/apps/server/src/modules/tool/school-external-tool/service/school-external-tool-authorization.service.spec.ts @@ -1,7 +1,7 @@ import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { AuthorizableReferenceType, AuthorizationInjectionService } from '@modules/authorization'; import { Test, TestingModule } from '@nestjs/testing'; -import { SchoolExternalToolRepo } from '@shared/repo'; +import { SchoolExternalToolRepo } from '@shared/repo/schoolexternaltool'; import { legacySchoolDoFactory } from '@testing/factory/domainobject'; import { SchoolExternalTool } from '../domain'; import { schoolExternalToolFactory } from '../testing'; diff --git a/apps/server/src/modules/tool/school-external-tool/service/school-external-tool-validation.service.spec.ts b/apps/server/src/modules/tool/school-external-tool/service/school-external-tool-validation.service.spec.ts index 40c24eff88e..ec75435199a 100644 --- a/apps/server/src/modules/tool/school-external-tool/service/school-external-tool-validation.service.spec.ts +++ b/apps/server/src/modules/tool/school-external-tool/service/school-external-tool-validation.service.spec.ts @@ -1,6 +1,6 @@ import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { Test, TestingModule } from '@nestjs/testing'; -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { CommonToolValidationService } from '../../common/service'; import { ExternalTool } from '../../external-tool/domain'; import { ExternalToolService } from '../../external-tool/service'; diff --git a/apps/server/src/modules/tool/school-external-tool/service/school-external-tool-validation.service.ts b/apps/server/src/modules/tool/school-external-tool/service/school-external-tool-validation.service.ts index ffa5a9f019c..3aa20b5ed6f 100644 --- a/apps/server/src/modules/tool/school-external-tool/service/school-external-tool-validation.service.ts +++ b/apps/server/src/modules/tool/school-external-tool/service/school-external-tool-validation.service.ts @@ -1,5 +1,5 @@ import { Injectable } from '@nestjs/common'; -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { CommonToolValidationService } from '../../common/service'; import { ExternalTool } from '../../external-tool/domain'; import { ExternalToolService } from '../../external-tool/service'; diff --git a/apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.spec.ts b/apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.spec.ts index fe91b251c53..49e627a9b5d 100644 --- a/apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.spec.ts +++ b/apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.spec.ts @@ -1,8 +1,8 @@ import { createMock, DeepMocked } from '@golevelup/ts-jest'; -import { Test, TestingModule } from '@nestjs/testing'; -import { ValidationError } from '@shared/common'; -import { SchoolExternalToolRepo } from '@shared/repo'; import { ToolContextType } from '@modules/tool/common/enum'; +import { Test, TestingModule } from '@nestjs/testing'; +import { ValidationError } from '@shared/common/error'; +import { SchoolExternalToolRepo } from '@shared/repo/schoolexternaltool'; import { CommonToolDeleteService, CommonToolValidationService } from '../../common/service'; import { ExternalToolService } from '../../external-tool'; import { type ExternalTool } from '../../external-tool/domain'; diff --git a/apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.ts b/apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.ts index d25c6d4e762..3bc015c1d8a 100644 --- a/apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.ts +++ b/apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@nestjs/common'; -import { ValidationError } from '@shared/common'; +import { ValidationError } from '@shared/common/error'; import { EntityId } from '@shared/domain/types'; -import { SchoolExternalToolRepo } from '@shared/repo'; +import { SchoolExternalToolRepo } from '@shared/repo/schoolexternaltool'; import { CommonToolDeleteService, CommonToolValidationService } from '../../common/service'; import { ExternalTool } from '../../external-tool/domain'; import { ExternalToolService } from '../../external-tool/service'; diff --git a/apps/server/src/modules/tool/tool-api.module.ts b/apps/server/src/modules/tool/tool-api.module.ts index 0a0eba8fe8f..489103c90b3 100644 --- a/apps/server/src/modules/tool/tool-api.module.ts +++ b/apps/server/src/modules/tool/tool-api.module.ts @@ -1,3 +1,4 @@ +import { LoggerModule } from '@core/logger'; import { EncryptionModule } from '@infra/encryption'; import { AuthorizationModule } from '@modules/authorization'; import { BoardModule } from '@modules/board'; @@ -7,8 +8,7 @@ import { SchoolModule } from '@modules/school'; import { UserModule } from '@modules/user'; import { UserLicenseModule } from '@modules/user-license'; import { Module } from '@nestjs/common'; -import { LtiToolRepo } from '@shared/repo'; -import { LoggerModule } from '@core/logger'; +import { LtiToolRepo } from '@shared/repo/ltitool'; import { LearnroomModule } from '../learnroom'; import { CommonToolModule } from './common'; import { ToolPermissionHelper } from './common/uc/tool-permission-helper'; diff --git a/apps/server/src/modules/tool/tool-launch/error/launch-context-unavailable.loggable-exception.ts b/apps/server/src/modules/tool/tool-launch/error/launch-context-unavailable.loggable-exception.ts index 35c6915810f..2b1b614f90c 100644 --- a/apps/server/src/modules/tool/tool-launch/error/launch-context-unavailable.loggable-exception.ts +++ b/apps/server/src/modules/tool/tool-launch/error/launch-context-unavailable.loggable-exception.ts @@ -1,5 +1,5 @@ import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; +import { BusinessError } from '@shared/common/error'; import { EntityId } from '@shared/domain/types'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; import { ContextExternalToolLaunchable } from '../../context-external-tool/domain'; diff --git a/apps/server/src/modules/tool/tool-launch/error/missing-licence.loggable-exception.ts b/apps/server/src/modules/tool/tool-launch/error/missing-licence.loggable-exception.ts index 1cc6bd85285..f36e3e655e1 100644 --- a/apps/server/src/modules/tool/tool-launch/error/missing-licence.loggable-exception.ts +++ b/apps/server/src/modules/tool/tool-launch/error/missing-licence.loggable-exception.ts @@ -1,6 +1,6 @@ import { ExternalToolMedium } from '@modules/tool/external-tool/domain'; import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; +import { BusinessError } from '@shared/common/error'; import { EntityId } from '@shared/domain/types'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; import { ContextExternalToolLaunchable } from '../../context-external-tool/domain'; diff --git a/apps/server/src/modules/tool/tool-launch/error/missing-tool-parameter-value.loggable-exception.ts b/apps/server/src/modules/tool/tool-launch/error/missing-tool-parameter-value.loggable-exception.ts index 111405747f1..95e2312f7f6 100644 --- a/apps/server/src/modules/tool/tool-launch/error/missing-tool-parameter-value.loggable-exception.ts +++ b/apps/server/src/modules/tool/tool-launch/error/missing-tool-parameter-value.loggable-exception.ts @@ -1,6 +1,6 @@ -import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; +import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; import { CustomParameter } from '../../common/domain'; import { ContextExternalToolLaunchable } from '../../context-external-tool/domain'; diff --git a/apps/server/src/modules/user-import/controller/api-test/import-user.api.spec.ts b/apps/server/src/modules/user-import/controller/api-test/import-user.api.spec.ts index 78e1580bf0a..16f0d11bf45 100644 --- a/apps/server/src/modules/user-import/controller/api-test/import-user.api.spec.ts +++ b/apps/server/src/modules/user-import/controller/api-test/import-user.api.spec.ts @@ -22,7 +22,7 @@ import { } from '@modules/user-import/controller/dto'; import { HttpStatus, INestApplication } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; -import { PaginationParams } from '@shared/controller'; +import { PaginationParams } from '@shared/controller/dto'; import { SchoolEntity, User } from '@shared/domain/entity'; import { Permission, RoleName, SortOrder } from '@shared/domain/interface'; import { SchoolFeature } from '@shared/domain/types'; diff --git a/apps/server/src/modules/user-import/controller/dto/filter-import-user.params.ts b/apps/server/src/modules/user-import/controller/dto/filter-import-user.params.ts index 75d5348e0a7..cf6a0fc7527 100644 --- a/apps/server/src/modules/user-import/controller/dto/filter-import-user.params.ts +++ b/apps/server/src/modules/user-import/controller/dto/filter-import-user.params.ts @@ -1,5 +1,5 @@ import { ApiPropertyOptional } from '@nestjs/swagger'; -import { SingleValueToArrayTransformer } from '@shared/controller'; +import { SingleValueToArrayTransformer } from '@shared/controller/transformer'; import { IsArray, IsBoolean, IsEnum, IsNotEmpty, IsOptional, IsString } from 'class-validator'; export enum FilterMatchType { diff --git a/apps/server/src/modules/user-import/controller/dto/import-user.response.ts b/apps/server/src/modules/user-import/controller/dto/import-user.response.ts index 2d87caf9e7b..6f1f70a966d 100644 --- a/apps/server/src/modules/user-import/controller/dto/import-user.response.ts +++ b/apps/server/src/modules/user-import/controller/dto/import-user.response.ts @@ -1,5 +1,5 @@ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; -import { PaginationResponse } from '@shared/controller'; +import { PaginationResponse } from '@shared/controller/dto'; import { IsMongoId, IsString } from 'class-validator'; import { UserMatchResponse } from './user-match.response'; import { UserRole } from './user-role'; diff --git a/apps/server/src/modules/user-import/controller/dto/sort-import-user.params.ts b/apps/server/src/modules/user-import/controller/dto/sort-import-user.params.ts index db7ce7478f4..79435bc3c9e 100644 --- a/apps/server/src/modules/user-import/controller/dto/sort-import-user.params.ts +++ b/apps/server/src/modules/user-import/controller/dto/sort-import-user.params.ts @@ -1,5 +1,5 @@ import { ApiPropertyOptional } from '@nestjs/swagger'; -import { SortingParams } from '@shared/controller'; +import { SortingParams } from '@shared/controller/dto'; import { IsEnum, IsOptional } from 'class-validator'; export enum ImportUserSortOrder { diff --git a/apps/server/src/modules/user-import/controller/dto/user-match.response.ts b/apps/server/src/modules/user-import/controller/dto/user-match.response.ts index e15b0b7b17d..ddbaa0a6c14 100644 --- a/apps/server/src/modules/user-import/controller/dto/user-match.response.ts +++ b/apps/server/src/modules/user-import/controller/dto/user-match.response.ts @@ -1,5 +1,5 @@ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; -import { PaginationResponse } from '@shared/controller'; +import { PaginationResponse } from '@shared/controller/dto'; import { IsMongoId } from 'class-validator'; import { MatchType } from './match-type'; import { UserRole } from './user-role'; diff --git a/apps/server/src/modules/user-import/controller/import-user.controller.ts b/apps/server/src/modules/user-import/controller/import-user.controller.ts index 3539e9a49de..9e7011cdc3e 100644 --- a/apps/server/src/modules/user-import/controller/import-user.controller.ts +++ b/apps/server/src/modules/user-import/controller/import-user.controller.ts @@ -10,8 +10,8 @@ import { ApiTags, ApiUnauthorizedResponse, } from '@nestjs/swagger'; -import { RequestTimeout } from '@shared/common'; -import { PaginationParams } from '@shared/controller'; +import { RequestTimeout } from '@shared/common/decorators'; +import { PaginationParams } from '@shared/controller/dto'; import { User } from '@shared/domain/entity'; import { IFindOptions } from '@shared/domain/interface'; import { ImportUser } from '../entity'; diff --git a/apps/server/src/modules/user-import/loggable/user-import-configuration-failure-loggable-exception.ts b/apps/server/src/modules/user-import/loggable/user-import-configuration-failure-loggable-exception.ts index 925fdc6904b..05bdb23af1d 100644 --- a/apps/server/src/modules/user-import/loggable/user-import-configuration-failure-loggable-exception.ts +++ b/apps/server/src/modules/user-import/loggable/user-import-configuration-failure-loggable-exception.ts @@ -1,6 +1,6 @@ -import { HttpStatus } from '@nestjs/common'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; -import { BusinessError } from '@shared/common'; +import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; export class UserImportConfigurationFailureLoggableException extends BusinessError implements Loggable { constructor() { diff --git a/apps/server/src/modules/user-import/loggable/user-import-populate-failure-loggable-exception.ts b/apps/server/src/modules/user-import/loggable/user-import-populate-failure-loggable-exception.ts index 2c2c1d7f2dd..552068b4297 100644 --- a/apps/server/src/modules/user-import/loggable/user-import-populate-failure-loggable-exception.ts +++ b/apps/server/src/modules/user-import/loggable/user-import-populate-failure-loggable-exception.ts @@ -1,6 +1,6 @@ -import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; +import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; export class UserImportPopulateFailureLoggableException extends BusinessError implements Loggable { constructor(private readonly url: string) { diff --git a/apps/server/src/modules/user-import/mapper/import-user.mapper.ts b/apps/server/src/modules/user-import/mapper/import-user.mapper.ts index a24b56e5c50..57ab35b6b87 100644 --- a/apps/server/src/modules/user-import/mapper/import-user.mapper.ts +++ b/apps/server/src/modules/user-import/mapper/import-user.mapper.ts @@ -1,5 +1,5 @@ import { BadRequestException } from '@nestjs/common'; -import { StringValidator } from '@shared/common'; +import { StringValidator } from '@shared/common/validator'; import { SortOrderMap } from '@shared/domain/interface'; import { FilterImportUserParams, diff --git a/apps/server/src/modules/user-import/mapper/user-match.mapper.ts b/apps/server/src/modules/user-import/mapper/user-match.mapper.ts index 91caaf4f7fc..194ad683019 100644 --- a/apps/server/src/modules/user-import/mapper/user-match.mapper.ts +++ b/apps/server/src/modules/user-import/mapper/user-match.mapper.ts @@ -1,4 +1,4 @@ -import { StringValidator } from '@shared/common'; +import { StringValidator } from '@shared/common/validator'; import { User } from '@shared/domain/entity'; import { UserMatchResponse, UserRole } from '../controller/dto'; import { FilterUserParams } from '../controller/dto/filter-user.params'; diff --git a/apps/server/src/modules/user-import/repo/import-user.scope.ts b/apps/server/src/modules/user-import/repo/import-user.scope.ts index 08911f4851a..8c23659aec1 100644 --- a/apps/server/src/modules/user-import/repo/import-user.scope.ts +++ b/apps/server/src/modules/user-import/repo/import-user.scope.ts @@ -1,10 +1,10 @@ /* eslint-disable @typescript-eslint/ban-ts-comment */ import { FilterQuery } from '@mikro-orm/core'; import { ObjectId } from '@mikro-orm/mongodb'; -import { StringValidator } from '@shared/common'; +import { StringValidator } from '@shared/common/validator'; import { SchoolEntity, User } from '@shared/domain/entity'; import { RoleName } from '@shared/domain/interface'; -import { MongoPatterns } from '@shared/repo'; +import { MongoPatterns } from '@shared/repo/mongo.patterns'; import { Scope } from '@shared/repo/scope'; import { ImportUserMatchCreatorScope } from '../domain/interface'; import { ImportUser } from '../entity'; diff --git a/apps/server/src/modules/user-import/uc/user-import.uc.spec.ts b/apps/server/src/modules/user-import/uc/user-import.uc.spec.ts index 20f80daef18..b19d65cdd0e 100644 --- a/apps/server/src/modules/user-import/uc/user-import.uc.spec.ts +++ b/apps/server/src/modules/user-import/uc/user-import.uc.spec.ts @@ -1,3 +1,4 @@ +import { Logger } from '@core/logger'; import { createMock, DeepMocked } from '@golevelup/ts-jest'; import { ObjectId } from '@mikro-orm/mongodb'; import { Account, AccountService } from '@modules/account'; @@ -12,14 +13,13 @@ import { UserLoginMigrationService, UserMigrationService } from '@modules/user-l import { BadRequestException, ForbiddenException } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { Test, TestingModule } from '@nestjs/testing'; -import { UserAlreadyAssignedToImportUserError } from '@shared/common'; +import { UserAlreadyAssignedToImportUserError } from '@shared/common/error'; import { NotFoundLoggableException } from '@shared/common/loggable-exception'; import { LegacySchoolDo } from '@shared/domain/domainobject'; import { SchoolEntity, User } from '@shared/domain/entity'; import { Permission } from '@shared/domain/interface'; import { Counted, SchoolFeature } from '@shared/domain/types'; -import { UserRepo } from '@shared/repo'; -import { Logger } from '@core/logger'; +import { UserRepo } from '@shared/repo/user'; import { legacySchoolDoFactory, userLoginMigrationDOFactory } from '@testing/factory/domainobject'; import { federalStateFactory } from '@testing/factory/federal-state.factory'; import { importUserFactory } from '@testing/factory/import-user.factory'; diff --git a/apps/server/src/modules/user-import/uc/user-import.uc.ts b/apps/server/src/modules/user-import/uc/user-import.uc.ts index e80f59fd6aa..2ad4cb9b2cd 100644 --- a/apps/server/src/modules/user-import/uc/user-import.uc.ts +++ b/apps/server/src/modules/user-import/uc/user-import.uc.ts @@ -1,3 +1,4 @@ +import { Logger } from '@core/logger'; import { Account, AccountSave, AccountService } from '@modules/account'; import { AuthorizationService } from '@modules/authorization'; import { LegacySchoolService } from '@modules/legacy-school'; @@ -7,14 +8,13 @@ import { UserLoginMigrationNotActiveLoggableException } from '@modules/user-impo import { UserLoginMigrationService, UserMigrationService } from '@modules/user-login-migration'; import { BadRequestException, ForbiddenException, Injectable } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; -import { UserAlreadyAssignedToImportUserError } from '@shared/common'; +import { UserAlreadyAssignedToImportUserError } from '@shared/common/error'; import { NotFoundLoggableException } from '@shared/common/loggable-exception'; import { LegacySchoolDo, UserDO, UserLoginMigrationDO } from '@shared/domain/domainobject'; import { User } from '@shared/domain/entity'; import { IFindOptions, Permission } from '@shared/domain/interface'; import { Counted, EntityId } from '@shared/domain/types'; -import { UserRepo } from '@shared/repo'; -import { Logger } from '@core/logger'; +import { UserRepo } from '@shared/repo/user'; import { isError } from 'lodash'; import { ImportUserFilter, ImportUserMatchCreatorScope, ImportUserNameMatchFilter } from '../domain/interface'; diff --git a/apps/server/src/modules/user-import/user-import.module.ts b/apps/server/src/modules/user-import/user-import.module.ts index f4af8d8d9ae..c37c0c83b26 100644 --- a/apps/server/src/modules/user-import/user-import.module.ts +++ b/apps/server/src/modules/user-import/user-import.module.ts @@ -1,3 +1,4 @@ +import { LoggerModule } from '@core/logger'; import { SchulconnexClientModule } from '@infra/schulconnex-client/schulconnex-client.module'; import { AccountModule } from '@modules/account'; import { AuthorizationModule } from '@modules/authorization'; @@ -8,8 +9,8 @@ import { UserModule } from '@modules/user'; import { UserLoginMigrationModule } from '@modules/user-login-migration'; import { HttpModule } from '@nestjs/axios'; import { Module } from '@nestjs/common'; -import { LegacySchoolRepo, UserRepo } from '@shared/repo'; -import { LoggerModule } from '@core/logger'; +import { LegacySchoolRepo } from '@shared/repo/school'; +import { UserRepo } from '@shared/repo/user'; import { ImportUserController } from './controller/import-user.controller'; import { ImportUserRepo } from './repo'; import { SchulconnexFetchImportUsersService, UserImportService } from './service'; diff --git a/apps/server/src/modules/user-login-migration/controller/dto/response/user-login-migration-search-list.response.ts b/apps/server/src/modules/user-login-migration/controller/dto/response/user-login-migration-search-list.response.ts index 8138d72b7f1..64a13d0ac9c 100644 --- a/apps/server/src/modules/user-login-migration/controller/dto/response/user-login-migration-search-list.response.ts +++ b/apps/server/src/modules/user-login-migration/controller/dto/response/user-login-migration-search-list.response.ts @@ -1,5 +1,5 @@ import { ApiProperty } from '@nestjs/swagger'; -import { PaginationResponse } from '@shared/controller'; +import { PaginationResponse } from '@shared/controller/dto'; import { UserLoginMigrationResponse } from './user-login-migration.response'; export class UserLoginMigrationSearchListResponse extends PaginationResponse { diff --git a/apps/server/src/modules/user-login-migration/loggable/identical-user-login-migration-system.loggable-exception.ts b/apps/server/src/modules/user-login-migration/loggable/identical-user-login-migration-system.loggable-exception.ts index 7d9841d721c..b334f51c62a 100644 --- a/apps/server/src/modules/user-login-migration/loggable/identical-user-login-migration-system.loggable-exception.ts +++ b/apps/server/src/modules/user-login-migration/loggable/identical-user-login-migration-system.loggable-exception.ts @@ -1,7 +1,7 @@ import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; -import { BusinessError } from '@shared/common'; -import { EntityId } from '@shared/domain/types'; import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; +import { EntityId } from '@shared/domain/types'; export class IdenticalUserLoginMigrationSystemLoggableException extends BusinessError implements Loggable { constructor(private readonly schoolId: string | undefined, private readonly targetSystemId: EntityId | undefined) { diff --git a/apps/server/src/modules/user-login-migration/loggable/moin-schule-system-not-found.loggable-exception.ts b/apps/server/src/modules/user-login-migration/loggable/moin-schule-system-not-found.loggable-exception.ts index ceb437ed160..e3f0bb83a9c 100644 --- a/apps/server/src/modules/user-login-migration/loggable/moin-schule-system-not-found.loggable-exception.ts +++ b/apps/server/src/modules/user-login-migration/loggable/moin-schule-system-not-found.loggable-exception.ts @@ -1,6 +1,6 @@ import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; -import { BusinessError } from '@shared/common'; import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; export class MoinSchuleSystemNotFoundLoggableException extends BusinessError implements Loggable { constructor() { diff --git a/apps/server/src/modules/user-login-migration/loggable/school-number-mismatch.loggable-exception.ts b/apps/server/src/modules/user-login-migration/loggable/school-number-mismatch.loggable-exception.ts index b221ddac014..28d6654bc38 100644 --- a/apps/server/src/modules/user-login-migration/loggable/school-number-mismatch.loggable-exception.ts +++ b/apps/server/src/modules/user-login-migration/loggable/school-number-mismatch.loggable-exception.ts @@ -1,6 +1,6 @@ -import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; +import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; export class SchoolNumberMismatchLoggableException extends BusinessError implements Loggable { constructor(private readonly sourceSchoolNumber: string, private readonly targetSchoolNumber: string) { diff --git a/apps/server/src/modules/user-login-migration/loggable/user-login-migration-invalid-external-school-id.loggable-exception.ts b/apps/server/src/modules/user-login-migration/loggable/user-login-migration-invalid-external-school-id.loggable-exception.ts index 524e832975e..c4d1db23723 100644 --- a/apps/server/src/modules/user-login-migration/loggable/user-login-migration-invalid-external-school-id.loggable-exception.ts +++ b/apps/server/src/modules/user-login-migration/loggable/user-login-migration-invalid-external-school-id.loggable-exception.ts @@ -1,6 +1,6 @@ -import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; +import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; export class UserLoginMigrationInvalidExternalSchoolIdLoggableException extends BusinessError implements Loggable { constructor(private readonly externalSchoolId: string) { diff --git a/apps/server/src/modules/user-login-migration/loggable/user-login-migration-user-already-migrated.loggable-exception.ts b/apps/server/src/modules/user-login-migration/loggable/user-login-migration-user-already-migrated.loggable-exception.ts index 0cbe5cd4441..90be4ec14af 100644 --- a/apps/server/src/modules/user-login-migration/loggable/user-login-migration-user-already-migrated.loggable-exception.ts +++ b/apps/server/src/modules/user-login-migration/loggable/user-login-migration-user-already-migrated.loggable-exception.ts @@ -1,6 +1,6 @@ -import { HttpStatus } from '@nestjs/common'; -import { BusinessError } from '@shared/common'; import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@core/logger'; +import { HttpStatus } from '@nestjs/common'; +import { BusinessError } from '@shared/common/error'; export class UserLoginMigrationUserAlreadyMigratedLoggableException extends BusinessError implements Loggable { constructor(private readonly externalUserId: string) { diff --git a/apps/server/src/modules/user-login-migration/service/migration-check.service.spec.ts b/apps/server/src/modules/user-login-migration/service/migration-check.service.spec.ts index f03dd85c7ef..92c9f07cc42 100644 --- a/apps/server/src/modules/user-login-migration/service/migration-check.service.spec.ts +++ b/apps/server/src/modules/user-login-migration/service/migration-check.service.spec.ts @@ -3,7 +3,7 @@ import { LegacySchoolService } from '@modules/legacy-school'; import { UserService } from '@modules/user'; import { Test, TestingModule } from '@nestjs/testing'; import { LegacySchoolDo, UserDO, UserLoginMigrationDO } from '@shared/domain/domainobject'; -import { UserLoginMigrationRepo } from '@shared/repo'; +import { UserLoginMigrationRepo } from '@shared/repo/userloginmigration'; import { legacySchoolDoFactory } from '@testing/factory/domainobject'; import { userDoFactory } from '@testing/factory/user.do.factory'; import { MigrationCheckService } from './migration-check.service'; diff --git a/apps/server/src/modules/user-login-migration/service/migration-check.service.ts b/apps/server/src/modules/user-login-migration/service/migration-check.service.ts index bf2b2e0abab..d74d9d6eb99 100644 --- a/apps/server/src/modules/user-login-migration/service/migration-check.service.ts +++ b/apps/server/src/modules/user-login-migration/service/migration-check.service.ts @@ -3,7 +3,7 @@ import { UserService } from '@modules/user'; import { Injectable } from '@nestjs/common'; import { LegacySchoolDo, UserDO, UserLoginMigrationDO } from '@shared/domain/domainobject'; import { EntityId } from '@shared/domain/types'; -import { UserLoginMigrationRepo } from '@shared/repo'; +import { UserLoginMigrationRepo } from '@shared/repo/userloginmigration'; @Injectable() export class MigrationCheckService { diff --git a/apps/server/src/modules/user-login-migration/service/school-migration.service.ts b/apps/server/src/modules/user-login-migration/service/school-migration.service.ts index abcba3edd5a..64938316bee 100644 --- a/apps/server/src/modules/user-login-migration/service/school-migration.service.ts +++ b/apps/server/src/modules/user-login-migration/service/school-migration.service.ts @@ -1,9 +1,9 @@ +import { LegacyLogger, Logger } from '@core/logger'; import { LegacySchoolService } from '@modules/legacy-school'; import { UserService } from '@modules/user'; import { Injectable } from '@nestjs/common'; import { LegacySchoolDo, Page, UserDO, UserLoginMigrationDO } from '@shared/domain/domainobject'; -import { UserLoginMigrationRepo } from '@shared/repo'; -import { LegacyLogger, Logger } from '@core/logger'; +import { UserLoginMigrationRepo } from '@shared/repo/userloginmigration'; import { performance } from 'perf_hooks'; import { SchoolMigrationDatabaseOperationFailedLoggableException, diff --git a/apps/server/src/modules/user-login-migration/service/user-login-migration.service.spec.ts b/apps/server/src/modules/user-login-migration/service/user-login-migration.service.spec.ts index 3faf5748b85..6a0da31f8ad 100644 --- a/apps/server/src/modules/user-login-migration/service/user-login-migration.service.spec.ts +++ b/apps/server/src/modules/user-login-migration/service/user-login-migration.service.spec.ts @@ -8,7 +8,7 @@ import { UserService } from '@modules/user'; import { Test, TestingModule } from '@nestjs/testing'; import { LegacySchoolDo, UserDO, UserLoginMigrationDO } from '@shared/domain/domainobject'; import { EntityId, SchoolFeature } from '@shared/domain/types'; -import { UserLoginMigrationRepo } from '@shared/repo'; +import { UserLoginMigrationRepo } from '@shared/repo/userloginmigration'; import { legacySchoolDoFactory, userLoginMigrationDOFactory } from '@testing/factory/domainobject'; import { userDoFactory } from '@testing/factory/user.do.factory'; import { diff --git a/apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts b/apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts index fceb40d807b..6d1229eb22d 100644 --- a/apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts +++ b/apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts @@ -6,7 +6,7 @@ import { UserService } from '@modules/user'; import { Injectable } from '@nestjs/common'; import { LegacySchoolDo, UserDO, UserLoginMigrationDO } from '@shared/domain/domainobject'; import { EntityId, SchoolFeature } from '@shared/domain/types'; -import { UserLoginMigrationRepo } from '@shared/repo'; +import { UserLoginMigrationRepo } from '@shared/repo/userloginmigration'; import { IdenticalUserLoginMigrationSystemLoggableException, MoinSchuleSystemNotFoundLoggableException, diff --git a/apps/server/src/modules/user-login-migration/user-login-migration.module.ts b/apps/server/src/modules/user-login-migration/user-login-migration.module.ts index 7001a6313c9..b4d954ec6ed 100644 --- a/apps/server/src/modules/user-login-migration/user-login-migration.module.ts +++ b/apps/server/src/modules/user-login-migration/user-login-migration.module.ts @@ -1,10 +1,10 @@ +import { LoggerModule } from '@core/logger'; import { AccountModule } from '@modules/account'; import { LegacySchoolModule } from '@modules/legacy-school'; import { SystemModule } from '@modules/system'; import { UserModule } from '@modules/user'; import { Module } from '@nestjs/common'; -import { UserLoginMigrationRepo } from '@shared/repo'; -import { LoggerModule } from '@core/logger'; +import { UserLoginMigrationRepo } from '@shared/repo/userloginmigration'; import { MigrationCheckService, SchoolMigrationService, diff --git a/apps/server/src/modules/user/controller/api-test/user-language.api.spec.ts b/apps/server/src/modules/user/controller/api-test/user-language.api.spec.ts index efc61e3640a..91efa4bc20e 100644 --- a/apps/server/src/modules/user/controller/api-test/user-language.api.spec.ts +++ b/apps/server/src/modules/user/controller/api-test/user-language.api.spec.ts @@ -3,7 +3,7 @@ import { INestApplication } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; import { ServerTestModule } from '@modules/server/server.app.module'; -import { ApiValidationError } from '@shared/common'; +import { ApiValidationError } from '@shared/common/error'; import { User } from '@shared/domain/entity'; import { LanguageType } from '@shared/domain/interface'; import { UserAndAccountTestFactory } from '@testing/factory/user-and-account.test.factory'; diff --git a/apps/server/src/modules/user/legacy/controller/admin-api-students.controller.ts b/apps/server/src/modules/user/legacy/controller/admin-api-students.controller.ts index 999a7a15cd0..fed53da1434 100644 --- a/apps/server/src/modules/user/legacy/controller/admin-api-students.controller.ts +++ b/apps/server/src/modules/user/legacy/controller/admin-api-students.controller.ts @@ -1,7 +1,7 @@ import { CurrentUser, ICurrentUser, JwtAuthentication } from '@infra/auth-guard'; import { Controller, Get, Param, Query } from '@nestjs/common'; import { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger'; -import { EntityNotFoundError, ForbiddenOperationError, ValidationError } from '@shared/common'; +import { EntityNotFoundError, ForbiddenOperationError, ValidationError } from '@shared/common/error'; import { RequestedRoleEnum } from '../enum'; import { UsersAdminApiUc } from '../uc'; import { UserByIdParams, UserListResponse, UserResponse, UsersSearchQueryParams } from './dto'; diff --git a/apps/server/src/modules/user/legacy/controller/admin-api-teachers.controller.ts b/apps/server/src/modules/user/legacy/controller/admin-api-teachers.controller.ts index d34e01dcc10..4cfe022605a 100644 --- a/apps/server/src/modules/user/legacy/controller/admin-api-teachers.controller.ts +++ b/apps/server/src/modules/user/legacy/controller/admin-api-teachers.controller.ts @@ -1,7 +1,7 @@ import { CurrentUser, ICurrentUser, JwtAuthentication } from '@infra/auth-guard'; import { Controller, Get, Param, Query } from '@nestjs/common'; import { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger'; -import { EntityNotFoundError, ForbiddenOperationError, ValidationError } from '@shared/common'; +import { EntityNotFoundError, ForbiddenOperationError, ValidationError } from '@shared/common/error'; import { RequestedRoleEnum } from '../enum'; import { UsersAdminApiUc } from '../uc'; import { UserByIdParams, UserListResponse, UserResponse, UsersSearchQueryParams } from './dto'; diff --git a/apps/server/src/modules/user/legacy/controller/dto/user-list.response.ts b/apps/server/src/modules/user/legacy/controller/dto/user-list.response.ts index 0e805a14fd0..aa75a19d5c2 100644 --- a/apps/server/src/modules/user/legacy/controller/dto/user-list.response.ts +++ b/apps/server/src/modules/user/legacy/controller/dto/user-list.response.ts @@ -1,5 +1,5 @@ -import { PaginationResponse } from '@shared/controller'; import { ApiProperty } from '@nestjs/swagger'; +import { PaginationResponse } from '@shared/controller/dto'; import { UserResponse } from './user.response'; export class UserListResponse extends PaginationResponse { diff --git a/apps/server/src/modules/user/legacy/controller/dto/users-search.query.params.ts b/apps/server/src/modules/user/legacy/controller/dto/users-search.query.params.ts index a83de8ead7f..78515c24b1a 100644 --- a/apps/server/src/modules/user/legacy/controller/dto/users-search.query.params.ts +++ b/apps/server/src/modules/user/legacy/controller/dto/users-search.query.params.ts @@ -1,7 +1,7 @@ -import { PaginationParams } from '@shared/controller'; -import { IsInt, IsOptional, IsString, Min } from 'class-validator'; import { ApiPropertyOptional } from '@nestjs/swagger'; +import { PaginationParams } from '@shared/controller/dto'; import { SortOrderNumberType } from '@shared/domain/interface'; +import { IsInt, IsOptional, IsString, Min } from 'class-validator'; export class UsersSearchQueryParams extends PaginationParams { @IsInt() diff --git a/apps/server/src/modules/user/legacy/service/users-admin.service.ts b/apps/server/src/modules/user/legacy/service/users-admin.service.ts index 43b188d59f0..4bd5e8e918a 100644 --- a/apps/server/src/modules/user/legacy/service/users-admin.service.ts +++ b/apps/server/src/modules/user/legacy/service/users-admin.service.ts @@ -1,10 +1,10 @@ -import { Injectable } from '@nestjs/common'; -import { EntityId } from '@shared/domain/types'; import { Logger } from '@core/logger'; +import { Injectable } from '@nestjs/common'; +import { EntityNotFoundError } from '@shared/common/error'; import { User } from '@shared/domain/entity'; -import { EntityNotFoundError } from '@shared/common'; -import { UsersAdminRepo } from '../repo'; +import { EntityId } from '@shared/domain/types'; import { UserListResponse, UserResponse, UsersSearchQueryParams } from '../controller/dto'; +import { UsersAdminRepo } from '../repo'; @Injectable() export class UsersAdminService { diff --git a/apps/server/src/modules/user/legacy/uc/users-admin-api.uc.ts b/apps/server/src/modules/user/legacy/uc/users-admin-api.uc.ts index 9ad82052448..4115b720b82 100644 --- a/apps/server/src/modules/user/legacy/uc/users-admin-api.uc.ts +++ b/apps/server/src/modules/user/legacy/uc/users-admin-api.uc.ts @@ -1,16 +1,16 @@ import { Injectable } from '@nestjs/common'; import { User } from '@shared/domain/entity'; import { Permission, RoleName } from '@shared/domain/interface'; -import { UserRepo } from '@shared/repo'; -import { RoleService } from '../../../role'; +import { UserRepo } from '@shared/repo/user'; import { AuthorizableReferenceType, AuthorizationContextBuilder, AuthorizationService, ForbiddenLoggableException, } from '../../../authorization'; -import { RequestedRoleEnum } from '../enum'; +import { RoleService } from '../../../role'; import { UserByIdParams, UserListResponse, UserResponse, UsersSearchQueryParams } from '../controller/dto'; +import { RequestedRoleEnum } from '../enum'; import { UsersAdminService } from '../service'; @Injectable() diff --git a/apps/server/src/modules/user/legacy/users-admin-api.module.ts b/apps/server/src/modules/user/legacy/users-admin-api.module.ts index 25d49af90dc..4d1ca23e7a1 100644 --- a/apps/server/src/modules/user/legacy/users-admin-api.module.ts +++ b/apps/server/src/modules/user/legacy/users-admin-api.module.ts @@ -1,7 +1,7 @@ import { Module } from '@nestjs/common'; -import { UserRepo } from '@shared/repo'; -import { RoleModule } from '../../role'; +import { UserRepo } from '@shared/repo/user'; import { AuthorizationModule } from '../../authorization'; +import { RoleModule } from '../../role'; import { AdminApiStudentsController, AdminApiTeachersController } from './controller'; import { UsersAdminApiUc } from './uc'; import { UsersAdminModule } from './users-admin.module'; diff --git a/apps/server/src/modules/user/legacy/users-admin.module.ts b/apps/server/src/modules/user/legacy/users-admin.module.ts index 040105c63ad..78cf1700bdb 100644 --- a/apps/server/src/modules/user/legacy/users-admin.module.ts +++ b/apps/server/src/modules/user/legacy/users-admin.module.ts @@ -1,8 +1,8 @@ -import { Module } from '@nestjs/common'; import { LoggerModule } from '@core/logger'; -import { UserRepo } from '@shared/repo'; -import { UsersAdminService } from './service'; +import { Module } from '@nestjs/common'; +import { UserRepo } from '@shared/repo/user'; import { UsersAdminRepo } from './repo'; +import { UsersAdminService } from './service'; @Module({ imports: [LoggerModule], diff --git a/apps/server/src/modules/user/loggable/addSecondarySchoolToUserError.loggable.ts b/apps/server/src/modules/user/loggable/addSecondarySchoolToUserError.loggable.ts index 1aeba62422a..c95cd61405e 100644 --- a/apps/server/src/modules/user/loggable/addSecondarySchoolToUserError.loggable.ts +++ b/apps/server/src/modules/user/loggable/addSecondarySchoolToUserError.loggable.ts @@ -1,5 +1,5 @@ import { InternalServerErrorException } from '@nestjs/common'; -import { ErrorLogMessage, ValidationErrorLogMessage } from '@shared/common'; +import { ErrorLogMessage, ValidationErrorLogMessage } from '@shared/common/error'; import { Loggable } from '@shared/common/loggable'; import { RoleReference } from '@shared/domain/domainobject'; import { LogMessage } from '@core/logger'; diff --git a/apps/server/src/modules/user/service/user.service.spec.ts b/apps/server/src/modules/user/service/user.service.spec.ts index beaa824f4c7..ec59a7dc5fd 100644 --- a/apps/server/src/modules/user/service/user.service.spec.ts +++ b/apps/server/src/modules/user/service/user.service.spec.ts @@ -24,7 +24,7 @@ import { UserDO } from '@shared/domain/domainobject/user.do'; import { Role, User } from '@shared/domain/entity'; import { IFindOptions, LanguageType, Permission, RoleName, SortOrder } from '@shared/domain/interface'; import { EntityId } from '@shared/domain/types'; -import { UserRepo } from '@shared/repo'; +import { UserRepo } from '@shared/repo/user'; import { UserDORepo } from '@shared/repo/user/user-do.repo'; import { roleFactory } from '@testing/factory/role.factory'; import { userDoFactory } from '@testing/factory/user.do.factory'; diff --git a/apps/server/src/modules/user/service/user.service.ts b/apps/server/src/modules/user/service/user.service.ts index 55fa6b95bf4..3ed16f65725 100644 --- a/apps/server/src/modules/user/service/user.service.ts +++ b/apps/server/src/modules/user/service/user.service.ts @@ -25,7 +25,7 @@ import { Page, RoleReference, UserDO } from '@shared/domain/domainobject'; import { User } from '@shared/domain/entity'; import { IFindOptions, LanguageType, RoleName } from '@shared/domain/interface'; import { EntityId } from '@shared/domain/types'; -import { UserRepo } from '@shared/repo'; +import { UserRepo } from '@shared/repo/user'; import { UserDORepo } from '@shared/repo/user/user-do.repo'; import { UserConfig } from '../interfaces'; import { AddSecondarySchoolToUsersRoleErrorLoggableException } from '../loggable/addSecondarySchoolToUserError.loggable'; diff --git a/apps/server/src/modules/user/uc/user.uc.spec.ts b/apps/server/src/modules/user/uc/user.uc.spec.ts index 662f5decaf5..82eeb92103b 100644 --- a/apps/server/src/modules/user/uc/user.uc.spec.ts +++ b/apps/server/src/modules/user/uc/user.uc.spec.ts @@ -5,7 +5,7 @@ import { ConfigService } from '@nestjs/config'; import { Test, TestingModule } from '@nestjs/testing'; import { User } from '@shared/domain/entity'; import { LanguageType, Permission } from '@shared/domain/interface'; -import { UserRepo } from '@shared/repo'; +import { UserRepo } from '@shared/repo/user'; import { roleFactory } from '@testing/factory/role.factory'; import { userFactory } from '@testing/factory/user.factory'; import { setupEntities } from '@testing/setup-entities'; diff --git a/apps/server/src/modules/user/uc/user.uc.ts b/apps/server/src/modules/user/uc/user.uc.ts index 4e771c46296..893ed6d8c50 100644 --- a/apps/server/src/modules/user/uc/user.uc.ts +++ b/apps/server/src/modules/user/uc/user.uc.ts @@ -3,7 +3,7 @@ import { ConfigService } from '@nestjs/config'; import { User } from '@shared/domain/entity'; import { LanguageType } from '@shared/domain/interface'; import { EntityId } from '@shared/domain/types'; -import { UserRepo } from '@shared/repo'; +import { UserRepo } from '@shared/repo/user'; import { ChangeLanguageParams } from '../controller/dto'; import { UserConfig } from '../interfaces'; diff --git a/apps/server/src/modules/user/user.module.ts b/apps/server/src/modules/user/user.module.ts index 93c456173dc..f7197777e1f 100644 --- a/apps/server/src/modules/user/user.module.ts +++ b/apps/server/src/modules/user/user.module.ts @@ -3,7 +3,7 @@ import { RegistrationPinModule } from '@modules/registration-pin'; import { RoleModule } from '@modules/role'; import { Module } from '@nestjs/common'; import { CqrsModule } from '@nestjs/cqrs'; -import { UserRepo } from '@shared/repo'; +import { UserRepo } from '@shared/repo/user'; import { UserDORepo } from '@shared/repo/user/user-do.repo'; import { LoggerModule } from '@core/logger'; import { UserService } from './service'; diff --git a/apps/server/src/modules/video-conference/service/video-conference.service.spec.ts b/apps/server/src/modules/video-conference/service/video-conference.service.spec.ts index de9c71e78d0..ee5d66b54d5 100644 --- a/apps/server/src/modules/video-conference/service/video-conference.service.spec.ts +++ b/apps/server/src/modules/video-conference/service/video-conference.service.spec.ts @@ -21,7 +21,8 @@ import { UserDO, VideoConferenceDO } from '@shared/domain/domainobject'; import { Course, TeamUserEntity } from '@shared/domain/entity'; import { Permission, RoleName, VideoConferenceScope } from '@shared/domain/interface'; import { EntityId } from '@shared/domain/types'; -import { TeamsRepo, VideoConferenceRepo } from '@shared/repo'; +import { TeamsRepo } from '@shared/repo/teams'; +import { VideoConferenceRepo } from '@shared/repo/videoconference'; import { courseFactory } from '@testing/factory/course.factory'; import { groupFactory } from '@testing/factory/domainobject'; import { roleFactory } from '@testing/factory/role.factory'; diff --git a/apps/server/src/modules/video-conference/service/video-conference.service.ts b/apps/server/src/modules/video-conference/service/video-conference.service.ts index 1038a5052ac..cb18bfce0da 100644 --- a/apps/server/src/modules/video-conference/service/video-conference.service.ts +++ b/apps/server/src/modules/video-conference/service/video-conference.service.ts @@ -13,7 +13,8 @@ import { RoleReference, UserDO, VideoConferenceDO, VideoConferenceOptionsDO } fr import { Course, TeamEntity, TeamUserEntity, User } from '@shared/domain/entity'; import { Permission, RoleName, VideoConferenceScope } from '@shared/domain/interface'; import { EntityId } from '@shared/domain/types'; -import { TeamsRepo, VideoConferenceRepo } from '@shared/repo'; +import { TeamsRepo } from '@shared/repo/teams'; +import { VideoConferenceRepo } from '@shared/repo/videoconference'; import { BBBRole } from '../bbb'; import { ErrorStatus } from '../error'; import { VideoConferenceOptions } from '../interface'; diff --git a/apps/server/src/modules/video-conference/uc/video-conference-deprecated.uc.spec.ts b/apps/server/src/modules/video-conference/uc/video-conference-deprecated.uc.spec.ts index ed76bf16637..f42d93f6c58 100644 --- a/apps/server/src/modules/video-conference/uc/video-conference-deprecated.uc.spec.ts +++ b/apps/server/src/modules/video-conference/uc/video-conference-deprecated.uc.spec.ts @@ -13,7 +13,8 @@ import { RoleReference, UserDO, VideoConferenceDO } from '@shared/domain/domaino import { Course, Role, TeamEntity } from '@shared/domain/entity'; import { Permission, RoleName, VideoConferenceScope } from '@shared/domain/interface'; import { EntityId } from '@shared/domain/types'; -import { TeamsRepo, VideoConferenceRepo } from '@shared/repo'; +import { TeamsRepo } from '@shared/repo/teams'; +import { VideoConferenceRepo } from '@shared/repo/videoconference'; import { roleFactory } from '@testing/factory/role.factory'; import { teamFactory } from '@testing/factory/team.factory'; import { userDoFactory } from '@testing/factory/user.do.factory'; diff --git a/apps/server/src/modules/video-conference/uc/video-conference-deprecated.uc.ts b/apps/server/src/modules/video-conference/uc/video-conference-deprecated.uc.ts index 90090ba5b48..34912925846 100644 --- a/apps/server/src/modules/video-conference/uc/video-conference-deprecated.uc.ts +++ b/apps/server/src/modules/video-conference/uc/video-conference-deprecated.uc.ts @@ -12,7 +12,7 @@ import { UserDO, VideoConferenceDO, VideoConferenceOptionsDO } from '@shared/dom import { Course, TeamEntity, TeamUserEntity, User } from '@shared/domain/entity'; import { Permission, RoleName, VideoConferenceScope } from '@shared/domain/interface'; import { EntityId, SchoolFeature } from '@shared/domain/types'; -import { TeamsRepo } from '@shared/repo'; +import { TeamsRepo } from '@shared/repo/teams'; import { VideoConferenceRepo } from '@shared/repo/videoconference/video-conference.repo'; import { BBBBaseMeetingConfig, diff --git a/apps/server/src/modules/video-conference/video-conference.module.ts b/apps/server/src/modules/video-conference/video-conference.module.ts index 2dcbcf0fa66..8394dc1ee85 100644 --- a/apps/server/src/modules/video-conference/video-conference.module.ts +++ b/apps/server/src/modules/video-conference/video-conference.module.ts @@ -11,7 +11,7 @@ import { RoomMembershipModule } from '@modules/room-membership'; import { UserModule } from '@modules/user'; import { HttpModule } from '@nestjs/axios'; import { Module } from '@nestjs/common'; -import { TeamsRepo } from '@shared/repo'; +import { TeamsRepo } from '@shared/repo/teams'; import { VideoConferenceRepo } from '@shared/repo/videoconference/video-conference.repo'; import { BBBService } from './bbb'; import { VideoConferenceDeprecatedController } from './controller'; diff --git a/apps/server/src/shared/common/error/authorization.error.spec.ts b/apps/server/src/shared/common/error/authorization.error.spec.ts index f11693c09a4..5ca607d389d 100644 --- a/apps/server/src/shared/common/error/authorization.error.spec.ts +++ b/apps/server/src/shared/common/error/authorization.error.spec.ts @@ -1,5 +1,5 @@ import { HttpStatus } from '@nestjs/common'; -import { AuthorizationError } from '@shared/common'; +import { AuthorizationError } from '@shared/common/error'; describe('AuthorizationError', () => { it('should be possible to create', () => { diff --git a/apps/server/src/shared/common/error/forbidden-operation.error.spec.ts b/apps/server/src/shared/common/error/forbidden-operation.error.spec.ts index 2f63ddef076..139d89a744a 100644 --- a/apps/server/src/shared/common/error/forbidden-operation.error.spec.ts +++ b/apps/server/src/shared/common/error/forbidden-operation.error.spec.ts @@ -1,5 +1,5 @@ import { HttpStatus } from '@nestjs/common'; -import { ForbiddenOperationError } from '@shared/common'; +import { ForbiddenOperationError } from '@shared/common/error'; describe('ForbiddenOperationError', () => { it('should be possible to create', () => { diff --git a/apps/server/src/shared/common/index.ts b/apps/server/src/shared/common/index.ts index 508c27125ce..6ace271ede5 100644 --- a/apps/server/src/shared/common/index.ts +++ b/apps/server/src/shared/common/index.ts @@ -1,8 +1,3 @@ -export { createConfigModuleOptions } from './config-module-options'; -export { RequestTimeout } from './decorators'; -export { defaultMikroOrmOptions } from './defaultMikroOrmOptions'; -export * from './error'; -export * from './guards'; -export * from './interceptor'; -export * from './utils'; -export * from './validator'; +/** ************************************************* + * Do not re-export here! File should be empty! * + ************************************************** */ diff --git a/apps/server/src/shared/common/interceptor/timeout.interceptor.spec.ts b/apps/server/src/shared/common/interceptor/timeout.interceptor.spec.ts index c510d326524..76aca1fb5e1 100644 --- a/apps/server/src/shared/common/interceptor/timeout.interceptor.spec.ts +++ b/apps/server/src/shared/common/interceptor/timeout.interceptor.spec.ts @@ -3,7 +3,8 @@ import { Controller, Get, HttpStatus, INestApplication } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { APP_INTERCEPTOR } from '@nestjs/core'; import { Test } from '@nestjs/testing'; -import { RequestTimeout, TimeoutInterceptor } from '@shared/common'; +import { RequestTimeout } from '@shared/common/decorators'; +import { TimeoutInterceptor } from '@shared/common/interceptor'; import { TestApiClient } from '@testing/test-api-client'; const delay = (ms: number) => diff --git a/apps/server/src/shared/controller/index.ts b/apps/server/src/shared/controller/index.ts index ea2de5f4684..6ace271ede5 100644 --- a/apps/server/src/shared/controller/index.ts +++ b/apps/server/src/shared/controller/index.ts @@ -1,3 +1,3 @@ -export * from './dto'; -export * from './transformer'; -export * from './validator'; +/** ************************************************* + * Do not re-export here! File should be empty! * + ************************************************** */ diff --git a/apps/server/src/shared/controller/transformer/polymorphic-array.transformer.spec.ts b/apps/server/src/shared/controller/transformer/polymorphic-array.transformer.spec.ts index 5337752e7cf..f2813d0a208 100644 --- a/apps/server/src/shared/controller/transformer/polymorphic-array.transformer.spec.ts +++ b/apps/server/src/shared/controller/transformer/polymorphic-array.transformer.spec.ts @@ -1,4 +1,4 @@ -import { PolymorphicArrayTransform } from '@shared/controller'; +import { PolymorphicArrayTransform } from '@shared/controller/transformer'; import { ClassConstructor, plainToClass } from 'class-transformer'; describe(PolymorphicArrayTransform.name, () => { diff --git a/apps/server/src/shared/domain/index.ts b/apps/server/src/shared/domain/index.ts index a7f493efe12..6ace271ede5 100644 --- a/apps/server/src/shared/domain/index.ts +++ b/apps/server/src/shared/domain/index.ts @@ -1,6 +1,3 @@ -/** - - Import external dependencies directly, not from here. - Avoid loading all external references for testing. - Do not re-export here. - */ +/** ************************************************* + * Do not re-export here! File should be empty! * + ************************************************** */ diff --git a/apps/server/src/shared/repo/contextexternaltool/context-external-tool.scope.ts b/apps/server/src/shared/repo/contextexternaltool/context-external-tool.scope.ts index 6b3eaa09037..af1d2184a3b 100644 --- a/apps/server/src/shared/repo/contextexternaltool/context-external-tool.scope.ts +++ b/apps/server/src/shared/repo/contextexternaltool/context-external-tool.scope.ts @@ -1,8 +1,8 @@ +import { ObjectId } from '@mikro-orm/mongodb'; import { ToolContextType } from '@modules/tool/common/enum'; import { ContextExternalToolEntity } from '@modules/tool/context-external-tool/entity'; import { EntityId } from '@shared/domain/types'; -import { Scope } from '@shared/repo'; -import { ObjectId } from '@mikro-orm/mongodb'; +import { Scope } from '@shared/repo/scope'; export class ContextExternalToolScope extends Scope { byId(id: EntityId | undefined): ContextExternalToolScope { diff --git a/apps/server/src/shared/repo/externaltool/external-tool-sorting.mapper.spec.ts b/apps/server/src/shared/repo/externaltool/external-tool-sorting.mapper.spec.ts index f5cce50cebf..27af4a5deba 100644 --- a/apps/server/src/shared/repo/externaltool/external-tool-sorting.mapper.spec.ts +++ b/apps/server/src/shared/repo/externaltool/external-tool-sorting.mapper.spec.ts @@ -3,7 +3,7 @@ import { ExternalTool } from '@modules/tool/external-tool/domain'; import { ExternalToolEntity } from '@modules/tool/external-tool/entity'; import { LtiTool } from '@shared/domain/entity'; import { SortOrder, SortOrderMap } from '@shared/domain/interface'; -import { ExternalToolSortingMapper } from '@shared/repo'; +import { ExternalToolSortingMapper } from '@shared/repo/externaltool'; describe('ExternalToolSortingMapper', () => { describe('mapDOSortOrderToQueryOrder', () => { diff --git a/apps/server/src/shared/repo/externaltool/external-tool.repo.spec.ts b/apps/server/src/shared/repo/externaltool/external-tool.repo.spec.ts index 7f107ac31cb..94ce2cdcc75 100644 --- a/apps/server/src/shared/repo/externaltool/external-tool.repo.spec.ts +++ b/apps/server/src/shared/repo/externaltool/external-tool.repo.spec.ts @@ -1,3 +1,4 @@ +import { LegacyLogger } from '@core/logger'; import { createMock } from '@golevelup/ts-jest'; import { MongoMemoryDatabaseModule } from '@infra/database'; import { EntityManager } from '@mikro-orm/mongodb'; @@ -17,8 +18,7 @@ import { externalToolEntityFactory, externalToolFactory } from '@modules/tool/ex import { Test, TestingModule } from '@nestjs/testing'; import { Page } from '@shared/domain/domainobject'; import { IFindOptions, SortOrder } from '@shared/domain/interface'; -import { ExternalToolRepo, ExternalToolRepoMapper } from '@shared/repo'; -import { LegacyLogger } from '@core/logger'; +import { ExternalToolRepo, ExternalToolRepoMapper } from '@shared/repo/externaltool'; import { cleanupCollections } from '@testing/cleanup-collections'; describe(ExternalToolRepo.name, () => { diff --git a/apps/server/src/shared/repo/externaltool/external-tool.repo.ts b/apps/server/src/shared/repo/externaltool/external-tool.repo.ts index 751e96da0f5..a277e722e4a 100644 --- a/apps/server/src/shared/repo/externaltool/external-tool.repo.ts +++ b/apps/server/src/shared/repo/externaltool/external-tool.repo.ts @@ -7,7 +7,8 @@ import { ExternalToolEntity, ExternalToolEntityProps } from '@modules/tool/exter import { Injectable } from '@nestjs/common/decorators/core/injectable.decorator'; import { Page } from '@shared/domain/domainobject'; import { IFindOptions, Pagination, SortOrder } from '@shared/domain/interface'; -import { ExternalToolRepoMapper, ExternalToolSortingMapper, Scope } from '@shared/repo'; +import { ExternalToolRepoMapper, ExternalToolSortingMapper } from '@shared/repo/externaltool'; +import { Scope } from '@shared/repo/scope'; import { EntityId } from '../../domain/types'; import { ExternalToolScope } from './external-tool.scope'; diff --git a/apps/server/src/shared/repo/index.ts b/apps/server/src/shared/repo/index.ts index 9bcf81778ed..6ace271ede5 100644 --- a/apps/server/src/shared/repo/index.ts +++ b/apps/server/src/shared/repo/index.ts @@ -1,30 +1,3 @@ -/** - * Shared repository models, consists of entities and interfaces. - * Repositories must provide their own interfaces. - * It is forbidden to reuse existing ones from different layers. - */ - -export * from './base.do.repo'; -export * from './base.repo'; -export * from './legacy-board'; -export * from './course'; -export * from './coursegroup'; -export * from './dashboard'; -export * from './federalstate'; -export * from './ltitool'; -export * from './materials'; -export * from './mongo.patterns'; -export * from './news'; -export * from './role'; -export * from './school'; -export * from './schoolexternaltool'; -export * from './scope'; -export * from './submission'; -export * from './task'; -export * from './teams'; -export * from './user'; -export * from './userloginmigration'; -export * from './videoconference'; -export * from './contextexternaltool'; -export * from './externaltool'; -export { MongoDbScope, ScopeAggregateResult } from './mongodb-scope'; +/** ************************************************* + * Do not re-export here! File should be empty! * + ************************************************** */ diff --git a/apps/server/src/shared/repo/teams/team.repo.integration.spec.ts b/apps/server/src/shared/repo/teams/team.repo.integration.spec.ts index acf6e5271b5..3e3cdd86d45 100644 --- a/apps/server/src/shared/repo/teams/team.repo.integration.spec.ts +++ b/apps/server/src/shared/repo/teams/team.repo.integration.spec.ts @@ -4,7 +4,7 @@ import { EntityManager, ObjectId } from '@mikro-orm/mongodb'; import { Test, TestingModule } from '@nestjs/testing'; import { TeamEntity, TeamUserEntity } from '@shared/domain/entity'; import { EntityId } from '@shared/domain/types'; -import { TeamsRepo } from '@shared/repo'; +import { TeamsRepo } from '@shared/repo/teams'; import { cleanupCollections } from '@testing/cleanup-collections'; import { roleFactory } from '@testing/factory/role.factory'; import { teamFactory } from '@testing/factory/team.factory'; diff --git a/apps/server/src/shared/repo/user/user-do.repo.integration.spec.ts b/apps/server/src/shared/repo/user/user-do.repo.integration.spec.ts index e6c999a8460..f18314d98f7 100644 --- a/apps/server/src/shared/repo/user/user-do.repo.integration.spec.ts +++ b/apps/server/src/shared/repo/user/user-do.repo.integration.spec.ts @@ -6,7 +6,7 @@ import { MultipleUsersFoundLoggableException } from '@modules/oauth/loggable'; import { SystemEntity } from '@modules/system/entity'; import { UserDiscoverableQuery, UserQuery } from '@modules/user/service/user-query.type'; import { Test, TestingModule } from '@nestjs/testing'; -import { EntityNotFoundError } from '@shared/common'; +import { EntityNotFoundError } from '@shared/common/error'; import { RoleReference } from '@shared/domain/domainobject'; import { Page } from '@shared/domain/domainobject/page'; import { UserSourceOptions } from '@shared/domain/domainobject/user-source-options.do'; diff --git a/apps/server/src/shared/repo/user/user-do.repo.ts b/apps/server/src/shared/repo/user/user-do.repo.ts index 54a4e3a4e0f..9af2d20470a 100644 --- a/apps/server/src/shared/repo/user/user-do.repo.ts +++ b/apps/server/src/shared/repo/user/user-do.repo.ts @@ -2,7 +2,7 @@ import { EntityData, EntityName, FilterQuery, QueryOrderMap } from '@mikro-orm/c import { MultipleUsersFoundLoggableException } from '@modules/oauth/loggable'; import { UserQuery } from '@modules/user/service/user-query.type'; import { Injectable } from '@nestjs/common'; -import { EntityNotFoundError } from '@shared/common'; +import { EntityNotFoundError } from '@shared/common/error'; import { Page, RoleReference } from '@shared/domain/domainobject'; import { UserSourceOptions } from '@shared/domain/domainobject/user-source-options.do'; import { SecondarySchoolReference, UserDO } from '@shared/domain/domainobject/user.do'; @@ -10,7 +10,8 @@ import { Role, SchoolEntity, User, UserSchoolEmbeddable } from '@shared/domain/e import { UserSourceOptionsEntity } from '@shared/domain/entity/user-source-options-entity'; import { IFindOptions, Pagination, SortOrder, SortOrderMap } from '@shared/domain/interface'; import { EntityId } from '@shared/domain/types'; -import { BaseDORepo, Scope } from '@shared/repo'; +import { BaseDORepo } from '@shared/repo/base.do.repo'; +import { Scope } from '@shared/repo/scope'; import { UserScope } from './user.scope'; @Injectable() diff --git a/apps/server/src/shared/repo/user/user.scope.ts b/apps/server/src/shared/repo/user/user.scope.ts index 4e23b8394e6..6073e8a36d7 100644 --- a/apps/server/src/shared/repo/user/user.scope.ts +++ b/apps/server/src/shared/repo/user/user.scope.ts @@ -1,7 +1,7 @@ import { UserDiscoverableQuery } from '@modules/user/service/user-query.type'; import { User } from '@shared/domain/entity'; import { EntityId } from '@shared/domain/types'; -import { MongoPatterns } from '@shared/repo'; +import { MongoPatterns } from '@shared/repo/mongo.patterns'; import { Scope } from '@shared/repo/scope'; export class UserScope extends Scope { diff --git a/apps/server/src/shared/repo/videoconference/video-conference.repo.spec.ts b/apps/server/src/shared/repo/videoconference/video-conference.repo.spec.ts index 3843f0cda92..b28310479e4 100644 --- a/apps/server/src/shared/repo/videoconference/video-conference.repo.spec.ts +++ b/apps/server/src/shared/repo/videoconference/video-conference.repo.spec.ts @@ -1,3 +1,4 @@ +import { LegacyLogger } from '@core/logger'; import { createMock } from '@golevelup/ts-jest'; import { MongoMemoryDatabaseModule } from '@infra/database'; import { EntityData, NotFoundError } from '@mikro-orm/core'; @@ -6,8 +7,7 @@ import { Test, TestingModule } from '@nestjs/testing'; import { VideoConferenceDO, VideoConferenceOptionsDO } from '@shared/domain/domainobject'; import { TargetModels, VideoConference, VideoConferenceOptions } from '@shared/domain/entity'; import { VideoConferenceScope } from '@shared/domain/interface'; -import { VideoConferenceRepo } from '@shared/repo'; -import { LegacyLogger } from '@core/logger'; +import { VideoConferenceRepo } from '@shared/repo/videoconference'; import { cleanupCollections } from '@testing/cleanup-collections'; import { videoConferenceFactory } from '@testing/factory/video-conference.factory'; diff --git a/apps/server/src/shared/types/index.ts b/apps/server/src/shared/types/index.ts index caf1605dc82..6ace271ede5 100644 --- a/apps/server/src/shared/types/index.ts +++ b/apps/server/src/shared/types/index.ts @@ -1 +1,3 @@ -export * from './crud-operation.enum'; +/** ************************************************* + * Do not re-export here! File should be empty! * + ************************************************** */ diff --git a/config/README.md b/config/README.md index c45f86ae1ac..eb45adb088f 100644 --- a/config/README.md +++ b/config/README.md @@ -162,7 +162,7 @@ This code shows a minimal flow. import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import serverConfig from './server.config'; - import { createConfigModuleOptions } from '@shared/common'; + import { createConfigModuleOptions } from '@shared/common/config-module-options'; const serverModules = [ From 717b8079026afa611244d30e75ef781ac9329244 Mon Sep 17 00:00:00 2001 From: Thomas Feldtkeller Date: Thu, 23 Jan 2025 11:08:08 +0100 Subject: [PATCH 15/16] import fix after merge conflict --- .../api/loggables/cant-change-roomowners-role.error.loggable.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/server/src/modules/room/api/loggables/cant-change-roomowners-role.error.loggable.ts b/apps/server/src/modules/room/api/loggables/cant-change-roomowners-role.error.loggable.ts index 26a281059db..fc2ca7ea71a 100644 --- a/apps/server/src/modules/room/api/loggables/cant-change-roomowners-role.error.loggable.ts +++ b/apps/server/src/modules/room/api/loggables/cant-change-roomowners-role.error.loggable.ts @@ -1,5 +1,5 @@ import { BadRequestException } from '@nestjs/common'; -import { ErrorLogMessage } from '@shared/common'; +import { ErrorLogMessage } from '@shared/common/error'; import { Loggable } from '@shared/common/loggable'; export class CantChangeOwnersRoleLoggableException extends BadRequestException implements Loggable { From 34ac7f2c44c3c5cfc4cd2206be5b2ff5b233176c Mon Sep 17 00:00:00 2001 From: Thomas Feldtkeller Date: Thu, 23 Jan 2025 14:31:23 +0100 Subject: [PATCH 16/16] more import fixes... --- .../room-membership/service/room-membership.service.spec.ts | 2 +- .../src/modules/room/api/test/room-change-role.api.spec.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/server/src/modules/room-membership/service/room-membership.service.spec.ts b/apps/server/src/modules/room-membership/service/room-membership.service.spec.ts index 9ab0cceb732..3be7d286a1b 100644 --- a/apps/server/src/modules/room-membership/service/room-membership.service.spec.ts +++ b/apps/server/src/modules/room-membership/service/room-membership.service.spec.ts @@ -4,7 +4,7 @@ import { Group, GroupService, GroupTypes, GroupUser } from '@modules/group'; import { groupFactory } from '@modules/group/testing'; import { RoleDto, RoleService } from '@modules/role'; import { roleDtoFactory } from '@modules/role/testing'; -import { RoomService } from '@modules/room/domain'; +import { RoomService } from '@modules/room'; import { roomFactory } from '@modules/room/testing'; import { schoolFactory } from '@modules/school/testing'; import { UserService } from '@modules/user'; diff --git a/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts b/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts index b35c66e52c0..0f1e855dccb 100644 --- a/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts +++ b/apps/server/src/modules/room/api/test/room-change-role.api.spec.ts @@ -1,16 +1,16 @@ import { EntityManager } from '@mikro-orm/mongodb'; import { GroupEntityTypes } from '@modules/group/entity/group.entity'; +import { groupEntityFactory } from '@modules/group/testing'; +import { roomMembershipEntityFactory } from '@modules/room-membership/testing/room-membership-entity.factory'; import { ServerTestModule, serverConfig, type ServerConfig } from '@modules/server'; import { HttpStatus, INestApplication } from '@nestjs/common'; import { Test } from '@nestjs/testing'; import { RoleName } from '@shared/domain/interface/rolename.enum'; -import { roomMembershipEntityFactory } from '@modules/room-membership/testing/room-membership-entity.factory'; -import { groupEntityFactory } from '@testing/factory/group-entity.factory'; +import { cleanupCollections } from '@testing/cleanup-collections'; import { roleFactory } from '@testing/factory/role.factory'; import { schoolEntityFactory } from '@testing/factory/school-entity.factory'; import { UserAndAccountTestFactory } from '@testing/factory/user-and-account.test.factory'; import { userFactory } from '@testing/factory/user.factory'; -import { cleanupCollections } from '@testing/cleanup-collections'; import { TestApiClient } from '@testing/test-api-client'; import { roomEntityFactory } from '../../testing/room-entity.factory'; import { RoomRolesTestFactory } from '../../testing/room-roles.test.factory';