Skip to content

Commit

Permalink
Feature :: 맴버 추방하면 프로필도 삭제 되도록
Browse files Browse the repository at this point in the history
  • Loading branch information
yeseong0412 committed Oct 19, 2024
1 parent db97d95 commit 8db6577
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 6 deletions.
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package com.seugi.api.domain.profile.adapter.out

import com.seugi.api.domain.member.adapter.out.repository.MemberRepository
import com.seugi.api.domain.profile.adapter.out.repository.ProfileRepository
import com.seugi.api.domain.member.application.exception.MemberErrorCode
import com.seugi.api.domain.profile.adapter.out.mapper.ProfileMapper
import com.seugi.api.domain.profile.adapter.out.repository.ProfileRepository
import com.seugi.api.domain.profile.application.exception.ProfileErrorCode
import com.seugi.api.domain.profile.application.model.Profile
import com.seugi.api.domain.profile.application.port.out.DeleteProfileUseCase
import com.seugi.api.domain.profile.application.port.out.ExistProfilePort
import com.seugi.api.domain.profile.application.port.out.LoadProfilePort
import com.seugi.api.domain.profile.application.port.out.SaveProfilePort
Expand All @@ -17,8 +18,8 @@ import org.springframework.stereotype.Component
class ProfileAdapter(
private val memberRepository: MemberRepository,
private val profileRepository: ProfileRepository,
private val profileMapper: ProfileMapper
) : LoadProfilePort, SaveProfilePort, ExistProfilePort {
private val profileMapper: ProfileMapper,
) : LoadProfilePort, SaveProfilePort, ExistProfilePort, DeleteProfileUseCase {

override fun loadProfile(memberId: Long, workspaceId: String): Profile {
val memberEntity = memberRepository.findByIdOrNull(memberId)
Expand All @@ -43,4 +44,11 @@ class ProfileAdapter(
return profileRepository.existsByMemberAndWorkspaceId(memberEntity, workspaceId)
}

override fun deleteProfile(memberId: Long, workspaceId: String) {
val memberEntity = memberRepository.findByIdOrNull(memberId)
?: throw CustomException(MemberErrorCode.MEMBER_NOT_FOUND)
val profile = profileRepository.findByMemberAndWorkspaceId(memberEntity, workspaceId)
profileRepository.delete(profile!!)
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@ import com.seugi.api.domain.workspace.domain.enums.WorkspaceRole
interface ManageProfileUseCase {

fun manageProfile(memberId: Long, workspaceId: String, permission: WorkspaceRole)
fun deleteProfile(memberId: Long, workspaceId: String)

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.seugi.api.domain.profile.application.port.out

interface DeleteProfileUseCase {
fun deleteProfile(memberId: Long, workspaceId: String)
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import com.seugi.api.domain.profile.application.model.Profile
import com.seugi.api.domain.profile.application.model.value.ProfilePermission
import com.seugi.api.domain.profile.application.model.value.ProfileWorkspaceId
import com.seugi.api.domain.profile.application.port.`in`.ManageProfileUseCase
import com.seugi.api.domain.profile.application.port.out.DeleteProfileUseCase
import com.seugi.api.domain.profile.application.port.out.ExistProfilePort
import com.seugi.api.domain.profile.application.port.out.LoadProfilePort
import com.seugi.api.domain.profile.application.port.out.SaveProfilePort
Expand All @@ -18,6 +19,7 @@ class ManageProfileService(
private val loadMemberPort: LoadMemberPort,
private val loaProfilePort: LoadProfilePort,
private val saveProfilePort: SaveProfilePort,
private val deleteProfileUseCase: DeleteProfileUseCase,
) : ManageProfileUseCase {

override fun manageProfile(memberId: Long, workspaceId: String, permission: WorkspaceRole) {
Expand All @@ -30,6 +32,10 @@ class ManageProfileService(
}
}

override fun deleteProfile(memberId: Long, workspaceId: String) {
deleteProfileUseCase.deleteProfile(memberId, workspaceId)
}

private fun updateExistingProfile(memberId: Long, workspaceId: String, permission: WorkspaceRole) {
val profile = loaProfilePort.loadProfile(memberId, workspaceId)
profile.changeRole(ProfilePermission(permission))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package com.seugi.api.domain.workspace.service
import com.seugi.api.domain.member.adapter.`in`.dto.res.RetrieveMemberResponse
import com.seugi.api.domain.member.application.port.out.LoadMemberPort
import com.seugi.api.domain.profile.adapter.`in`.response.RetrieveProfileResponse
import com.seugi.api.domain.profile.adapter.out.ProfileAdapter
import com.seugi.api.domain.profile.application.port.`in`.ManageProfileUseCase
import com.seugi.api.domain.profile.application.port.out.LoadProfilePort
import com.seugi.api.domain.workspace.domain.WorkspaceRepository
Expand Down Expand Up @@ -36,6 +37,7 @@ class WorkspaceServiceImpl(
private val loadMemberPort: LoadMemberPort,
private val niceSchoolService: NiceSchoolService,
private val fcmService: FCMService,
private val profileAdapter: ProfileAdapter,
) : WorkspaceService {

private fun genCode(length: Int = 6): String {
Expand Down Expand Up @@ -486,11 +488,12 @@ class WorkspaceServiceImpl(
)

kickWorkspaceMember.memberList?.forEach {
workspaceEntity.student.remove(it)
workspaceEntity.teacher.remove(it)
if (!workspaceEntity.middleAdmin.contains(it)) workspaceEntity.middleAdmin.remove(it)
if (!workspaceEntity.middleAdmin.contains(it)) removeUserFromWorkspace(it, workspaceEntity)
profileAdapter.deleteProfile(it, kickWorkspaceMember.workspaceId ?: "")
}



workspaceRepository.save(workspaceEntity)
return BaseResponse(
message = "맴버 추방 성공"
Expand Down

0 comments on commit 8db6577

Please sign in to comment.