From 81d95325ecd6f6df900fd585c4a0e4cfc5d33c24 Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Wed, 4 Jan 2023 16:43:26 +0900 Subject: [PATCH 01/37] =?UTF-8?q?chore:=20(#278)=20value=20=ED=8C=A8?= =?UTF-8?q?=ED=82=A4=EC=A7=80=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../team/comit/simtong/domain/holiday/WebHolidayAdapter.kt | 6 +++--- .../holiday/{dto/request => value}/WebHolidayQueryType.kt | 4 ++-- .../holiday/{dto/request => value}/WebHolidayStatus.kt | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) rename simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/{dto/request => value}/WebHolidayQueryType.kt (80%) rename simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/{dto/request => value}/WebHolidayStatus.kt (80%) diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/WebHolidayAdapter.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/WebHolidayAdapter.kt index ab221d6f..56ed4ddc 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/WebHolidayAdapter.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/WebHolidayAdapter.kt @@ -20,8 +20,6 @@ import team.comit.simtong.domain.holiday.dto.request.AppointHolidayWebRequest import team.comit.simtong.domain.holiday.dto.request.CancelHolidayWebRequest import team.comit.simtong.domain.holiday.dto.request.ChangeEmployeeHolidayWebRequest import team.comit.simtong.domain.holiday.dto.request.ShareHolidayWebRequest -import team.comit.simtong.domain.holiday.dto.request.WebHolidayQueryType -import team.comit.simtong.domain.holiday.dto.request.WebHolidayStatus import team.comit.simtong.domain.holiday.dto.response.QueryRemainAnnualWebResponse import team.comit.simtong.domain.holiday.usecase.AppointAnnualUseCase import team.comit.simtong.domain.holiday.usecase.AppointHolidayPeriodUseCase @@ -34,6 +32,8 @@ import team.comit.simtong.domain.holiday.usecase.QueryIndividualHolidayUseCase import team.comit.simtong.domain.holiday.usecase.QueryMonthHolidayPeriodUseCase import team.comit.simtong.domain.holiday.usecase.QueryRemainAnnualUseCase import team.comit.simtong.domain.holiday.usecase.ShareHolidayUseCase +import team.comit.simtong.domain.holiday.value.WebHolidayQueryType +import team.comit.simtong.domain.holiday.value.WebHolidayStatus import java.time.LocalDate import java.util.UUID import javax.validation.Valid @@ -45,7 +45,7 @@ import javax.validation.Valid * @author Chokyunghyeon * @author kimbeomjin * @date 2022/12/03 - * @version 1.0.0 + * @version 1.2.3 **/ @RestController @RequestMapping("/holidays") diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/dto/request/WebHolidayQueryType.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/value/WebHolidayQueryType.kt similarity index 80% rename from simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/dto/request/WebHolidayQueryType.kt rename to simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/value/WebHolidayQueryType.kt index d61f5c80..28700249 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/dto/request/WebHolidayQueryType.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/value/WebHolidayQueryType.kt @@ -1,4 +1,4 @@ -package team.comit.simtong.domain.holiday.dto.request +package team.comit.simtong.domain.holiday.value /** * @@ -6,7 +6,7 @@ package team.comit.simtong.domain.holiday.dto.request * * @author kimbeomjin * @date 2022/12/22 - * @version 1.0.0 + * @version 1.2.3 **/ enum class WebHolidayQueryType { diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/dto/request/WebHolidayStatus.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/value/WebHolidayStatus.kt similarity index 80% rename from simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/dto/request/WebHolidayStatus.kt rename to simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/value/WebHolidayStatus.kt index 8815aba2..35add38a 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/dto/request/WebHolidayStatus.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/value/WebHolidayStatus.kt @@ -1,4 +1,4 @@ -package team.comit.simtong.domain.holiday.dto.request +package team.comit.simtong.domain.holiday.value /** * @@ -6,7 +6,7 @@ package team.comit.simtong.domain.holiday.dto.request * * @author Chokyunghyeon * @date 2022/12/21 - * @version 1.0.0 + * @version 1.2.3 **/ enum class WebHolidayStatus { From 13d1babb8eca0883ac541fd53a23d58cb738d5c9 Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Wed, 4 Jan 2023 16:44:23 +0900 Subject: [PATCH 02/37] =?UTF-8?q?refactor:=20(#278)=20=EC=83=81=EC=88=98?= =?UTF-8?q?=EB=A1=9C=20=EB=AA=85=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../thirdparty/notification/FcmAdapter.kt | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/thirdparty/notification/FcmAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/thirdparty/notification/FcmAdapter.kt index 255a0b76..b946ce06 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/thirdparty/notification/FcmAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/thirdparty/notification/FcmAdapter.kt @@ -16,8 +16,9 @@ import java.util.UUID * FCM 메시지를 전송하는 FcmAdapter * * @author kimbeomjin + * @author Chokyunghyeon * @date 2022/12/27 - * @version 1.1.0 + * @version 1.2.3 **/ @Component class FcmAdapter : SendPushMessagePort { @@ -25,8 +26,8 @@ class FcmAdapter : SendPushMessagePort { override fun sendMessage(token: String, title: String, content: String, type: NotificationType, identify: UUID?) { val message = Message.builder() .setToken(token) - .putData("type", type.name) - .putData("identify", identify.toString()) + .putData(TYPE, type.name) + .putData(IDENTIFY, identify.toString()) .setNotification( Notification.builder() .setTitle(title) @@ -35,7 +36,7 @@ class FcmAdapter : SendPushMessagePort { ) .setApnsConfig( ApnsConfig.builder() - .setAps(Aps.builder().setSound("default").build()) + .setAps(Aps.builder().setSound(SOUND).build()) .build() ) .build() @@ -46,8 +47,8 @@ class FcmAdapter : SendPushMessagePort { override fun sendMessage(tokens: List, title: String, content: String, type: NotificationType, identify: UUID?) { val multicastMessage = MulticastMessage.builder() .addAllTokens(tokens) - .putData("type", type.name) - .putData("identify", identify.toString()) + .putData(TYPE, type.name) + .putData(IDENTIFY, identify.toString()) .setNotification( Notification.builder() .setTitle(title) @@ -56,11 +57,18 @@ class FcmAdapter : SendPushMessagePort { ) .setApnsConfig( ApnsConfig.builder() - .setAps(Aps.builder().setSound("default").build()) + .setAps(Aps.builder().setSound(SOUND).build()) .build() ) .build() FirebaseMessaging.getInstance().sendMulticastAsync(multicastMessage) } + + companion object { + private const val TYPE = "type" + private const val IDENTIFY = "identify" + + private const val SOUND = "default" + } } \ No newline at end of file From 7b987c12a1e967dd803ac44cf4f4be56f66e9d74 Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Wed, 4 Jan 2023 16:45:19 +0900 Subject: [PATCH 03/37] =?UTF-8?q?style:=20(#278)=20Enum=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EC=BB=A8=EB=B2=A4=EC=85=98=20=EC=9C=84=EB=B0=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../team/comit/simtong/thirdparty/email/AwsSESAdapter.kt | 4 ++-- .../comit/simtong/thirdparty/email/template/MailTemplate.kt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/thirdparty/email/AwsSESAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/thirdparty/email/AwsSESAdapter.kt index ba150c8a..0f49de69 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/thirdparty/email/AwsSESAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/thirdparty/email/AwsSESAdapter.kt @@ -15,7 +15,7 @@ import team.comit.simtong.thirdparty.email.template.MailTemplate * @author Chokyunghyeon * @author kimbeomjin * @date 2022/09/08 - * @version 1.0.0 + * @version 1.2.3 **/ @Component class AwsSESAdapter( @@ -30,7 +30,7 @@ class AwsSESAdapter( ) sendEmail( - mailTemplate = MailTemplate.AuthCode, + mailTemplate = MailTemplate.AUTHCODE, data = templateData, email ) diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/thirdparty/email/template/MailTemplate.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/thirdparty/email/template/MailTemplate.kt index 1c1ef161..b47b1ec0 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/thirdparty/email/template/MailTemplate.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/thirdparty/email/template/MailTemplate.kt @@ -6,12 +6,12 @@ package team.comit.simtong.thirdparty.email.template * * @author Chokyunghyeon * @date 2022/09/08 - * @version 1.0.0 + * @version 1.2.3 **/ enum class MailTemplate( val templateName: String ) { - AuthCode("SIMTONG_SIGNUP_TEMPLATE") + AUTHCODE("SIMTONG_SIGNUP_TEMPLATE") } \ No newline at end of file From 8721dba80902654a5d7948dbdd6b0e8718b5f0cd Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Wed, 4 Jan 2023 16:47:23 +0900 Subject: [PATCH 04/37] =?UTF-8?q?feat:=20(#278)=20spot=20name,=20location?= =?UTF-8?q?=20&=20team=20name=20unique=20=EC=BB=AC=EB=9F=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../comit/simtong/persistence/spot/entity/SpotJpaEntity.kt | 6 +++--- .../comit/simtong/persistence/team/entity/TeamJpaEntity.kt | 6 ++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/spot/entity/SpotJpaEntity.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/spot/entity/SpotJpaEntity.kt index af216137..a281443d 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/spot/entity/SpotJpaEntity.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/spot/entity/SpotJpaEntity.kt @@ -12,16 +12,16 @@ import javax.persistence.Table * * @author kimbeomjin * @date 2022/08/21 - * @version 1.0.0 + * @version 1.2.3 **/ @Entity @Table(name = "tbl_spot") class SpotJpaEntity( override val id: UUID?, - @Column(columnDefinition = "VARCHAR(20)", nullable = false) + @Column(columnDefinition = "VARCHAR(20)", unique = true, nullable = false) val name: String, - @Column(columnDefinition = "VARCHAR(40)", nullable = false) + @Column(columnDefinition = "VARCHAR(40)", unique = true, nullable = false) val location: String ) : BaseUUIDEntity(id) \ No newline at end of file diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/team/entity/TeamJpaEntity.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/team/entity/TeamJpaEntity.kt index ff05d14a..28b01f7a 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/team/entity/TeamJpaEntity.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/team/entity/TeamJpaEntity.kt @@ -3,7 +3,8 @@ package team.comit.simtong.persistence.team.entity import org.hibernate.validator.constraints.Length import team.comit.simtong.persistence.BaseUUIDEntity import team.comit.simtong.persistence.spot.entity.SpotJpaEntity -import java.util.* +import java.util.UUID +import javax.persistence.Column import javax.persistence.Entity import javax.persistence.FetchType import javax.persistence.JoinColumn @@ -17,7 +18,7 @@ import javax.validation.constraints.NotNull * * @author kimbeomjin * @date 2022/08/21 - * @version 1.0.0 + * @version 1.2.3 **/ @Entity @Table(name = "tbl_team") @@ -26,6 +27,7 @@ class TeamJpaEntity( @field:NotNull @field:Length(max = 8) + @Column(unique = true) val name: String, @field:NotNull From 35c5fcba6ff832a1bcecd1b9fe4818cc35919836 Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Wed, 4 Jan 2023 16:50:05 +0900 Subject: [PATCH 05/37] =?UTF-8?q?refactor:=20(#278)=20=EB=A9=94=EC=84=9C?= =?UTF-8?q?=EB=93=9C=20=EC=B0=B8=EC=A1=B0=20=EC=A7=80=ED=96=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/AuthCodeLimitPersistenceAdapter.kt | 4 ++-- .../auth/AuthCodePersistenceAdapter.kt | 4 ++-- .../EmployeeCertificatePersistenceAdapter.kt | 10 ++++++---- .../holiday/HolidayPeriodPersistenceAdapter.kt | 4 ++-- .../holiday/HolidayPersistenceAdapter.kt | 16 ++++++++-------- .../persistence/menu/MenuPersistenceAdapter.kt | 12 ++++++------ .../NotificationPersistenceAdapter.kt | 15 ++++++++------- .../schedule/SchedulePersistenceAdapter.kt | 8 ++++---- .../persistence/spot/SpotPersistenceAdapter.kt | 6 +++--- .../persistence/team/TeamPersistenceAdapter.kt | 5 +++-- .../persistence/user/UserPersistenceAdapter.kt | 12 ++++++------ 11 files changed, 50 insertions(+), 46 deletions(-) diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/auth/AuthCodeLimitPersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/auth/AuthCodeLimitPersistenceAdapter.kt index 5a0bd80e..dcce6fa1 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/auth/AuthCodeLimitPersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/auth/AuthCodeLimitPersistenceAdapter.kt @@ -14,7 +14,7 @@ import team.comit.simtong.persistence.auth.repository.AuthCodeLimitRepository * @author Chokyunghyeon * @author kimbeomjin * @date 2022/09/09 - * @version 1.0.0 + * @version 1.2.3 **/ @Component class AuthCodeLimitPersistenceAdapter( @@ -30,7 +30,7 @@ class AuthCodeLimitPersistenceAdapter( override fun save(authCodeLimit: AuthCodeLimit): AuthCodeLimit { return authCodeLimitRepository.save( authCodeLimitMapper.toEntity(authCodeLimit) - ).let { authCodeLimitMapper.toDomain(it)!! } + ).let(authCodeLimitMapper::toDomain)!! } override fun delete(authCodeLimit: AuthCodeLimit) { diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/auth/AuthCodePersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/auth/AuthCodePersistenceAdapter.kt index a7852ac1..4d903306 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/auth/AuthCodePersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/auth/AuthCodePersistenceAdapter.kt @@ -13,7 +13,7 @@ import team.comit.simtong.persistence.auth.repository.AuthCodeRepository * * @author Chokyunghyeon * @date 2022/09/25 - * @version 1.0.0 + * @version 1.2.3 **/ @Component class AuthCodePersistenceAdapter( @@ -29,7 +29,7 @@ class AuthCodePersistenceAdapter( override fun save(authCode: AuthCode): AuthCode { return authCodeRepository.save( authCodeMapper.toEntity(authCode) - ).let { authCodeMapper.toDomain(it)!! } + ).let(authCodeMapper::toDomain)!! } } \ No newline at end of file diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/file/EmployeeCertificatePersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/file/EmployeeCertificatePersistenceAdapter.kt index 7a552b83..d8fa1914 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/file/EmployeeCertificatePersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/file/EmployeeCertificatePersistenceAdapter.kt @@ -11,7 +11,7 @@ import team.comit.simtong.persistence.file.mapper.EmployeeCertificateMapper * * @author Chokyunghyeon * @date 2022/12/06 - * @version 1.0.0 + * @version 1.2.3 **/ @Component class EmployeeCertificatePersistenceAdapter( @@ -26,10 +26,12 @@ class EmployeeCertificatePersistenceAdapter( return employeeCertificateJpaRepository.existsByNameAndEmployeeNumber(name, employeeNumber) } - override fun saveAll(employeeCertificates: List) { - employeeCertificateJpaRepository.saveAll( + override fun saveAll( + employeeCertificates: List + ) : List { + return employeeCertificateJpaRepository.saveAll( employeeCertificates.map(employeeCertificateMapper::toEntity) - ) + ).mapNotNull(employeeCertificateMapper::toDomain) } override fun queryEmployeeCertificateByNameAndEmployeeNumber( diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/HolidayPeriodPersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/HolidayPeriodPersistenceAdapter.kt index 1b11c9d5..4a0029e6 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/HolidayPeriodPersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/HolidayPeriodPersistenceAdapter.kt @@ -18,7 +18,7 @@ import java.util.UUID * * @author Chokyunghyeon * @date 2022/12/20 - * @version 1.0.1 + * @version 1.2.3 **/ @Component class HolidayPeriodPersistenceAdapter( @@ -50,7 +50,7 @@ class HolidayPeriodPersistenceAdapter( override fun save(holidayPeriod: HolidayPeriod): HolidayPeriod { return holidayPeriodJpaRepository.save( holidayPeriodMapper.toEntity(holidayPeriod) - ).let { holidayPeriodMapper.toDomain(it)!! } + ).let(holidayPeriodMapper::toDomain)!! } } \ No newline at end of file diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/HolidayPersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/HolidayPersistenceAdapter.kt index 804627c7..7b25d987 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/HolidayPersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/HolidayPersistenceAdapter.kt @@ -1,9 +1,9 @@ package team.comit.simtong.persistence.holiday import team.comit.simtong.persistence.holiday.entity.QHolidayJpaEntity.holidayJpaEntity as holiday -import team.comit.simtong.persistence.user.entity.QUserJpaEntity.userJpaEntity as user import team.comit.simtong.persistence.spot.entity.QSpotJpaEntity.spotJpaEntity as spot import team.comit.simtong.persistence.team.entity.QTeamJpaEntity.teamJpaEntity as team +import team.comit.simtong.persistence.user.entity.QUserJpaEntity.userJpaEntity as user import com.querydsl.core.types.dsl.BooleanExpression import com.querydsl.jpa.impl.JPAQueryFactory import org.springframework.data.repository.findByIdOrNull @@ -29,7 +29,7 @@ import java.util.UUID * @author Chokyunghyeon * @author kimbeomjin * @date 2022/12/02 - * @version 1.0.0 + * @version 1.2.3 **/ @Component class HolidayPersistenceAdapter( @@ -83,7 +83,7 @@ class HolidayPersistenceAdapter( ) .orderBy(holiday.id.date.asc()) .fetch() - .map { holidayMapper.toDomain(it)!! } + .mapNotNull(holidayMapper::toDomain) } override fun queryHolidaysByYearAndMonthAndTeamId( @@ -134,7 +134,7 @@ class HolidayPersistenceAdapter( holiday.status.eq(HolidayStatus.WRITTEN) ) .fetch() - .map { holidayMapper.toDomain(it)!! } + .mapNotNull(holidayMapper::toDomain) } override fun existsHolidayByDateAndUserIdAndType(date: LocalDate, userId: UUID, type: HolidayType): Boolean { @@ -150,13 +150,13 @@ class HolidayPersistenceAdapter( override fun save(holiday: Holiday): Holiday { return holidayJpaRepository.save( holidayMapper.toEntity(holiday) - ).let { holidayMapper.toDomain(it)!! } + ).let(holidayMapper::toDomain)!! } - override fun saveAll(holidays: List) { - holidayJpaRepository.saveAll( + override fun saveAll(holidays: List): List { + return holidayJpaRepository.saveAll( holidays.map(holidayMapper::toEntity) - ) + ).mapNotNull(holidayMapper::toDomain) } override fun delete(holiday: Holiday) { diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/menu/MenuPersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/menu/MenuPersistenceAdapter.kt index bfce9239..1fac625e 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/menu/MenuPersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/menu/MenuPersistenceAdapter.kt @@ -18,7 +18,7 @@ import java.util.UUID * @author kimbeomjin * @author Chokyunghyeon * @date 2022/09/20 - * @version 1.0.0 + * @version 1.2.3 **/ @Component class MenuPersistenceAdapter( @@ -46,7 +46,7 @@ class MenuPersistenceAdapter( ) .orderBy(menu.menuId.date.asc()) .fetch() - .map { menuMapper.toDomain(it)!! } + .mapNotNull(menuMapper::toDomain) } override fun queryMenusByPeriodAndSpotName(startAt: LocalDate, endAt: LocalDate, spotName: String): List { @@ -58,13 +58,13 @@ class MenuPersistenceAdapter( ) .orderBy(menu.menuId.date.asc()) .fetch() - .map { menuMapper.toDomain(it)!! } + .mapNotNull(menuMapper::toDomain) } - override fun saveAll(menus: List) { - menuRepository.saveAll( + override fun saveAll(menus: List) : List { + return menuRepository.saveAll( menus.map(menuMapper::toEntity) - ) + ).mapNotNull(menuMapper::toDomain) } } \ No newline at end of file diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/notification/NotificationPersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/notification/NotificationPersistenceAdapter.kt index 4f0742ea..e60cfc5c 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/notification/NotificationPersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/notification/NotificationPersistenceAdapter.kt @@ -15,7 +15,7 @@ import team.comit.simtong.persistence.notification.repository.NotificationReceiv * * @author kimbeomjin * @date 2022/12/30 - * @version 1.1.0 + * @version 1.2.3 **/ @Component class NotificationPersistenceAdapter( @@ -24,21 +24,22 @@ class NotificationPersistenceAdapter( private val notificationReceiverMapper: NotificationReceiverMapper, private val notificationReceiverRepository: NotificationReceiverJpaRepository ) : NotificationPort { + override fun saveNotification(notification: Notification): Notification { return notificationRepository.save( notificationMapper.toEntity(notification) - ).let { notificationMapper.toDomain(it)!! } + ).let(notificationMapper::toDomain)!! } override fun saveNotificationReceiver(notificationReceiver: NotificationReceiver): NotificationReceiver { return notificationReceiverRepository.save( notificationReceiverMapper.toEntity(notificationReceiver) - ).let { notificationReceiverMapper.toDomain(it)!! } + ).let(notificationReceiverMapper::toDomain)!! } - override fun saveAllNotificationReceiver(notificationReceivers: List) { - notificationReceiverRepository.saveAll( - notificationReceivers.map { notificationReceiverMapper.toEntity(it) } - ) + override fun saveAllNotificationReceiver(notificationReceivers: List): List { + return notificationReceiverRepository.saveAll( + notificationReceivers.map(notificationReceiverMapper::toEntity) + ).mapNotNull(notificationReceiverMapper::toDomain) } } \ No newline at end of file diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/schedule/SchedulePersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/schedule/SchedulePersistenceAdapter.kt index a33d3f8d..546260b2 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/schedule/SchedulePersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/schedule/SchedulePersistenceAdapter.kt @@ -22,7 +22,7 @@ import java.util.UUID * * @author Chokyunghyeon * @date 2022/11/21 - * @version 1.0.0 + * @version 1.2.3 **/ @Component class SchedulePersistenceAdapter( @@ -34,7 +34,7 @@ class SchedulePersistenceAdapter( override fun save(schedule: Schedule): Schedule { return scheduleJpaRepository.save( scheduleMapper.toEntity(schedule) - ).let { scheduleMapper.toDomain(it)!! } + ).let(scheduleMapper::toDomain)!! } override fun delete(schedule: Schedule) { @@ -81,7 +81,7 @@ class SchedulePersistenceAdapter( ) .orderBy(schedule.startAt.asc()) .fetch() - .map { scheduleMapper.toDomain(it)!! } + .mapNotNull(scheduleMapper::toDomain) } override fun querySchedulesByPeriodAndUserIdAndScope(startAt: LocalDate, endAt: LocalDate, userId: UUID, scope: Scope): List { @@ -94,7 +94,7 @@ class SchedulePersistenceAdapter( ) .orderBy(schedule.startAt.asc()) .fetch() - .map { scheduleMapper.toDomain(it)!! } + .mapNotNull(scheduleMapper::toDomain) } private fun inPeriodScheduleFilter(startAt: LocalDate, endAt: LocalDate) : BooleanExpression { diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/spot/SpotPersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/spot/SpotPersistenceAdapter.kt index e930eeff..c193c9ec 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/spot/SpotPersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/spot/SpotPersistenceAdapter.kt @@ -13,20 +13,21 @@ import java.util.UUID * * @author Chokyunghyeon * @date 2022/09/18 - * @version 1.0.0 + * @version 1.2.3 **/ @Component class SpotPersistenceAdapter( private val spotJpaRepository: SpotJpaRepository, private val spotMapper: SpotMapper ) : SpotPort { + override fun existsSpotById(id: UUID): Boolean { return spotJpaRepository.existsById(id) } override fun queryAllSpot(): List { return spotJpaRepository.findAll() - .map { spotMapper.toDomain(it)!! } + .mapNotNull(spotMapper::toDomain) } override fun querySpotByName(name: String): Spot? { @@ -38,5 +39,4 @@ class SpotPersistenceAdapter( return spotJpaRepository.findByIdOrNull(id) .let(spotMapper::toDomain) } - } \ No newline at end of file diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/team/TeamPersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/team/TeamPersistenceAdapter.kt index 1c2c879f..714e1b5b 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/team/TeamPersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/team/TeamPersistenceAdapter.kt @@ -12,16 +12,17 @@ import java.util.UUID * * @author Chokyunghyeon * @date 2022/09/18 - * @version 1.0.0 + * @version 1.2.3 **/ @Component class TeamPersistenceAdapter( private val teamJpaRepository: TeamJpaRepository, private val teamMapper: TeamMapper ) : TeamPort { + override fun queryTeamsBySpotId(spotId: UUID): List { return teamJpaRepository.queryTeamJpaEntitiesBySpotId(spotId) - .map { teamMapper.toDomain(it)!! } + .mapNotNull(teamMapper::toDomain) } override fun queryTeamByName(name: String): Team? { diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/user/UserPersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/user/UserPersistenceAdapter.kt index bd46d9e2..4352c9e4 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/user/UserPersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/user/UserPersistenceAdapter.kt @@ -5,6 +5,7 @@ import org.springframework.stereotype.Component import team.comit.simtong.domain.user.model.DeviceToken import team.comit.simtong.domain.user.model.User import team.comit.simtong.domain.user.spi.UserPort +import team.comit.simtong.persistence.user.entity.DeviceTokenJpaEntity import team.comit.simtong.persistence.user.mapper.DeviceTokenMapper import team.comit.simtong.persistence.user.mapper.UserMapper import team.comit.simtong.persistence.user.repository.DeviceTokenJpaRepository @@ -18,7 +19,7 @@ import java.util.UUID * @author Chokyunghyeon * @author kimbeomjin * @date 2022/09/04 - * @version 1.0.0 + * @version 1.2.3 **/ @Component class UserPersistenceAdapter( @@ -77,13 +78,13 @@ class UserPersistenceAdapter( override fun save(user: User): User { return userJpaRepository.save( userMapper.toEntity(user) - ).let { userMapper.toDomain(it)!! } + ).let(userMapper::toDomain)!! } override fun save(deviceToken: DeviceToken): DeviceToken { return deviceTokenRepository.save( deviceTokenMapper.toEntity(deviceToken) - ).let { deviceTokenMapper.toDomain(it)!! } + ).let(deviceTokenMapper::toDomain)!! } override fun queryDeviceTokenByUserId(userId: UUID): String? { @@ -91,8 +92,7 @@ class UserPersistenceAdapter( } override fun queryDeviceTokensByUserIds(userIds: List): List { - return deviceTokenRepository.findAllByUserIdIsIn(userIds).map { - it.token - } + return deviceTokenRepository.findAllByUserIdIsIn(userIds) + .map(DeviceTokenJpaEntity::token) } } \ No newline at end of file From ace522bf217c552a45863ed759e1f013945e084f Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Wed, 4 Jan 2023 16:50:38 +0900 Subject: [PATCH 06/37] =?UTF-8?q?refactor:=20(#278)=20saveAll=20=EB=B0=98?= =?UTF-8?q?=ED=99=98=20=EA=B0=92=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../simtong/domain/file/spi/CommandEmployeeCertificatePort.kt | 4 ++-- .../comit/simtong/domain/holiday/spi/CommandHolidayPort.kt | 4 ++-- .../team/comit/simtong/domain/menu/spi/CommandMenuPort.kt | 4 ++-- .../domain/notification/spi/CommandNotificationPort.kt | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/simtong-application/src/main/kotlin/team/comit/simtong/domain/file/spi/CommandEmployeeCertificatePort.kt b/simtong-application/src/main/kotlin/team/comit/simtong/domain/file/spi/CommandEmployeeCertificatePort.kt index 6bd79732..fde9b9aa 100644 --- a/simtong-application/src/main/kotlin/team/comit/simtong/domain/file/spi/CommandEmployeeCertificatePort.kt +++ b/simtong-application/src/main/kotlin/team/comit/simtong/domain/file/spi/CommandEmployeeCertificatePort.kt @@ -8,9 +8,9 @@ import team.comit.simtong.domain.file.model.EmployeeCertificate * * @author Chokyunghyeon * @date 2022/12/06 - * @version 1.0.0 + * @version 1.2.3 **/ interface CommandEmployeeCertificatePort { - fun saveAll(employeeCertificates: List) + fun saveAll(employeeCertificates: List) : List } \ No newline at end of file diff --git a/simtong-application/src/main/kotlin/team/comit/simtong/domain/holiday/spi/CommandHolidayPort.kt b/simtong-application/src/main/kotlin/team/comit/simtong/domain/holiday/spi/CommandHolidayPort.kt index 63832b84..70640082 100644 --- a/simtong-application/src/main/kotlin/team/comit/simtong/domain/holiday/spi/CommandHolidayPort.kt +++ b/simtong-application/src/main/kotlin/team/comit/simtong/domain/holiday/spi/CommandHolidayPort.kt @@ -9,13 +9,13 @@ import team.comit.simtong.domain.holiday.model.Holiday * @author Chokyunghyeon * @author kimbeomjin * @date 2022/12/03 - * @version 1.0.0 + * @version 1.2.3 **/ interface CommandHolidayPort { fun save(holiday: Holiday): Holiday - fun saveAll(holidays: List) + fun saveAll(holidays: List) : List fun delete(holiday: Holiday) diff --git a/simtong-application/src/main/kotlin/team/comit/simtong/domain/menu/spi/CommandMenuPort.kt b/simtong-application/src/main/kotlin/team/comit/simtong/domain/menu/spi/CommandMenuPort.kt index 2073aae5..6150a3f1 100644 --- a/simtong-application/src/main/kotlin/team/comit/simtong/domain/menu/spi/CommandMenuPort.kt +++ b/simtong-application/src/main/kotlin/team/comit/simtong/domain/menu/spi/CommandMenuPort.kt @@ -8,10 +8,10 @@ import team.comit.simtong.domain.menu.model.Menu * * @author kimbeomjin * @date 2022/12/10 - * @version 1.0.0 + * @version 1.2.3 **/ interface CommandMenuPort { - fun saveAll(menus: List) + fun saveAll(menus: List) : List } \ No newline at end of file diff --git a/simtong-application/src/main/kotlin/team/comit/simtong/domain/notification/spi/CommandNotificationPort.kt b/simtong-application/src/main/kotlin/team/comit/simtong/domain/notification/spi/CommandNotificationPort.kt index d137c95b..de1582e7 100644 --- a/simtong-application/src/main/kotlin/team/comit/simtong/domain/notification/spi/CommandNotificationPort.kt +++ b/simtong-application/src/main/kotlin/team/comit/simtong/domain/notification/spi/CommandNotificationPort.kt @@ -9,7 +9,7 @@ import team.comit.simtong.domain.notification.model.NotificationReceiver * * @author kimbeomjin * @date 2022/12/30 - * @version 1.1.0 + * @version 1.2.3 **/ interface CommandNotificationPort { @@ -17,6 +17,6 @@ interface CommandNotificationPort { fun saveNotificationReceiver(notificationReceiver: NotificationReceiver): NotificationReceiver - fun saveAllNotificationReceiver(notificationReceivers: List) + fun saveAllNotificationReceiver(notificationReceivers: List): List } \ No newline at end of file From 8f5c8d3e7254e7397e3109e2375baab8a337b062 Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Wed, 4 Jan 2023 16:52:52 +0900 Subject: [PATCH 07/37] =?UTF-8?q?refactor:=20(#287)=20Exception=20?= =?UTF-8?q?=EA=B5=90=EC=B2=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/holiday/usecase/CheckHolidayPeriodUseCase.kt | 4 ++-- .../domain/holiday/usecase/CheckHolidayPeriodUseCaseTests.kt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/simtong-application/src/main/kotlin/team/comit/simtong/domain/holiday/usecase/CheckHolidayPeriodUseCase.kt b/simtong-application/src/main/kotlin/team/comit/simtong/domain/holiday/usecase/CheckHolidayPeriodUseCase.kt index 64e09b49..34e137fe 100644 --- a/simtong-application/src/main/kotlin/team/comit/simtong/domain/holiday/usecase/CheckHolidayPeriodUseCase.kt +++ b/simtong-application/src/main/kotlin/team/comit/simtong/domain/holiday/usecase/CheckHolidayPeriodUseCase.kt @@ -14,7 +14,7 @@ import java.time.LocalDate * * @author Chokyunghyeon * @date 2022/12/22 - * @version 1.0.0 + * @version 1.2.3 **/ @ReadOnlyUseCase class CheckHolidayPeriodUseCase( @@ -28,7 +28,7 @@ class CheckHolidayPeriodUseCase( ?: throw UserExceptions.NotFound() if (!queryHolidayPeriodPort.existsHolidayPeriodByWithinPeriodAndSpotId(LocalDate.now(), user.spotId)) { - throw HolidayExceptions.NotFound("휴무표 작성 기간이 아닙니다.") + throw HolidayExceptions.NotWritablePeriod() } } diff --git a/simtong-application/src/test/kotlin/team/comit/simtong/domain/holiday/usecase/CheckHolidayPeriodUseCaseTests.kt b/simtong-application/src/test/kotlin/team/comit/simtong/domain/holiday/usecase/CheckHolidayPeriodUseCaseTests.kt index eddd3f38..4efd0cdc 100644 --- a/simtong-application/src/test/kotlin/team/comit/simtong/domain/holiday/usecase/CheckHolidayPeriodUseCaseTests.kt +++ b/simtong-application/src/test/kotlin/team/comit/simtong/domain/holiday/usecase/CheckHolidayPeriodUseCaseTests.kt @@ -90,7 +90,7 @@ class CheckHolidayPeriodUseCaseTests { .willReturn(false) // when & then - assertThrows { + assertThrows { checkHolidayPeriodUseCase.execute() } } From d0af305669a7c96eaa7f71baebc67ca64530ad71 Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Wed, 4 Jan 2023 21:52:34 +0900 Subject: [PATCH 08/37] =?UTF-8?q?docs:=20(#278)=20=EB=88=84=EB=9D=BD?= =?UTF-8?q?=EB=90=9C=20Javadoc=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../team/comit/simtong/global/exception/GlobalExceptions.kt | 5 +++-- .../comit/simtong/domain/file/exception/WebFileExceptions.kt | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/exception/GlobalExceptions.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/exception/GlobalExceptions.kt index 28264d9a..4c9cf2e9 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/exception/GlobalExceptions.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/exception/GlobalExceptions.kt @@ -2,11 +2,12 @@ package team.comit.simtong.global.exception /** * - * GlobalExceptions + * 애플리케이션에서 발생하는 예외를 관리하는 GlobalExceptions * * @author kimbeomjin + * @author Chokyunghyeon * @date 2022/12/17 - * @version 1.0.0 + * @version 1.2.3 **/ sealed class GlobalExceptions( override val status: Int, diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/file/exception/WebFileExceptions.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/file/exception/WebFileExceptions.kt index ef41f64a..cb633f55 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/file/exception/WebFileExceptions.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/file/exception/WebFileExceptions.kt @@ -4,11 +4,12 @@ import team.comit.simtong.global.exception.WebException /** * - * WebFileExceptions + * 표현 계층에서 발생하는 예외를 관리하는 WebFileExceptions * * @author kimbeomjin + * @author Chokyunghyeon * @date 2022/12/17 - * @version 1.0.0 + * @version 1.2.3 **/ sealed class WebFileExceptions( override val status: Int, From 9a94952beaf974ae6d203aef1faff133edb93d7f Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Thu, 5 Jan 2023 00:05:56 +0900 Subject: [PATCH 09/37] =?UTF-8?q?add:=20(#278)=20mapNonNull=20=ED=99=95?= =?UTF-8?q?=EC=9E=A5=ED=95=A8=EC=88=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extension/CollectionExtensionUtils.kt | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/extension/CollectionExtensionUtils.kt diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/extension/CollectionExtensionUtils.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/extension/CollectionExtensionUtils.kt new file mode 100644 index 00000000..ad5f0aea --- /dev/null +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/extension/CollectionExtensionUtils.kt @@ -0,0 +1,22 @@ +package team.comit.simtong.global.extension + +/** + * + * 컬렉션의 확장함수를 관리하는 CollectionExtensionUtils + * + * @author Chokyunghyeon + * @date 2023/01/04 + * @version ---- + **/ +object CollectionExtensionUtils { + + inline fun Iterable.mapNonNull(transform: (T) -> R?) : List { + return mapNonNullTo(mutableListOf(), transform) + } + + inline fun > Iterable.mapNonNullTo(destination: C, transform: (T) -> R?): C { + forEach { element -> transform(element).let { destination.add(it!!) } } + return destination + } + +} \ No newline at end of file From 4f0a9ffc2db19cf10a11c5e090f5469ef97015ff Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Thu, 5 Jan 2023 00:06:27 +0900 Subject: [PATCH 10/37] =?UTF-8?q?refactor:=20(#278)=20mapNotNull=20?= =?UTF-8?q?=E2=86=92=20mapNonNull=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../file/EmployeeCertificatePersistenceAdapter.kt | 3 ++- .../persistence/holiday/HolidayPersistenceAdapter.kt | 11 ++++++----- .../persistence/menu/MenuPersistenceAdapter.kt | 9 +++++---- .../notification/NotificationPersistenceAdapter.kt | 3 ++- .../schedule/SchedulePersistenceAdapter.kt | 7 ++++--- .../persistence/spot/SpotPersistenceAdapter.kt | 3 ++- 6 files changed, 21 insertions(+), 15 deletions(-) diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/file/EmployeeCertificatePersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/file/EmployeeCertificatePersistenceAdapter.kt index d8fa1914..15296ed6 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/file/EmployeeCertificatePersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/file/EmployeeCertificatePersistenceAdapter.kt @@ -3,6 +3,7 @@ package team.comit.simtong.persistence.file import org.springframework.stereotype.Component import team.comit.simtong.domain.file.model.EmployeeCertificate import team.comit.simtong.domain.file.spi.EmployeeCertificatePort +import team.comit.simtong.global.extension.CollectionExtensionUtils.mapNonNull import team.comit.simtong.persistence.file.mapper.EmployeeCertificateMapper /** @@ -31,7 +32,7 @@ class EmployeeCertificatePersistenceAdapter( ) : List { return employeeCertificateJpaRepository.saveAll( employeeCertificates.map(employeeCertificateMapper::toEntity) - ).mapNotNull(employeeCertificateMapper::toDomain) + ).mapNonNull(employeeCertificateMapper::toDomain) } override fun queryEmployeeCertificateByNameAndEmployeeNumber( diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/HolidayPersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/HolidayPersistenceAdapter.kt index 7b25d987..2c8d7f2a 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/HolidayPersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/HolidayPersistenceAdapter.kt @@ -13,8 +13,9 @@ import team.comit.simtong.domain.holiday.model.HolidayStatus import team.comit.simtong.domain.holiday.model.HolidayType import team.comit.simtong.domain.holiday.spi.HolidayPort import team.comit.simtong.domain.holiday.spi.vo.EmployeeHoliday -import team.comit.simtong.persistence.QuerydslExtensionUtils.or -import team.comit.simtong.persistence.QuerydslExtensionUtils.sameWeekFilter +import team.comit.simtong.global.extension.CollectionExtensionUtils.mapNonNull +import team.comit.simtong.global.extension.QuerydslExtensionUtils.or +import team.comit.simtong.global.extension.QuerydslExtensionUtils.sameWeekFilter import team.comit.simtong.persistence.holiday.entity.HolidayJpaEntity import team.comit.simtong.persistence.holiday.mapper.HolidayMapper import team.comit.simtong.persistence.holiday.repository.HolidayJpaRepository @@ -83,7 +84,7 @@ class HolidayPersistenceAdapter( ) .orderBy(holiday.id.date.asc()) .fetch() - .mapNotNull(holidayMapper::toDomain) + .mapNonNull(holidayMapper::toDomain) } override fun queryHolidaysByYearAndMonthAndTeamId( @@ -134,7 +135,7 @@ class HolidayPersistenceAdapter( holiday.status.eq(HolidayStatus.WRITTEN) ) .fetch() - .mapNotNull(holidayMapper::toDomain) + .mapNonNull(holidayMapper::toDomain) } override fun existsHolidayByDateAndUserIdAndType(date: LocalDate, userId: UUID, type: HolidayType): Boolean { @@ -156,7 +157,7 @@ class HolidayPersistenceAdapter( override fun saveAll(holidays: List): List { return holidayJpaRepository.saveAll( holidays.map(holidayMapper::toEntity) - ).mapNotNull(holidayMapper::toDomain) + ).mapNonNull(holidayMapper::toDomain) } override fun delete(holiday: Holiday) { diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/menu/MenuPersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/menu/MenuPersistenceAdapter.kt index 1fac625e..c65e1766 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/menu/MenuPersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/menu/MenuPersistenceAdapter.kt @@ -5,7 +5,8 @@ import com.querydsl.jpa.impl.JPAQueryFactory import org.springframework.stereotype.Component import team.comit.simtong.domain.menu.model.Menu import team.comit.simtong.domain.menu.spi.MenuPort -import team.comit.simtong.persistence.QuerydslExtensionUtils.sameMonthFilter +import team.comit.simtong.global.extension.CollectionExtensionUtils.mapNonNull +import team.comit.simtong.global.extension.QuerydslExtensionUtils.sameMonthFilter import team.comit.simtong.persistence.menu.mapper.MenuMapper import team.comit.simtong.persistence.menu.repository.MenuJpaRepository import java.time.LocalDate @@ -46,7 +47,7 @@ class MenuPersistenceAdapter( ) .orderBy(menu.menuId.date.asc()) .fetch() - .mapNotNull(menuMapper::toDomain) + .mapNonNull(menuMapper::toDomain) } override fun queryMenusByPeriodAndSpotName(startAt: LocalDate, endAt: LocalDate, spotName: String): List { @@ -58,13 +59,13 @@ class MenuPersistenceAdapter( ) .orderBy(menu.menuId.date.asc()) .fetch() - .mapNotNull(menuMapper::toDomain) + .mapNonNull(menuMapper::toDomain) } override fun saveAll(menus: List) : List { return menuRepository.saveAll( menus.map(menuMapper::toEntity) - ).mapNotNull(menuMapper::toDomain) + ).mapNonNull(menuMapper::toDomain) } } \ No newline at end of file diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/notification/NotificationPersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/notification/NotificationPersistenceAdapter.kt index e60cfc5c..0e34402f 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/notification/NotificationPersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/notification/NotificationPersistenceAdapter.kt @@ -4,6 +4,7 @@ import org.springframework.stereotype.Component import team.comit.simtong.domain.notification.model.Notification import team.comit.simtong.domain.notification.model.NotificationReceiver import team.comit.simtong.domain.notification.spi.NotificationPort +import team.comit.simtong.global.extension.CollectionExtensionUtils.mapNonNull import team.comit.simtong.persistence.notification.mapper.NotificationMapper import team.comit.simtong.persistence.notification.mapper.NotificationReceiverMapper import team.comit.simtong.persistence.notification.repository.NotificationJpaRepository @@ -40,6 +41,6 @@ class NotificationPersistenceAdapter( override fun saveAllNotificationReceiver(notificationReceivers: List): List { return notificationReceiverRepository.saveAll( notificationReceivers.map(notificationReceiverMapper::toEntity) - ).mapNotNull(notificationReceiverMapper::toDomain) + ).mapNonNull(notificationReceiverMapper::toDomain) } } \ No newline at end of file diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/schedule/SchedulePersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/schedule/SchedulePersistenceAdapter.kt index 546260b2..633b7b09 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/schedule/SchedulePersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/schedule/SchedulePersistenceAdapter.kt @@ -10,7 +10,8 @@ import team.comit.simtong.domain.schedule.model.Schedule import team.comit.simtong.domain.schedule.model.Scope import team.comit.simtong.domain.schedule.spi.SchedulePort import team.comit.simtong.domain.schedule.vo.SpotSchedule -import team.comit.simtong.persistence.QuerydslExtensionUtils.or +import team.comit.simtong.global.extension.CollectionExtensionUtils.mapNonNull +import team.comit.simtong.global.extension.QuerydslExtensionUtils.or import team.comit.simtong.persistence.schedule.mapper.ScheduleMapper import team.comit.simtong.persistence.schedule.vo.QSpotScheduleVo import java.time.LocalDate @@ -81,7 +82,7 @@ class SchedulePersistenceAdapter( ) .orderBy(schedule.startAt.asc()) .fetch() - .mapNotNull(scheduleMapper::toDomain) + .mapNonNull(scheduleMapper::toDomain) } override fun querySchedulesByPeriodAndUserIdAndScope(startAt: LocalDate, endAt: LocalDate, userId: UUID, scope: Scope): List { @@ -94,7 +95,7 @@ class SchedulePersistenceAdapter( ) .orderBy(schedule.startAt.asc()) .fetch() - .mapNotNull(scheduleMapper::toDomain) + .mapNonNull(scheduleMapper::toDomain) } private fun inPeriodScheduleFilter(startAt: LocalDate, endAt: LocalDate) : BooleanExpression { diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/spot/SpotPersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/spot/SpotPersistenceAdapter.kt index c193c9ec..23c340e3 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/spot/SpotPersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/spot/SpotPersistenceAdapter.kt @@ -4,6 +4,7 @@ import org.springframework.data.repository.findByIdOrNull import org.springframework.stereotype.Component import team.comit.simtong.domain.spot.model.Spot import team.comit.simtong.domain.spot.spi.SpotPort +import team.comit.simtong.global.extension.CollectionExtensionUtils.mapNonNull import team.comit.simtong.persistence.spot.mapper.SpotMapper import java.util.UUID @@ -27,7 +28,7 @@ class SpotPersistenceAdapter( override fun queryAllSpot(): List { return spotJpaRepository.findAll() - .mapNotNull(spotMapper::toDomain) + .mapNonNull(spotMapper::toDomain) } override fun querySpotByName(name: String): Spot? { From 25d944cd71b5818aa01537036ec4df98a1dc5cea Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Thu, 5 Jan 2023 00:06:38 +0900 Subject: [PATCH 11/37] =?UTF-8?q?chore:=20(#278)=20=ED=8C=A8=ED=82=A4?= =?UTF-8?q?=EC=A7=80=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{persistence => global/extension}/QuerydslExtensionUtils.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename simtong-infrastructure/src/main/kotlin/team/comit/simtong/{persistence => global/extension}/QuerydslExtensionUtils.kt (95%) diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/QuerydslExtensionUtils.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/extension/QuerydslExtensionUtils.kt similarity index 95% rename from simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/QuerydslExtensionUtils.kt rename to simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/extension/QuerydslExtensionUtils.kt index 966802c5..6b7d5c98 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/QuerydslExtensionUtils.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/extension/QuerydslExtensionUtils.kt @@ -1,4 +1,4 @@ -package team.comit.simtong.persistence +package team.comit.simtong.global.extension import com.querydsl.core.types.dsl.BooleanExpression import com.querydsl.core.types.dsl.DatePath From 72f13d2c21a6c1f6bba28005f3daf774d81239ab Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Thu, 5 Jan 2023 00:07:50 +0900 Subject: [PATCH 12/37] =?UTF-8?q?revert:=20(#278)=20=ED=8C=8C=ED=8A=B8=20?= =?UTF-8?q?=EC=9D=B4=EB=A6=84=20=EC=A4=91=EB=B3=B5=20=ED=97=88=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../team/comit/simtong/persistence/team/entity/TeamJpaEntity.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/team/entity/TeamJpaEntity.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/team/entity/TeamJpaEntity.kt index 28b01f7a..b7dc2a43 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/team/entity/TeamJpaEntity.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/team/entity/TeamJpaEntity.kt @@ -27,7 +27,6 @@ class TeamJpaEntity( @field:NotNull @field:Length(max = 8) - @Column(unique = true) val name: String, @field:NotNull From cb34d1858ca80c42bd4bfaf58a8854e9f252d2e4 Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Thu, 5 Jan 2023 00:10:23 +0900 Subject: [PATCH 13/37] =?UTF-8?q?chore:=20(#278)=20Import=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../team/comit/simtong/persistence/team/entity/TeamJpaEntity.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/team/entity/TeamJpaEntity.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/team/entity/TeamJpaEntity.kt index b7dc2a43..95c52c87 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/team/entity/TeamJpaEntity.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/team/entity/TeamJpaEntity.kt @@ -4,7 +4,6 @@ import org.hibernate.validator.constraints.Length import team.comit.simtong.persistence.BaseUUIDEntity import team.comit.simtong.persistence.spot.entity.SpotJpaEntity import java.util.UUID -import javax.persistence.Column import javax.persistence.Entity import javax.persistence.FetchType import javax.persistence.JoinColumn From d4dd1a64399b4a58021771a479472865f3c51710 Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Thu, 5 Jan 2023 22:25:08 +0900 Subject: [PATCH 14/37] =?UTF-8?q?revert:=20(#278)=20=ED=99=95=EC=9E=A5?= =?UTF-8?q?=ED=95=A8=EC=88=98=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extension/CollectionExtensionUtils.kt | 22 ------------------- 1 file changed, 22 deletions(-) delete mode 100644 simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/extension/CollectionExtensionUtils.kt diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/extension/CollectionExtensionUtils.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/extension/CollectionExtensionUtils.kt deleted file mode 100644 index ad5f0aea..00000000 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/extension/CollectionExtensionUtils.kt +++ /dev/null @@ -1,22 +0,0 @@ -package team.comit.simtong.global.extension - -/** - * - * 컬렉션의 확장함수를 관리하는 CollectionExtensionUtils - * - * @author Chokyunghyeon - * @date 2023/01/04 - * @version ---- - **/ -object CollectionExtensionUtils { - - inline fun Iterable.mapNonNull(transform: (T) -> R?) : List { - return mapNonNullTo(mutableListOf(), transform) - } - - inline fun > Iterable.mapNonNullTo(destination: C, transform: (T) -> R?): C { - forEach { element -> transform(element).let { destination.add(it!!) } } - return destination - } - -} \ No newline at end of file From 03d7354df30287dd60dc5d1cd36f2506e85930b5 Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Thu, 5 Jan 2023 22:26:19 +0900 Subject: [PATCH 15/37] =?UTF-8?q?feat:=20(#278)=20toDomainNotNull=20?= =?UTF-8?q?=EB=A9=94=EC=84=9C=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../simtong/persistence/GenericMapper.kt | 4 +++- .../holiday/mapper/HolidayMapper.kt | 9 +++++++- .../holiday/mapper/HolidayPeriodMapper.kt | 9 +++++++- .../persistence/menu/mapper/MenuMapper.kt | 8 ++++++- .../mapper/NotificationReceiverMapper.kt | 9 ++++++-- .../schedule/mapper/ScheduleMapper.kt | 21 ++++++++++++++----- .../persistence/user/mapper/UserMapper.kt | 8 ++++++- 7 files changed, 56 insertions(+), 12 deletions(-) diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/GenericMapper.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/GenericMapper.kt index 09442810..ba5ec786 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/GenericMapper.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/GenericMapper.kt @@ -6,11 +6,13 @@ package team.comit.simtong.persistence * * @author Chokyunghyeon * @date 2022/09/04 - * @version 1.0.0 + * @version 1.2.3 **/ interface GenericMapper { fun toEntity(model: D): E fun toDomain(entity: E?): D? + + fun toDomainNotNull(entity: E): D } \ No newline at end of file diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/mapper/HolidayMapper.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/mapper/HolidayMapper.kt index 6f63188b..9f36a2a4 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/mapper/HolidayMapper.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/mapper/HolidayMapper.kt @@ -16,7 +16,7 @@ import team.comit.simtong.persistence.user.repository.UserJpaRepository * * @author Chokyunghyeon * @date 2022/12/02 - * @version 1.0.0 + * @version 1.2.3 **/ @Mapper abstract class HolidayMapper : GenericMapper { @@ -34,6 +34,13 @@ abstract class HolidayMapper : GenericMapper { ) abstract override fun toDomain(entity: HolidayJpaEntity?): Holiday? + @Mappings( + Mapping(target = "userId", expression = "java(entity.getId().getUserId())"), + Mapping(target = "spotId", expression = "java(entity.getSpot().getId())"), + Mapping(target = "date", expression = "java(entity.getId().getDate())") + ) + abstract override fun toDomainNotNull(entity: HolidayJpaEntity): Holiday + @Mappings( Mapping(target = "user", expression = "java(userJpaRepository.findById(model.getUserId()).orElse(null))"), Mapping(target = "spot", expression = "java(spotJpaRepository.findById(model.getSpotId()).orElse(null))"), diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/mapper/HolidayPeriodMapper.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/mapper/HolidayPeriodMapper.kt index 9d1779c1..00957372 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/mapper/HolidayPeriodMapper.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/mapper/HolidayPeriodMapper.kt @@ -15,7 +15,7 @@ import team.comit.simtong.persistence.spot.SpotJpaRepository * * @author Chokyunghyeon * @date 2022/12/20 - * @version 1.0.0 + * @version 1.2.3 **/ @Mapper abstract class HolidayPeriodMapper : GenericMapper { @@ -30,6 +30,13 @@ abstract class HolidayPeriodMapper : GenericMapper { @@ -35,4 +35,10 @@ abstract class MenuMapper : GenericMapper { ) abstract override fun toDomain(entity: MenuJpaEntity?): Menu? + @Mappings( + Mapping(target = "spotId", expression = "java(entity.getMenuId().getSpotId())"), + Mapping(target = "date", expression = "java(entity.getMenuId().getDate())") + ) + abstract override fun toDomainNotNull(entity: MenuJpaEntity): Menu + } \ No newline at end of file diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/notification/mapper/NotificationReceiverMapper.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/notification/mapper/NotificationReceiverMapper.kt index cf2c4733..88f28969 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/notification/mapper/NotificationReceiverMapper.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/notification/mapper/NotificationReceiverMapper.kt @@ -8,7 +8,6 @@ import team.comit.simtong.domain.notification.model.NotificationReceiver import team.comit.simtong.persistence.GenericMapper import team.comit.simtong.persistence.notification.entity.NotificationReceiverJpaEntity import team.comit.simtong.persistence.notification.repository.NotificationJpaRepository -import team.comit.simtong.persistence.spot.SpotJpaRepository import team.comit.simtong.persistence.user.repository.UserJpaRepository /** @@ -17,7 +16,7 @@ import team.comit.simtong.persistence.user.repository.UserJpaRepository * * @author kimbeomjin * @date 2022/12/29 - * @version 1.1.0 + * @version 1.2.3 **/ @Mapper abstract class NotificationReceiverMapper : GenericMapper { @@ -50,4 +49,10 @@ abstract class NotificationReceiverMapper : GenericMapper { @@ -26,11 +27,21 @@ abstract class ScheduleMapper : GenericMapper { @Autowired protected lateinit var spotJpaRepository: SpotJpaRepository - @Mapping(target = "userId", expression = "java(entity.getUser().getId())") - @Mapping(target = "spotId", expression = "java(entity.getSpot().getId())") + @Mappings( + Mapping(target = "userId", expression = "java(entity.getUser().getId())"), + Mapping(target = "spotId", expression = "java(entity.getSpot().getId())") + ) abstract override fun toDomain(entity: ScheduleJpaEntity?): Schedule? - @Mapping(target = "user", expression = "java(userJpaRepository.findById(model.getUserId()).orElse(null))") - @Mapping(target= "spot", expression = "java(spotJpaRepository.findById(model.getSpotId()).orElse(null))") + @Mappings( + Mapping(target = "userId", expression = "java(entity.getUser().getId())"), + Mapping(target = "spotId", expression = "java(entity.getSpot().getId())") + ) + abstract override fun toDomainNotNull(entity: ScheduleJpaEntity): Schedule + + @Mappings( + Mapping(target = "user", expression = "java(userJpaRepository.findById(model.getUserId()).orElse(null))"), + Mapping(target= "spot", expression = "java(spotJpaRepository.findById(model.getSpotId()).orElse(null))") + ) abstract override fun toEntity(model: Schedule): ScheduleJpaEntity } \ No newline at end of file diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/user/mapper/UserMapper.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/user/mapper/UserMapper.kt index 65c146e4..b6e63257 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/user/mapper/UserMapper.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/user/mapper/UserMapper.kt @@ -16,7 +16,7 @@ import team.comit.simtong.persistence.user.entity.UserJpaEntity * * @author Chokyunghyeon * @date 2022/09/04 - * @version 1.0.0 + * @version 1.2.3 **/ @Mapper abstract class UserMapper : GenericMapper { @@ -38,4 +38,10 @@ abstract class UserMapper : GenericMapper { Mapping(target = "teamId", expression = "java(entity.getTeam().getId())") ) abstract override fun toDomain(entity: UserJpaEntity?): User? + + @Mappings( + Mapping(target = "spotId", expression = "java(entity.getSpot().getId())"), + Mapping(target = "teamId", expression = "java(entity.getTeam().getId())") + ) + abstract override fun toDomainNotNull(entity: UserJpaEntity): User } \ No newline at end of file From 6e98d1479f7bcb99b541b513714cf01898576c48 Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Thu, 5 Jan 2023 22:26:50 +0900 Subject: [PATCH 16/37] =?UTF-8?q?refactor:=20(#278)=20toDomainNotNull=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../persistence/auth/AuthCodeLimitPersistenceAdapter.kt | 2 +- .../persistence/auth/AuthCodePersistenceAdapter.kt | 2 +- .../file/EmployeeCertificatePersistenceAdapter.kt | 3 +-- .../persistence/holiday/HolidayPersistenceAdapter.kt | 9 ++++----- .../simtong/persistence/menu/MenuPersistenceAdapter.kt | 7 +++---- .../notification/NotificationPersistenceAdapter.kt | 7 +++---- .../persistence/schedule/SchedulePersistenceAdapter.kt | 7 +++---- .../simtong/persistence/spot/SpotPersistenceAdapter.kt | 3 +-- .../simtong/persistence/team/TeamPersistenceAdapter.kt | 2 +- .../simtong/persistence/user/UserPersistenceAdapter.kt | 4 ++-- 10 files changed, 20 insertions(+), 26 deletions(-) diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/auth/AuthCodeLimitPersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/auth/AuthCodeLimitPersistenceAdapter.kt index dcce6fa1..9b5949e1 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/auth/AuthCodeLimitPersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/auth/AuthCodeLimitPersistenceAdapter.kt @@ -30,7 +30,7 @@ class AuthCodeLimitPersistenceAdapter( override fun save(authCodeLimit: AuthCodeLimit): AuthCodeLimit { return authCodeLimitRepository.save( authCodeLimitMapper.toEntity(authCodeLimit) - ).let(authCodeLimitMapper::toDomain)!! + ).let(authCodeLimitMapper::toDomainNotNull) } override fun delete(authCodeLimit: AuthCodeLimit) { diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/auth/AuthCodePersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/auth/AuthCodePersistenceAdapter.kt index 4d903306..f020c109 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/auth/AuthCodePersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/auth/AuthCodePersistenceAdapter.kt @@ -29,7 +29,7 @@ class AuthCodePersistenceAdapter( override fun save(authCode: AuthCode): AuthCode { return authCodeRepository.save( authCodeMapper.toEntity(authCode) - ).let(authCodeMapper::toDomain)!! + ).let(authCodeMapper::toDomainNotNull) } } \ No newline at end of file diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/file/EmployeeCertificatePersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/file/EmployeeCertificatePersistenceAdapter.kt index 15296ed6..56c7145a 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/file/EmployeeCertificatePersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/file/EmployeeCertificatePersistenceAdapter.kt @@ -3,7 +3,6 @@ package team.comit.simtong.persistence.file import org.springframework.stereotype.Component import team.comit.simtong.domain.file.model.EmployeeCertificate import team.comit.simtong.domain.file.spi.EmployeeCertificatePort -import team.comit.simtong.global.extension.CollectionExtensionUtils.mapNonNull import team.comit.simtong.persistence.file.mapper.EmployeeCertificateMapper /** @@ -32,7 +31,7 @@ class EmployeeCertificatePersistenceAdapter( ) : List { return employeeCertificateJpaRepository.saveAll( employeeCertificates.map(employeeCertificateMapper::toEntity) - ).mapNonNull(employeeCertificateMapper::toDomain) + ).map(employeeCertificateMapper::toDomainNotNull) } override fun queryEmployeeCertificateByNameAndEmployeeNumber( diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/HolidayPersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/HolidayPersistenceAdapter.kt index 2c8d7f2a..d8a911ba 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/HolidayPersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/HolidayPersistenceAdapter.kt @@ -13,7 +13,6 @@ import team.comit.simtong.domain.holiday.model.HolidayStatus import team.comit.simtong.domain.holiday.model.HolidayType import team.comit.simtong.domain.holiday.spi.HolidayPort import team.comit.simtong.domain.holiday.spi.vo.EmployeeHoliday -import team.comit.simtong.global.extension.CollectionExtensionUtils.mapNonNull import team.comit.simtong.global.extension.QuerydslExtensionUtils.or import team.comit.simtong.global.extension.QuerydslExtensionUtils.sameWeekFilter import team.comit.simtong.persistence.holiday.entity.HolidayJpaEntity @@ -84,7 +83,7 @@ class HolidayPersistenceAdapter( ) .orderBy(holiday.id.date.asc()) .fetch() - .mapNonNull(holidayMapper::toDomain) + .map(holidayMapper::toDomainNotNull) } override fun queryHolidaysByYearAndMonthAndTeamId( @@ -135,7 +134,7 @@ class HolidayPersistenceAdapter( holiday.status.eq(HolidayStatus.WRITTEN) ) .fetch() - .mapNonNull(holidayMapper::toDomain) + .map(holidayMapper::toDomainNotNull) } override fun existsHolidayByDateAndUserIdAndType(date: LocalDate, userId: UUID, type: HolidayType): Boolean { @@ -151,13 +150,13 @@ class HolidayPersistenceAdapter( override fun save(holiday: Holiday): Holiday { return holidayJpaRepository.save( holidayMapper.toEntity(holiday) - ).let(holidayMapper::toDomain)!! + ).let(holidayMapper::toDomainNotNull) } override fun saveAll(holidays: List): List { return holidayJpaRepository.saveAll( holidays.map(holidayMapper::toEntity) - ).mapNonNull(holidayMapper::toDomain) + ).map(holidayMapper::toDomainNotNull) } override fun delete(holiday: Holiday) { diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/menu/MenuPersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/menu/MenuPersistenceAdapter.kt index c65e1766..4b4afa25 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/menu/MenuPersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/menu/MenuPersistenceAdapter.kt @@ -5,7 +5,6 @@ import com.querydsl.jpa.impl.JPAQueryFactory import org.springframework.stereotype.Component import team.comit.simtong.domain.menu.model.Menu import team.comit.simtong.domain.menu.spi.MenuPort -import team.comit.simtong.global.extension.CollectionExtensionUtils.mapNonNull import team.comit.simtong.global.extension.QuerydslExtensionUtils.sameMonthFilter import team.comit.simtong.persistence.menu.mapper.MenuMapper import team.comit.simtong.persistence.menu.repository.MenuJpaRepository @@ -47,7 +46,7 @@ class MenuPersistenceAdapter( ) .orderBy(menu.menuId.date.asc()) .fetch() - .mapNonNull(menuMapper::toDomain) + .map(menuMapper::toDomainNotNull) } override fun queryMenusByPeriodAndSpotName(startAt: LocalDate, endAt: LocalDate, spotName: String): List { @@ -59,13 +58,13 @@ class MenuPersistenceAdapter( ) .orderBy(menu.menuId.date.asc()) .fetch() - .mapNonNull(menuMapper::toDomain) + .map(menuMapper::toDomainNotNull) } override fun saveAll(menus: List) : List { return menuRepository.saveAll( menus.map(menuMapper::toEntity) - ).mapNonNull(menuMapper::toDomain) + ).map(menuMapper::toDomainNotNull) } } \ No newline at end of file diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/notification/NotificationPersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/notification/NotificationPersistenceAdapter.kt index 0e34402f..b69c1ec6 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/notification/NotificationPersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/notification/NotificationPersistenceAdapter.kt @@ -4,7 +4,6 @@ import org.springframework.stereotype.Component import team.comit.simtong.domain.notification.model.Notification import team.comit.simtong.domain.notification.model.NotificationReceiver import team.comit.simtong.domain.notification.spi.NotificationPort -import team.comit.simtong.global.extension.CollectionExtensionUtils.mapNonNull import team.comit.simtong.persistence.notification.mapper.NotificationMapper import team.comit.simtong.persistence.notification.mapper.NotificationReceiverMapper import team.comit.simtong.persistence.notification.repository.NotificationJpaRepository @@ -29,18 +28,18 @@ class NotificationPersistenceAdapter( override fun saveNotification(notification: Notification): Notification { return notificationRepository.save( notificationMapper.toEntity(notification) - ).let(notificationMapper::toDomain)!! + ).let(notificationMapper::toDomainNotNull) } override fun saveNotificationReceiver(notificationReceiver: NotificationReceiver): NotificationReceiver { return notificationReceiverRepository.save( notificationReceiverMapper.toEntity(notificationReceiver) - ).let(notificationReceiverMapper::toDomain)!! + ).let(notificationReceiverMapper::toDomainNotNull) } override fun saveAllNotificationReceiver(notificationReceivers: List): List { return notificationReceiverRepository.saveAll( notificationReceivers.map(notificationReceiverMapper::toEntity) - ).mapNonNull(notificationReceiverMapper::toDomain) + ).map(notificationReceiverMapper::toDomainNotNull) } } \ No newline at end of file diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/schedule/SchedulePersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/schedule/SchedulePersistenceAdapter.kt index 633b7b09..b83e027e 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/schedule/SchedulePersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/schedule/SchedulePersistenceAdapter.kt @@ -10,7 +10,6 @@ import team.comit.simtong.domain.schedule.model.Schedule import team.comit.simtong.domain.schedule.model.Scope import team.comit.simtong.domain.schedule.spi.SchedulePort import team.comit.simtong.domain.schedule.vo.SpotSchedule -import team.comit.simtong.global.extension.CollectionExtensionUtils.mapNonNull import team.comit.simtong.global.extension.QuerydslExtensionUtils.or import team.comit.simtong.persistence.schedule.mapper.ScheduleMapper import team.comit.simtong.persistence.schedule.vo.QSpotScheduleVo @@ -35,7 +34,7 @@ class SchedulePersistenceAdapter( override fun save(schedule: Schedule): Schedule { return scheduleJpaRepository.save( scheduleMapper.toEntity(schedule) - ).let(scheduleMapper::toDomain)!! + ).let(scheduleMapper::toDomainNotNull) } override fun delete(schedule: Schedule) { @@ -82,7 +81,7 @@ class SchedulePersistenceAdapter( ) .orderBy(schedule.startAt.asc()) .fetch() - .mapNonNull(scheduleMapper::toDomain) + .map(scheduleMapper::toDomainNotNull) } override fun querySchedulesByPeriodAndUserIdAndScope(startAt: LocalDate, endAt: LocalDate, userId: UUID, scope: Scope): List { @@ -95,7 +94,7 @@ class SchedulePersistenceAdapter( ) .orderBy(schedule.startAt.asc()) .fetch() - .mapNonNull(scheduleMapper::toDomain) + .map(scheduleMapper::toDomainNotNull) } private fun inPeriodScheduleFilter(startAt: LocalDate, endAt: LocalDate) : BooleanExpression { diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/spot/SpotPersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/spot/SpotPersistenceAdapter.kt index 23c340e3..4def0d36 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/spot/SpotPersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/spot/SpotPersistenceAdapter.kt @@ -4,7 +4,6 @@ import org.springframework.data.repository.findByIdOrNull import org.springframework.stereotype.Component import team.comit.simtong.domain.spot.model.Spot import team.comit.simtong.domain.spot.spi.SpotPort -import team.comit.simtong.global.extension.CollectionExtensionUtils.mapNonNull import team.comit.simtong.persistence.spot.mapper.SpotMapper import java.util.UUID @@ -28,7 +27,7 @@ class SpotPersistenceAdapter( override fun queryAllSpot(): List { return spotJpaRepository.findAll() - .mapNonNull(spotMapper::toDomain) + .map(spotMapper::toDomainNotNull) } override fun querySpotByName(name: String): Spot? { diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/team/TeamPersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/team/TeamPersistenceAdapter.kt index 714e1b5b..a7c32e8f 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/team/TeamPersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/team/TeamPersistenceAdapter.kt @@ -22,7 +22,7 @@ class TeamPersistenceAdapter( override fun queryTeamsBySpotId(spotId: UUID): List { return teamJpaRepository.queryTeamJpaEntitiesBySpotId(spotId) - .mapNotNull(teamMapper::toDomain) + .map(teamMapper::toDomainNotNull) } override fun queryTeamByName(name: String): Team? { diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/user/UserPersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/user/UserPersistenceAdapter.kt index 4352c9e4..31900dd7 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/user/UserPersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/user/UserPersistenceAdapter.kt @@ -78,13 +78,13 @@ class UserPersistenceAdapter( override fun save(user: User): User { return userJpaRepository.save( userMapper.toEntity(user) - ).let(userMapper::toDomain)!! + ).let(userMapper::toDomainNotNull) } override fun save(deviceToken: DeviceToken): DeviceToken { return deviceTokenRepository.save( deviceTokenMapper.toEntity(deviceToken) - ).let(deviceTokenMapper::toDomain)!! + ).let(deviceTokenMapper::toDomainNotNull) } override fun queryDeviceTokenByUserId(userId: UUID): String? { From 75c7b7483a0626624f5f10f08985996f9f707eb0 Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Thu, 5 Jan 2023 22:41:15 +0900 Subject: [PATCH 17/37] =?UTF-8?q?revert:=20(#278)=20saveAll=20=EB=B0=98?= =?UTF-8?q?=ED=99=98=20=EA=B0=92=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/file/spi/CommandEmployeeCertificatePort.kt | 2 +- .../comit/simtong/domain/holiday/spi/CommandHolidayPort.kt | 2 +- .../team/comit/simtong/domain/menu/spi/CommandMenuPort.kt | 2 +- .../domain/notification/spi/CommandNotificationPort.kt | 2 +- .../file/EmployeeCertificatePersistenceAdapter.kt | 6 +++--- .../persistence/holiday/HolidayPersistenceAdapter.kt | 6 +++--- .../simtong/persistence/menu/MenuPersistenceAdapter.kt | 6 +++--- .../notification/NotificationPersistenceAdapter.kt | 6 +++--- 8 files changed, 16 insertions(+), 16 deletions(-) diff --git a/simtong-application/src/main/kotlin/team/comit/simtong/domain/file/spi/CommandEmployeeCertificatePort.kt b/simtong-application/src/main/kotlin/team/comit/simtong/domain/file/spi/CommandEmployeeCertificatePort.kt index fde9b9aa..907f9471 100644 --- a/simtong-application/src/main/kotlin/team/comit/simtong/domain/file/spi/CommandEmployeeCertificatePort.kt +++ b/simtong-application/src/main/kotlin/team/comit/simtong/domain/file/spi/CommandEmployeeCertificatePort.kt @@ -12,5 +12,5 @@ import team.comit.simtong.domain.file.model.EmployeeCertificate **/ interface CommandEmployeeCertificatePort { - fun saveAll(employeeCertificates: List) : List + fun saveAll(employeeCertificates: List) } \ No newline at end of file diff --git a/simtong-application/src/main/kotlin/team/comit/simtong/domain/holiday/spi/CommandHolidayPort.kt b/simtong-application/src/main/kotlin/team/comit/simtong/domain/holiday/spi/CommandHolidayPort.kt index 70640082..286912b5 100644 --- a/simtong-application/src/main/kotlin/team/comit/simtong/domain/holiday/spi/CommandHolidayPort.kt +++ b/simtong-application/src/main/kotlin/team/comit/simtong/domain/holiday/spi/CommandHolidayPort.kt @@ -15,7 +15,7 @@ interface CommandHolidayPort { fun save(holiday: Holiday): Holiday - fun saveAll(holidays: List) : List + fun saveAll(holidays: List) fun delete(holiday: Holiday) diff --git a/simtong-application/src/main/kotlin/team/comit/simtong/domain/menu/spi/CommandMenuPort.kt b/simtong-application/src/main/kotlin/team/comit/simtong/domain/menu/spi/CommandMenuPort.kt index 6150a3f1..5a4413e6 100644 --- a/simtong-application/src/main/kotlin/team/comit/simtong/domain/menu/spi/CommandMenuPort.kt +++ b/simtong-application/src/main/kotlin/team/comit/simtong/domain/menu/spi/CommandMenuPort.kt @@ -12,6 +12,6 @@ import team.comit.simtong.domain.menu.model.Menu **/ interface CommandMenuPort { - fun saveAll(menus: List) : List + fun saveAll(menus: List) } \ No newline at end of file diff --git a/simtong-application/src/main/kotlin/team/comit/simtong/domain/notification/spi/CommandNotificationPort.kt b/simtong-application/src/main/kotlin/team/comit/simtong/domain/notification/spi/CommandNotificationPort.kt index de1582e7..a5b2e642 100644 --- a/simtong-application/src/main/kotlin/team/comit/simtong/domain/notification/spi/CommandNotificationPort.kt +++ b/simtong-application/src/main/kotlin/team/comit/simtong/domain/notification/spi/CommandNotificationPort.kt @@ -17,6 +17,6 @@ interface CommandNotificationPort { fun saveNotificationReceiver(notificationReceiver: NotificationReceiver): NotificationReceiver - fun saveAllNotificationReceiver(notificationReceivers: List): List + fun saveAllNotificationReceiver(notificationReceivers: List) } \ No newline at end of file diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/file/EmployeeCertificatePersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/file/EmployeeCertificatePersistenceAdapter.kt index 56c7145a..74e8fb01 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/file/EmployeeCertificatePersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/file/EmployeeCertificatePersistenceAdapter.kt @@ -28,10 +28,10 @@ class EmployeeCertificatePersistenceAdapter( override fun saveAll( employeeCertificates: List - ) : List { - return employeeCertificateJpaRepository.saveAll( + ) { + employeeCertificateJpaRepository.saveAll( employeeCertificates.map(employeeCertificateMapper::toEntity) - ).map(employeeCertificateMapper::toDomainNotNull) + ) } override fun queryEmployeeCertificateByNameAndEmployeeNumber( diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/HolidayPersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/HolidayPersistenceAdapter.kt index d8a911ba..a54cdbee 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/HolidayPersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/holiday/HolidayPersistenceAdapter.kt @@ -153,10 +153,10 @@ class HolidayPersistenceAdapter( ).let(holidayMapper::toDomainNotNull) } - override fun saveAll(holidays: List): List { - return holidayJpaRepository.saveAll( + override fun saveAll(holidays: List) { + holidayJpaRepository.saveAll( holidays.map(holidayMapper::toEntity) - ).map(holidayMapper::toDomainNotNull) + ) } override fun delete(holiday: Holiday) { diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/menu/MenuPersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/menu/MenuPersistenceAdapter.kt index 4b4afa25..8ae3c4bf 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/menu/MenuPersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/menu/MenuPersistenceAdapter.kt @@ -61,10 +61,10 @@ class MenuPersistenceAdapter( .map(menuMapper::toDomainNotNull) } - override fun saveAll(menus: List) : List { - return menuRepository.saveAll( + override fun saveAll(menus: List) { + menuRepository.saveAll( menus.map(menuMapper::toEntity) - ).map(menuMapper::toDomainNotNull) + ) } } \ No newline at end of file diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/notification/NotificationPersistenceAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/notification/NotificationPersistenceAdapter.kt index b69c1ec6..fbca1b6b 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/notification/NotificationPersistenceAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/persistence/notification/NotificationPersistenceAdapter.kt @@ -37,9 +37,9 @@ class NotificationPersistenceAdapter( ).let(notificationReceiverMapper::toDomainNotNull) } - override fun saveAllNotificationReceiver(notificationReceivers: List): List { - return notificationReceiverRepository.saveAll( + override fun saveAllNotificationReceiver(notificationReceivers: List) { + notificationReceiverRepository.saveAll( notificationReceivers.map(notificationReceiverMapper::toEntity) - ).map(notificationReceiverMapper::toDomainNotNull) + ) } } \ No newline at end of file From 9d947b78503d551c54402f1aeb00c584d2f647b0 Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Thu, 5 Jan 2023 23:10:03 +0900 Subject: [PATCH 18/37] =?UTF-8?q?chore:=20(#280)=20value=20=ED=8C=A8?= =?UTF-8?q?=ED=82=A4=EC=A7=80=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{domain/holiday => global}/value/WebHolidayQueryType.kt | 2 +- .../{domain/holiday => global}/value/WebHolidayStatus.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename simtong-presentation/src/main/kotlin/team/comit/simtong/{domain/holiday => global}/value/WebHolidayQueryType.kt (87%) rename simtong-presentation/src/main/kotlin/team/comit/simtong/{domain/holiday => global}/value/WebHolidayStatus.kt (86%) diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/value/WebHolidayQueryType.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/WebHolidayQueryType.kt similarity index 87% rename from simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/value/WebHolidayQueryType.kt rename to simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/WebHolidayQueryType.kt index 28700249..a1b84ccc 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/value/WebHolidayQueryType.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/WebHolidayQueryType.kt @@ -1,4 +1,4 @@ -package team.comit.simtong.domain.holiday.value +package team.comit.simtong.global.value /** * diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/value/WebHolidayStatus.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/WebHolidayStatus.kt similarity index 86% rename from simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/value/WebHolidayStatus.kt rename to simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/WebHolidayStatus.kt index 35add38a..ef5d61f0 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/value/WebHolidayStatus.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/WebHolidayStatus.kt @@ -1,4 +1,4 @@ -package team.comit.simtong.domain.holiday.value +package team.comit.simtong.global.value /** * From bb158852034ae868a8529117d01063145d5d80ff Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Thu, 5 Jan 2023 23:11:03 +0900 Subject: [PATCH 19/37] =?UTF-8?q?add:=20(#280)=20=EC=9A=94=EC=B2=AD=20?= =?UTF-8?q?=EA=B0=92=20=EA=B0=9D=EC=B2=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../simtong/global/value/EmployeeNumber.kt | 20 ++++++++++++++ .../comit/simtong/global/value/NickName.kt | 26 +++++++++++++++++++ .../comit/simtong/global/value/Password.kt | 26 +++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/EmployeeNumber.kt create mode 100644 simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/NickName.kt create mode 100644 simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/Password.kt diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/EmployeeNumber.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/EmployeeNumber.kt new file mode 100644 index 00000000..311786f1 --- /dev/null +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/EmployeeNumber.kt @@ -0,0 +1,20 @@ +package team.comit.simtong.global.value + +/** + * + * 사원번호를 의미하는 EmployeeNumber + * + * @author Chokyunghyeon + * @date 2023/01/04 + * @version 1.2.3 + **/ +@JvmInline +value class EmployeeNumber( + val value: Int +) { + companion object { + const val MIN: Long = 1200000000 + const val MAX: Long = 1299999999 + } + +} \ No newline at end of file diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/NickName.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/NickName.kt new file mode 100644 index 00000000..103cbc52 --- /dev/null +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/NickName.kt @@ -0,0 +1,26 @@ +package team.comit.simtong.global.value + +/** + * + * 닉네임을 의미하는 NickName + * + * @author Chokyunghyeon + * @date 2023/01/04 + * @version 1.2.3 + **/ +@JvmInline +value class NickName( + val value: String +) { + companion object { + + /** + * first word & Last word - space X + * + * space , _ , . , a ~ z , A ~ Z , 가 ~ 힣 , 0 ~ 9 + * + * length - 1 ~ 20 + **/ + const val PATTERN = """(?=^\S)(?=^[\w\s가-힣.]{1,20}$).*(?=\S$).""" + } +} \ No newline at end of file diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/Password.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/Password.kt new file mode 100644 index 00000000..a363734a --- /dev/null +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/Password.kt @@ -0,0 +1,26 @@ +package team.comit.simtong.global.value + +/** + * + * 비밀번호를 의미하는 Password + * + * @author Chokyunghyeon + * @date 2023/01/04 + * @version 1.2.3 + **/ +@JvmInline +value class Password( + val value: String +) { + companion object { + + /** + * a ~ z or A ~ Z & 0 ~ 9 - must more than once + * + * non-space, $ , + , - , _ , a ~ z , A ~ Z , 0 ~ 9 + * + * length - 8 ~ 20 + **/ + const val PATTERN = """(?=.*[a-zA-Z])(?=.*\d)(?=^[\w$+-]{8,20}$).*""" + } +} \ No newline at end of file From 6e6294b61bdbf9ba634a8f2886aaab50038c65b9 Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Thu, 5 Jan 2023 23:11:33 +0900 Subject: [PATCH 20/37] =?UTF-8?q?refactor:=20(#280)=20=EB=B3=80=EA=B2=BD?= =?UTF-8?q?=EC=82=AC=ED=95=AD=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../simtong/domain/admin/WebAdminAdapter.kt | 6 ++-- .../simtong/domain/admin/dto/request/.gitkeep | 0 .../admin/dto/request/SignInWebRequest.kt | 8 +++-- .../domain/holiday/WebHolidayAdapter.kt | 4 +-- .../simtong/domain/user/WebUserAdapter.kt | 29 ++++++++++--------- .../dto/request/ChangeNicknameWebRequest.kt | 8 ++--- .../user/dto/request/SignInWebRequest.kt | 8 +++-- .../user/dto/request/SignUpWebRequest.kt | 20 +++++++------ 8 files changed, 45 insertions(+), 38 deletions(-) delete mode 100644 simtong-presentation/src/main/kotlin/team/comit/simtong/domain/admin/dto/request/.gitkeep diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/admin/WebAdminAdapter.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/admin/WebAdminAdapter.kt index 5c31502c..2ee4ba8f 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/admin/WebAdminAdapter.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/admin/WebAdminAdapter.kt @@ -19,7 +19,7 @@ import javax.validation.Valid * * @author Chokyunghyeon * @date 2022/10/04 - * @version 1.0.0 + * @version 1.2.3 **/ @RestController @RequestMapping("/admins") @@ -32,8 +32,8 @@ class WebAdminAdapter( fun signIn(@Valid @RequestBody request: SignInWebRequest): TokenResponse { return adminSignInUseCase.execute( AdminSignInRequest( - employeeNumber = request.employeeNumber, - password = request.password + employeeNumber = request.employeeNumber.value, + password = request.password.value ) ) } diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/admin/dto/request/.gitkeep b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/admin/dto/request/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/admin/dto/request/SignInWebRequest.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/admin/dto/request/SignInWebRequest.kt index d3a68582..00015626 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/admin/dto/request/SignInWebRequest.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/admin/dto/request/SignInWebRequest.kt @@ -1,5 +1,7 @@ package team.comit.simtong.domain.admin.dto.request +import team.comit.simtong.global.value.EmployeeNumber +import team.comit.simtong.global.value.Password import javax.validation.constraints.NotBlank import javax.validation.constraints.NotNull @@ -9,13 +11,13 @@ import javax.validation.constraints.NotNull * * @author kimbeomjin * @date 2023/01/01 - * @version 1.1.0 + * @version 1.2.3 **/ data class SignInWebRequest( @field:NotNull - val employeeNumber: Int, + val employeeNumber: EmployeeNumber, @field:NotBlank - val password: String + val password: Password ) \ No newline at end of file diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/WebHolidayAdapter.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/WebHolidayAdapter.kt index 56ed4ddc..b4c778f9 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/WebHolidayAdapter.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/WebHolidayAdapter.kt @@ -32,8 +32,8 @@ import team.comit.simtong.domain.holiday.usecase.QueryIndividualHolidayUseCase import team.comit.simtong.domain.holiday.usecase.QueryMonthHolidayPeriodUseCase import team.comit.simtong.domain.holiday.usecase.QueryRemainAnnualUseCase import team.comit.simtong.domain.holiday.usecase.ShareHolidayUseCase -import team.comit.simtong.domain.holiday.value.WebHolidayQueryType -import team.comit.simtong.domain.holiday.value.WebHolidayStatus +import team.comit.simtong.global.value.WebHolidayQueryType +import team.comit.simtong.global.value.WebHolidayStatus import java.time.LocalDate import java.util.UUID import javax.validation.Valid diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/WebUserAdapter.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/WebUserAdapter.kt index a723a098..9b00d616 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/WebUserAdapter.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/WebUserAdapter.kt @@ -16,8 +16,8 @@ import team.comit.simtong.domain.user.dto.ChangeEmailRequest import team.comit.simtong.domain.user.dto.ChangeNicknameRequest import team.comit.simtong.domain.user.dto.ChangeProfileImageRequest import team.comit.simtong.domain.user.dto.QueryUserInfoResponse -import team.comit.simtong.domain.user.dto.UserSignInRequest import team.comit.simtong.domain.user.dto.SignUpRequest +import team.comit.simtong.domain.user.dto.UserSignInRequest import team.comit.simtong.domain.user.dto.request.ChangeEmailWebRequest import team.comit.simtong.domain.user.dto.request.ChangeNicknameWebRequest import team.comit.simtong.domain.user.dto.request.ChangeProfileImageWebRequest @@ -32,7 +32,8 @@ import team.comit.simtong.domain.user.usecase.CheckNicknameDuplicationUseCase import team.comit.simtong.domain.user.usecase.QueryUserInfoUseCase import team.comit.simtong.domain.user.usecase.SignInUseCase import team.comit.simtong.domain.user.usecase.SignUpUseCase -import team.comit.simtong.global.RegexUtils +import team.comit.simtong.global.value.EmployeeNumber +import team.comit.simtong.global.value.NickName import javax.validation.Valid import javax.validation.constraints.Pattern @@ -43,7 +44,7 @@ import javax.validation.constraints.Pattern * @author Chokyunghyeon * @author kimbeomjin * @date 2022/09/04 - * @version 1.0.0 + * @version 1.2.3 **/ @Validated @RestController @@ -67,10 +68,10 @@ class WebUserAdapter( SignUpRequest( name = request.name, email = request.email, - password = request.password, - nickname = request.nickname, + password = request.password.value, + nickname = request.nickname.value, profileImagePath = request.profileImagePath, - employeeNumber = request.employeeNumber, + employeeNumber = request.employeeNumber.value, deviceToken = request.deviceToken ) ) @@ -80,8 +81,8 @@ class WebUserAdapter( fun signIn(@Valid @RequestBody request: SignInWebRequest): TokenResponse { return signInUseCase.execute( UserSignInRequest( - employeeNumber = request.employeeNumber, - password = request.password, + employeeNumber = request.employeeNumber.value, + password = request.password.value, deviceToken = request.deviceToken ) ) @@ -96,7 +97,7 @@ class WebUserAdapter( @ResponseStatus(HttpStatus.NO_CONTENT) fun changeNickname(@Valid @RequestBody request: ChangeNicknameWebRequest) { changeNicknameUseCase.execute( - ChangeNicknameRequest(request.nickname) + ChangeNicknameRequest(request.nickname.value) ) } @@ -124,18 +125,18 @@ class WebUserAdapter( @GetMapping("/nickname/duplication") fun checkNicknameDuplication( - @Pattern(regexp = RegexUtils.NICKNAME_PATTERN) - @RequestParam nickname: String + @Pattern(regexp = NickName.PATTERN) + @RequestParam nickname: NickName ) { - checkNicknameDuplicationUseCase.execute(nickname) + checkNicknameDuplicationUseCase.execute(nickname.value) } @GetMapping("/verification-employee") fun checkEmployee( @RequestParam name: String, - @RequestParam("employee_number") employeeNumber: Int + @RequestParam("employee_number") employeeNumber: EmployeeNumber ) { - checkEmployeeUseCase.execute(name, employeeNumber) + checkEmployeeUseCase.execute(name, employeeNumber.value) } } \ No newline at end of file diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/ChangeNicknameWebRequest.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/ChangeNicknameWebRequest.kt index fc6b3e75..ec2f67ea 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/ChangeNicknameWebRequest.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/ChangeNicknameWebRequest.kt @@ -1,6 +1,6 @@ package team.comit.simtong.domain.user.dto.request -import team.comit.simtong.global.RegexUtils +import team.comit.simtong.global.value.NickName import javax.validation.constraints.Pattern /** @@ -9,9 +9,9 @@ import javax.validation.constraints.Pattern * * @author Chokyunghyeon * @date 2022/10/03 - * @version 1.0.0 + * @version 1.2.3 **/ data class ChangeNicknameWebRequest( - @field:Pattern(regexp = RegexUtils.NICKNAME_PATTERN) - val nickname: String + @field:Pattern(regexp = NickName.PATTERN) + val nickname: NickName ) \ No newline at end of file diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/SignInWebRequest.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/SignInWebRequest.kt index 6c9d309e..d3cb7fcf 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/SignInWebRequest.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/SignInWebRequest.kt @@ -1,5 +1,7 @@ package team.comit.simtong.domain.user.dto.request +import team.comit.simtong.global.value.EmployeeNumber +import team.comit.simtong.global.value.Password import javax.validation.constraints.NotBlank import javax.validation.constraints.NotNull @@ -9,15 +11,15 @@ import javax.validation.constraints.NotNull * * @author kimbeomjin * @date 2022/09/08 - * @version 1.0.0 + * @version 1.2.3 **/ data class SignInWebRequest( @field:NotNull - val employeeNumber: Int, + val employeeNumber: EmployeeNumber, @field:NotBlank - val password: String, + val password: Password, @field:NotBlank val deviceToken: String diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/SignUpWebRequest.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/SignUpWebRequest.kt index 62203cb0..e423731a 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/SignUpWebRequest.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/SignUpWebRequest.kt @@ -1,7 +1,9 @@ package team.comit.simtong.domain.user.dto.request import org.hibernate.validator.constraints.Range -import team.comit.simtong.global.RegexUtils +import team.comit.simtong.global.value.EmployeeNumber +import team.comit.simtong.global.value.NickName +import team.comit.simtong.global.value.Password import javax.validation.constraints.Email import javax.validation.constraints.NotBlank import javax.validation.constraints.NotNull @@ -13,7 +15,7 @@ import javax.validation.constraints.Pattern * * @author Chokyunghyeon * @date 2022/09/04 - * @version 1.2.1 + * @version 1.2.3 **/ data class SignUpWebRequest( @@ -26,16 +28,16 @@ data class SignUpWebRequest( @field:NotNull @field:Range( - min = 1200000000, - max = 1299999999 + min = EmployeeNumber.MIN, + max = EmployeeNumber.MAX ) - val employeeNumber: Int, + val employeeNumber: EmployeeNumber, - @field:Pattern(regexp = RegexUtils.SECRET_PATTERN) - val password: String, + @field:Pattern(regexp = Password.PATTERN) + val password: Password, - @field:Pattern(regexp = RegexUtils.NICKNAME_PATTERN) - val nickname: String, + @field:Pattern(regexp = NickName.PATTERN) + val nickname: NickName, val profileImagePath: String?, From 0cabbdd36e47f47815c1e0de3e7d3d1f1eb9999c Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Thu, 5 Jan 2023 23:11:54 +0900 Subject: [PATCH 21/37] =?UTF-8?q?revert:=20(#280)=20=EC=A0=95=EA=B7=9C?= =?UTF-8?q?=ED=91=9C=ED=98=84=EC=8B=9D=20=EC=9C=A0=ED=8B=B8=EB=A6=AC?= =?UTF-8?q?=ED=8B=B0=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../team/comit/simtong/global/RegexUtils.kt | 31 ------------------- 1 file changed, 31 deletions(-) delete mode 100644 simtong-presentation/src/main/kotlin/team/comit/simtong/global/RegexUtils.kt diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/global/RegexUtils.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/global/RegexUtils.kt deleted file mode 100644 index c01226eb..00000000 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/global/RegexUtils.kt +++ /dev/null @@ -1,31 +0,0 @@ -package team.comit.simtong.global - -/** - * - * 정규식들을 관리하는 RegexUtil - * - * @author kimbeomjin - * @date 2022/10/16 - * @version 1.0.0 - **/ -object RegexUtils { - - /** - * first word & Last word - space X - * - * space , _ , . , a ~ z , A ~ Z , 가 ~ 힣 , 0 ~ 9 - * - * length - 1 ~ 20 - **/ - const val NICKNAME_PATTERN = """(?=^\S)(?=^[\w\s가-힣.]{1,20}$).*(?=\S$).""" - - /** - * a ~ z or A ~ Z & 0 ~ 9 - must more than once - * - * non-space, $ , + , - , _ , a ~ z , A ~ Z , 0 ~ 9 - * - * length - 8 ~ 20 - **/ - const val SECRET_PATTERN = """(?=.*[a-zA-Z])(?=.*\d)(?=^[\w$+-]{8,20}$).*""" - -} \ No newline at end of file From c2d36d511c656a7c2ed672817c69d2d69672e80d Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Thu, 5 Jan 2023 23:26:19 +0900 Subject: [PATCH 22/37] =?UTF-8?q?refactor:=20(#280)=20=EB=88=84=EB=9D=BD?= =?UTF-8?q?=EB=90=9C=20=EB=B6=80=EB=B6=84=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../simtong/domain/common/WebCommonAdapter.kt | 15 ++++++++------- .../dto/request/ChangePasswordWebRequest.kt | 8 ++++---- .../dto/request/CheckMatchedAccountWebRequest.kt | 3 ++- .../common/dto/request/ResetPasswordWebRequest.kt | 13 +++++++------ 4 files changed, 21 insertions(+), 18 deletions(-) diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/WebCommonAdapter.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/WebCommonAdapter.kt index 8dfdf52c..95f6930e 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/WebCommonAdapter.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/WebCommonAdapter.kt @@ -24,6 +24,7 @@ import team.comit.simtong.domain.user.usecase.CheckMatchedAccountUseCase import team.comit.simtong.domain.user.usecase.ComparePasswordUseCase import team.comit.simtong.domain.user.usecase.FindEmployeeNumberUseCase import team.comit.simtong.domain.user.usecase.ResetPasswordUseCase +import team.comit.simtong.global.value.Password import java.util.UUID import javax.validation.Valid import javax.validation.constraints.Email @@ -76,8 +77,8 @@ class WebCommonAdapter( resetPasswordUseCase.execute( ResetPasswordRequest( email = request.email, - employeeNumber = request.employeeNumber, - newPassword = request.newPassword + employeeNumber = request.employeeNumber.value, + newPassword = request.newPassword.value ) ) } @@ -92,8 +93,8 @@ class WebCommonAdapter( fun changePassword(@Valid @RequestBody request: ChangePasswordWebRequest) { changePasswordUseCase.execute( ChangePasswordRequest( - password = request.password, - newPassword = request.newPassword + password = request.password.value, + newPassword = request.newPassword.value ) ) } @@ -102,7 +103,7 @@ class WebCommonAdapter( fun checkMatchedAccount(@Valid @ModelAttribute request: CheckMatchedAccountWebRequest) { checkMatchedAccountUseCase.execute( CheckMatchedAccountRequest( - employeeNumber = request.employeeNumber, + employeeNumber = request.employeeNumber.value, email = request.email ) ) @@ -114,8 +115,8 @@ class WebCommonAdapter( } @GetMapping("/password/compare") - fun comparePassword(@NotBlank @RequestParam password: String) { - comparePasswordUseCase.execute(password) + fun comparePassword(@NotBlank @RequestParam password: Password) { + comparePasswordUseCase.execute(password.value) } @GetMapping("/team/{spot-id}") diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/ChangePasswordWebRequest.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/ChangePasswordWebRequest.kt index 664ccba8..6276d6f4 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/ChangePasswordWebRequest.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/ChangePasswordWebRequest.kt @@ -1,6 +1,6 @@ package team.comit.simtong.domain.common.dto.request -import team.comit.simtong.global.RegexUtils +import team.comit.simtong.global.value.Password import javax.validation.constraints.NotBlank import javax.validation.constraints.Pattern @@ -15,8 +15,8 @@ import javax.validation.constraints.Pattern data class ChangePasswordWebRequest( @field:NotBlank - val password: String, + val password: Password, - @field:Pattern(regexp = RegexUtils.SECRET_PATTERN) - val newPassword: String + @field:Pattern(regexp = Password.PATTERN) + val newPassword: Password ) \ No newline at end of file diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/CheckMatchedAccountWebRequest.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/CheckMatchedAccountWebRequest.kt index 03324f24..22431a45 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/CheckMatchedAccountWebRequest.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/CheckMatchedAccountWebRequest.kt @@ -1,5 +1,6 @@ package team.comit.simtong.domain.common.dto.request +import team.comit.simtong.global.value.EmployeeNumber import javax.validation.constraints.Email import javax.validation.constraints.NotBlank import javax.validation.constraints.NotNull @@ -14,7 +15,7 @@ import javax.validation.constraints.NotNull **/ data class CheckMatchedAccountWebRequest( @field:NotNull - val employeeNumber: Int, + val employeeNumber: EmployeeNumber, @field:NotBlank @field:Email diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/ResetPasswordWebRequest.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/ResetPasswordWebRequest.kt index c59a23b0..177d8447 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/ResetPasswordWebRequest.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/ResetPasswordWebRequest.kt @@ -1,7 +1,8 @@ package team.comit.simtong.domain.common.dto.request import org.hibernate.validator.constraints.Range -import team.comit.simtong.global.RegexUtils +import team.comit.simtong.global.value.EmployeeNumber +import team.comit.simtong.global.value.Password import javax.validation.constraints.Email import javax.validation.constraints.NotBlank import javax.validation.constraints.NotNull @@ -22,11 +23,11 @@ data class ResetPasswordWebRequest( @field:NotNull @field:Range( - min = 1200000000, - max = 1299999999 + min = EmployeeNumber.MIN, + max = EmployeeNumber.MAX ) - val employeeNumber: Int, + val employeeNumber: EmployeeNumber, - @field:Pattern(regexp = RegexUtils.SECRET_PATTERN) - val newPassword: String + @field:Pattern(regexp = Password.PATTERN) + val newPassword: Password ) \ No newline at end of file From df3d71657b17299725e83a3db3c64b5bfd7a4453 Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Fri, 6 Jan 2023 21:18:43 +0900 Subject: [PATCH 23/37] =?UTF-8?q?refactor:=20(#280)=20=EC=A0=95=EA=B7=9C?= =?UTF-8?q?=EC=8B=9D=20=EC=B5=9C=EC=86=8C,=20=EC=B5=9C=EB=8C=80=20?= =?UTF-8?q?=EA=B8=B8=EC=9D=B4=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../simtong/{global => domain/user}/value/NickName.kt | 10 +++++----- .../simtong/{global => domain/user}/value/Password.kt | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) rename simtong-presentation/src/main/kotlin/team/comit/simtong/{global => domain/user}/value/NickName.kt (62%) rename simtong-presentation/src/main/kotlin/team/comit/simtong/{global => domain/user}/value/Password.kt (75%) diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/NickName.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/value/NickName.kt similarity index 62% rename from simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/NickName.kt rename to simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/value/NickName.kt index 103cbc52..60c72081 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/NickName.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/value/NickName.kt @@ -1,4 +1,4 @@ -package team.comit.simtong.global.value +package team.comit.simtong.domain.user.value /** * @@ -13,14 +13,14 @@ value class NickName( val value: String ) { companion object { + const val MIN_LENGTH = 1 + const val MAX_LENGTH = 20 /** * first word & Last word - space X * * space , _ , . , a ~ z , A ~ Z , 가 ~ 힣 , 0 ~ 9 - * - * length - 1 ~ 20 - **/ - const val PATTERN = """(?=^\S)(?=^[\w\s가-힣.]{1,20}$).*(?=\S$).""" + */ + const val PATTERN = """(?=^\S)(?=^[\w\s가-힣.]*$).*(?=\S$).""" } } \ No newline at end of file diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/Password.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/value/Password.kt similarity index 75% rename from simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/Password.kt rename to simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/value/Password.kt index a363734a..10c2ff5b 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/Password.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/value/Password.kt @@ -1,4 +1,4 @@ -package team.comit.simtong.global.value +package team.comit.simtong.domain.user.value /** * @@ -13,14 +13,14 @@ value class Password( val value: String ) { companion object { + const val MIN_LENGTH = 8 + const val MAX_LENGTH = 20 /** * a ~ z or A ~ Z & 0 ~ 9 - must more than once * * non-space, $ , + , - , _ , a ~ z , A ~ Z , 0 ~ 9 - * - * length - 8 ~ 20 - **/ - const val PATTERN = """(?=.*[a-zA-Z])(?=.*\d)(?=^[\w$+-]{8,20}$).*""" + */ + const val PATTERN = """(?=.*[a-zA-Z])(?=.*\d)(?=^[\w$+-]*$).*""" } } \ No newline at end of file From 528793cf05968a4fec0138dd58c7d6b29721fb62 Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Fri, 6 Jan 2023 21:19:09 +0900 Subject: [PATCH 24/37] =?UTF-8?q?style:=20(#280)=20=EC=83=81=EC=88=98=20?= =?UTF-8?q?=EB=AA=85=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{global => domain/user}/value/EmployeeNumber.kt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) rename simtong-presentation/src/main/kotlin/team/comit/simtong/{global => domain/user}/value/EmployeeNumber.kt (61%) diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/EmployeeNumber.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/value/EmployeeNumber.kt similarity index 61% rename from simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/EmployeeNumber.kt rename to simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/value/EmployeeNumber.kt index 311786f1..ed2d5e60 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/EmployeeNumber.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/value/EmployeeNumber.kt @@ -1,4 +1,4 @@ -package team.comit.simtong.global.value +package team.comit.simtong.domain.user.value /** * @@ -13,8 +13,7 @@ value class EmployeeNumber( val value: Int ) { companion object { - const val MIN: Long = 1200000000 - const val MAX: Long = 1299999999 + const val MIN_VALUE: Long = 1200000000 + const val MAX_VALUE: Long = 1299999999 } - } \ No newline at end of file From 90d6f95015de7bdca2bea7b1fa5c81ae8c20275d Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Fri, 6 Jan 2023 21:21:40 +0900 Subject: [PATCH 25/37] =?UTF-8?q?refactor:=20(#280)=20value=20=EA=B0=9D?= =?UTF-8?q?=EC=B2=B4=20Length=20&=20Range=20=EC=9C=A0=ED=9A=A8=EC=84=B1=20?= =?UTF-8?q?=EA=B2=80=EC=82=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/dto/request/SignInWebRequest.kt | 9 +++++---- .../dto/request/ChangePasswordWebRequest.kt | 11 +++++----- .../request/CheckMatchedAccountWebRequest.kt | 8 ++++---- .../dto/request/ResetPasswordWebRequest.kt | 15 ++++++-------- .../simtong/domain/user/WebUserAdapter.kt | 8 ++++++-- .../dto/request/ChangeNicknameWebRequest.kt | 6 ++++-- .../user/dto/request/SignInWebRequest.kt | 9 +++++---- .../user/dto/request/SignUpWebRequest.kt | 20 +++++++++---------- 8 files changed, 45 insertions(+), 41 deletions(-) diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/admin/dto/request/SignInWebRequest.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/admin/dto/request/SignInWebRequest.kt index 00015626..49bde3b7 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/admin/dto/request/SignInWebRequest.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/admin/dto/request/SignInWebRequest.kt @@ -1,21 +1,22 @@ package team.comit.simtong.domain.admin.dto.request -import team.comit.simtong.global.value.EmployeeNumber -import team.comit.simtong.global.value.Password +import org.hibernate.validator.constraints.Range +import team.comit.simtong.domain.user.value.EmployeeNumber +import team.comit.simtong.domain.user.value.Password import javax.validation.constraints.NotBlank -import javax.validation.constraints.NotNull /** * * 관리자가 로그인을 요청하는 SignInWebRequest * * @author kimbeomjin + * @author Chokyunghyeon * @date 2023/01/01 * @version 1.2.3 **/ data class SignInWebRequest( - @field:NotNull + @Range(min = EmployeeNumber.MIN_VALUE, max = EmployeeNumber.MAX_VALUE) val employeeNumber: EmployeeNumber, @field:NotBlank diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/ChangePasswordWebRequest.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/ChangePasswordWebRequest.kt index 6276d6f4..1284917d 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/ChangePasswordWebRequest.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/ChangePasswordWebRequest.kt @@ -1,7 +1,7 @@ package team.comit.simtong.domain.common.dto.request -import team.comit.simtong.global.value.Password -import javax.validation.constraints.NotBlank +import org.hibernate.validator.constraints.Length +import team.comit.simtong.domain.user.value.Password import javax.validation.constraints.Pattern /** @@ -10,13 +10,14 @@ import javax.validation.constraints.Pattern * * @author Chokyunghyeon * @date 2022/10/14 - * @version 1.0.0 + * @version 1.2.3 **/ data class ChangePasswordWebRequest( - - @field:NotBlank + @field:Length(min = Password.MIN_LENGTH, max = Password.MAX_LENGTH) + @field:Pattern(regexp = Password.PATTERN) val password: Password, + @field:Length(min = Password.MIN_LENGTH, max = Password.MAX_LENGTH) @field:Pattern(regexp = Password.PATTERN) val newPassword: Password ) \ No newline at end of file diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/CheckMatchedAccountWebRequest.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/CheckMatchedAccountWebRequest.kt index 22431a45..4fdf0c73 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/CheckMatchedAccountWebRequest.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/CheckMatchedAccountWebRequest.kt @@ -1,9 +1,9 @@ package team.comit.simtong.domain.common.dto.request -import team.comit.simtong.global.value.EmployeeNumber +import org.hibernate.validator.constraints.Range +import team.comit.simtong.domain.user.value.EmployeeNumber import javax.validation.constraints.Email import javax.validation.constraints.NotBlank -import javax.validation.constraints.NotNull /** * @@ -11,10 +11,10 @@ import javax.validation.constraints.NotNull * * @author Chokyunghyeon * @date 2022/10/15 - * @version 1.0.0 + * @version 1.2.3 **/ data class CheckMatchedAccountWebRequest( - @field:NotNull + @field:Range(min = EmployeeNumber.MIN_VALUE, max = EmployeeNumber.MAX_VALUE) val employeeNumber: EmployeeNumber, @field:NotBlank diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/ResetPasswordWebRequest.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/ResetPasswordWebRequest.kt index 177d8447..49ea389b 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/ResetPasswordWebRequest.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/ResetPasswordWebRequest.kt @@ -1,11 +1,11 @@ package team.comit.simtong.domain.common.dto.request +import org.hibernate.validator.constraints.Length import org.hibernate.validator.constraints.Range -import team.comit.simtong.global.value.EmployeeNumber -import team.comit.simtong.global.value.Password +import team.comit.simtong.domain.user.value.EmployeeNumber +import team.comit.simtong.domain.user.value.Password import javax.validation.constraints.Email import javax.validation.constraints.NotBlank -import javax.validation.constraints.NotNull import javax.validation.constraints.Pattern /** @@ -14,20 +14,17 @@ import javax.validation.constraints.Pattern * * @author Chokyunghyeon * @date 2022/10/03 - * @version 1.0.0 + * @version 1.2.3 **/ data class ResetPasswordWebRequest( @field:NotBlank @field:Email val email: String, - @field:NotNull - @field:Range( - min = EmployeeNumber.MIN, - max = EmployeeNumber.MAX - ) + @field:Range(min = EmployeeNumber.MIN_VALUE, max = EmployeeNumber.MAX_VALUE) val employeeNumber: EmployeeNumber, + @field:Length(min = Password.MIN_LENGTH, max = Password.MAX_LENGTH) @field:Pattern(regexp = Password.PATTERN) val newPassword: Password ) \ No newline at end of file diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/WebUserAdapter.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/WebUserAdapter.kt index 9b00d616..20580144 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/WebUserAdapter.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/WebUserAdapter.kt @@ -1,5 +1,7 @@ package team.comit.simtong.domain.user +import org.hibernate.validator.constraints.Length +import org.hibernate.validator.constraints.Range import org.springframework.http.HttpStatus import org.springframework.validation.annotation.Validated import org.springframework.web.bind.annotation.GetMapping @@ -32,8 +34,8 @@ import team.comit.simtong.domain.user.usecase.CheckNicknameDuplicationUseCase import team.comit.simtong.domain.user.usecase.QueryUserInfoUseCase import team.comit.simtong.domain.user.usecase.SignInUseCase import team.comit.simtong.domain.user.usecase.SignUpUseCase -import team.comit.simtong.global.value.EmployeeNumber -import team.comit.simtong.global.value.NickName +import team.comit.simtong.domain.user.value.EmployeeNumber +import team.comit.simtong.domain.user.value.NickName import javax.validation.Valid import javax.validation.constraints.Pattern @@ -125,6 +127,7 @@ class WebUserAdapter( @GetMapping("/nickname/duplication") fun checkNicknameDuplication( + @Length(min = NickName.MIN_LENGTH, max = NickName.MAX_LENGTH) @Pattern(regexp = NickName.PATTERN) @RequestParam nickname: NickName ) { @@ -134,6 +137,7 @@ class WebUserAdapter( @GetMapping("/verification-employee") fun checkEmployee( @RequestParam name: String, + @Range(min = EmployeeNumber.MIN_VALUE, max = EmployeeNumber.MAX_VALUE) @RequestParam("employee_number") employeeNumber: EmployeeNumber ) { checkEmployeeUseCase.execute(name, employeeNumber.value) diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/ChangeNicknameWebRequest.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/ChangeNicknameWebRequest.kt index ec2f67ea..70e7e3b4 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/ChangeNicknameWebRequest.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/ChangeNicknameWebRequest.kt @@ -1,6 +1,7 @@ package team.comit.simtong.domain.user.dto.request -import team.comit.simtong.global.value.NickName +import org.hibernate.validator.constraints.Length +import team.comit.simtong.domain.user.value.NickName import javax.validation.constraints.Pattern /** @@ -12,6 +13,7 @@ import javax.validation.constraints.Pattern * @version 1.2.3 **/ data class ChangeNicknameWebRequest( - @field:Pattern(regexp = NickName.PATTERN) + @Length(min = NickName.MIN_LENGTH, max = NickName.MAX_LENGTH) + @Pattern(regexp = NickName.PATTERN) val nickname: NickName ) \ No newline at end of file diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/SignInWebRequest.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/SignInWebRequest.kt index d3cb7fcf..e3b78f75 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/SignInWebRequest.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/SignInWebRequest.kt @@ -1,21 +1,22 @@ package team.comit.simtong.domain.user.dto.request -import team.comit.simtong.global.value.EmployeeNumber -import team.comit.simtong.global.value.Password +import org.hibernate.validator.constraints.Range +import team.comit.simtong.domain.user.value.EmployeeNumber +import team.comit.simtong.domain.user.value.Password import javax.validation.constraints.NotBlank -import javax.validation.constraints.NotNull /** * * 일반 사용자가 로그인을 요청하는 SignInWebRequest * * @author kimbeomjin + * @author Chokyunghyeon * @date 2022/09/08 * @version 1.2.3 **/ data class SignInWebRequest( - @field:NotNull + @field:Range(min = EmployeeNumber.MIN_VALUE, max = EmployeeNumber.MAX_VALUE) val employeeNumber: EmployeeNumber, @field:NotBlank diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/SignUpWebRequest.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/SignUpWebRequest.kt index e423731a..4261649a 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/SignUpWebRequest.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/SignUpWebRequest.kt @@ -1,12 +1,12 @@ package team.comit.simtong.domain.user.dto.request +import org.hibernate.validator.constraints.Length import org.hibernate.validator.constraints.Range -import team.comit.simtong.global.value.EmployeeNumber -import team.comit.simtong.global.value.NickName -import team.comit.simtong.global.value.Password +import team.comit.simtong.domain.user.value.EmployeeNumber +import team.comit.simtong.domain.user.value.NickName +import team.comit.simtong.domain.user.value.Password import javax.validation.constraints.Email import javax.validation.constraints.NotBlank -import javax.validation.constraints.NotNull import javax.validation.constraints.Pattern /** @@ -26,17 +26,15 @@ data class SignUpWebRequest( @field:Email val email: String, - @field:NotNull - @field:Range( - min = EmployeeNumber.MIN, - max = EmployeeNumber.MAX - ) + @Range(min = EmployeeNumber.MIN_VALUE, max = EmployeeNumber.MAX_VALUE) val employeeNumber: EmployeeNumber, - @field:Pattern(regexp = Password.PATTERN) + @Length(min = Password.MIN_LENGTH, max = Password.MAX_LENGTH) + @Pattern(regexp = Password.PATTERN) val password: Password, - @field:Pattern(regexp = NickName.PATTERN) + @Length(min = NickName.MIN_LENGTH, max = NickName.MAX_LENGTH) + @Pattern(regexp = NickName.PATTERN) val nickname: NickName, val profileImagePath: String?, From bcced1808f679f306ac975f824fb1acd54e04746 Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Fri, 6 Jan 2023 21:22:03 +0900 Subject: [PATCH 26/37] =?UTF-8?q?chore:=20(#280)=20value=20=EA=B0=9D?= =?UTF-8?q?=EC=B2=B4=20=ED=8C=A8=ED=82=A4=EC=A7=80=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../team/comit/simtong/domain/common/WebCommonAdapter.kt | 2 +- .../team/comit/simtong/domain/holiday/WebHolidayAdapter.kt | 4 ++-- .../{global => domain/holiday}/value/WebHolidayQueryType.kt | 2 +- .../{global => domain/holiday}/value/WebHolidayStatus.kt | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) rename simtong-presentation/src/main/kotlin/team/comit/simtong/{global => domain/holiday}/value/WebHolidayQueryType.kt (87%) rename simtong-presentation/src/main/kotlin/team/comit/simtong/{global => domain/holiday}/value/WebHolidayStatus.kt (86%) diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/WebCommonAdapter.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/WebCommonAdapter.kt index 95f6930e..58a04b9b 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/WebCommonAdapter.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/WebCommonAdapter.kt @@ -24,7 +24,7 @@ import team.comit.simtong.domain.user.usecase.CheckMatchedAccountUseCase import team.comit.simtong.domain.user.usecase.ComparePasswordUseCase import team.comit.simtong.domain.user.usecase.FindEmployeeNumberUseCase import team.comit.simtong.domain.user.usecase.ResetPasswordUseCase -import team.comit.simtong.global.value.Password +import team.comit.simtong.domain.user.value.Password import java.util.UUID import javax.validation.Valid import javax.validation.constraints.Email diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/WebHolidayAdapter.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/WebHolidayAdapter.kt index b4c778f9..56ed4ddc 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/WebHolidayAdapter.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/WebHolidayAdapter.kt @@ -32,8 +32,8 @@ import team.comit.simtong.domain.holiday.usecase.QueryIndividualHolidayUseCase import team.comit.simtong.domain.holiday.usecase.QueryMonthHolidayPeriodUseCase import team.comit.simtong.domain.holiday.usecase.QueryRemainAnnualUseCase import team.comit.simtong.domain.holiday.usecase.ShareHolidayUseCase -import team.comit.simtong.global.value.WebHolidayQueryType -import team.comit.simtong.global.value.WebHolidayStatus +import team.comit.simtong.domain.holiday.value.WebHolidayQueryType +import team.comit.simtong.domain.holiday.value.WebHolidayStatus import java.time.LocalDate import java.util.UUID import javax.validation.Valid diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/WebHolidayQueryType.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/value/WebHolidayQueryType.kt similarity index 87% rename from simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/WebHolidayQueryType.kt rename to simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/value/WebHolidayQueryType.kt index a1b84ccc..28700249 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/WebHolidayQueryType.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/value/WebHolidayQueryType.kt @@ -1,4 +1,4 @@ -package team.comit.simtong.global.value +package team.comit.simtong.domain.holiday.value /** * diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/WebHolidayStatus.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/value/WebHolidayStatus.kt similarity index 86% rename from simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/WebHolidayStatus.kt rename to simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/value/WebHolidayStatus.kt index ef5d61f0..35add38a 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/global/value/WebHolidayStatus.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/holiday/value/WebHolidayStatus.kt @@ -1,4 +1,4 @@ -package team.comit.simtong.global.value +package team.comit.simtong.domain.holiday.value /** * From 32da710833bab7a2a34c8c6ee43856c26fe595ad Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Fri, 6 Jan 2023 21:24:20 +0900 Subject: [PATCH 27/37] =?UTF-8?q?build:=20(#280)=20dev=20redis=20propertie?= =?UTF-8?q?s=20=ED=99=98=EA=B2=BD=EB=B3=80=EC=88=98=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-dev.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/simtong-infrastructure/src/main/resources/application-dev.yml b/simtong-infrastructure/src/main/resources/application-dev.yml index 6255e052..54d1bbe3 100644 --- a/simtong-infrastructure/src/main/resources/application-dev.yml +++ b/simtong-infrastructure/src/main/resources/application-dev.yml @@ -20,9 +20,9 @@ spring: open-in-view: false redis: - port: 6379 - host: localhost - password: 1234 + port: ${REDIS_PORT:6379} + host: ${REDIS_HOST:localhost} + password: ${REDIS_PASSWORD:1234} security: secret-key: ${SECRET_KEY:asdfasfdasfadsf} From e3ac77456000d07aa2e3e624cb7925d2b76bf3df Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Fri, 6 Jan 2023 21:25:49 +0900 Subject: [PATCH 28/37] =?UTF-8?q?feat:=20(#280)=20IllegalArgumentException?= =?UTF-8?q?=20=EC=98=88=EC=99=B8=20=EB=A9=94=EC=8B=9C=EC=A7=80=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../comit/simtong/global/error/GlobalErrorHandler.kt | 3 +-- .../comit/simtong/global/error/dto/ErrorResponse.kt | 10 ++++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/GlobalErrorHandler.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/GlobalErrorHandler.kt index a3804024..3c377e4b 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/GlobalErrorHandler.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/GlobalErrorHandler.kt @@ -6,7 +6,6 @@ import org.springframework.web.bind.annotation.ExceptionHandler import org.springframework.web.bind.annotation.ResponseStatus import org.springframework.web.bind.annotation.RestControllerAdvice import team.comit.simtong.global.error.dto.ErrorResponse -import team.comit.simtong.global.exception.GlobalExceptions /** * @@ -36,6 +35,6 @@ class GlobalErrorHandler { @ExceptionHandler(IllegalArgumentException::class) @ResponseStatus(HttpStatus.BAD_REQUEST) protected fun handleIllegalArgumentException(exception: IllegalArgumentException): ErrorResponse? { - return ErrorResponse.of(GlobalExceptions.BadRequest()) + return ErrorResponse.of(exception) } } \ No newline at end of file diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/dto/ErrorResponse.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/dto/ErrorResponse.kt index 007b9a11..60604013 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/dto/ErrorResponse.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/dto/ErrorResponse.kt @@ -14,8 +14,9 @@ import javax.validation.ConstraintViolationException * 예외가 발생했을 경우 response 형태를 일관되게 유지하기 위한 ErrorResponse * * @author kimbeomjin + * @author Chokyunghyeon * @date 2022/08/22 - * @version 1.0.0 + * @version 1.2.3 **/ class ErrorResponse( val status: Int, @@ -66,7 +67,7 @@ class ErrorResponse( } fun of(exception: MissingServletRequestParameterException): ErrorResponse { - val fieldErrors = CustomFieldError.of(exception.parameterName, "", exception.message) + val fieldErrors = CustomFieldError.of(exception.parameterName, "", exception.message ?: "") return of( exception = GlobalExceptions.BadRequest(), @@ -79,6 +80,11 @@ class ErrorResponse( fieldErrors = CustomFieldError.of("", "", exception.message ?: "") ) + fun of(exception: IllegalArgumentException): ErrorResponse = of( + exception = GlobalExceptions.BadRequest(), + fieldErrors = CustomFieldError.of("", "", exception.message ?: "") + ) + private fun of(exception: BusinessException, fieldErrors: List) = ErrorResponse( status = exception.status, message = exception.message, From bde33d8d4df5a1f51a52af6857463772e3cdae7f Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Fri, 6 Jan 2023 21:27:08 +0900 Subject: [PATCH 29/37] =?UTF-8?q?refactor:=20(#280)=20Closeable=20use=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=20-=20FileConverter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../comit/simtong/domain/file/converter/FileConverter.kt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/file/converter/FileConverter.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/file/converter/FileConverter.kt index cac6b2c5..ee5fdb1c 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/file/converter/FileConverter.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/file/converter/FileConverter.kt @@ -12,7 +12,7 @@ import java.util.UUID * * @author Chokyunghyeon * @date 2022/12/09 - * @version 1.0.0 + * @version 1.2.3 **/ interface FileConverter { @@ -42,9 +42,8 @@ interface FileConverter { private fun transferFile(multipartFile: MultipartFile): File { return File("${UUID.randomUUID()}_${multipartFile.originalFilename}") .apply { - FileOutputStream(this).run { - write(multipartFile.bytes) - close() + FileOutputStream(this).use { + it.write(multipartFile.bytes) } } } From 61d8c56147132c0af87793b347d964f36addc0b7 Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Fri, 6 Jan 2023 21:27:21 +0900 Subject: [PATCH 30/37] =?UTF-8?q?refactor:=20(#280)=20Closeable=20use=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=20-=20ExcelFileAdapter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../thirdparty/parser/ExcelFileAdapter.kt | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/thirdparty/parser/ExcelFileAdapter.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/thirdparty/parser/ExcelFileAdapter.kt index 37652f19..1798a74d 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/thirdparty/parser/ExcelFileAdapter.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/thirdparty/parser/ExcelFileAdapter.kt @@ -25,7 +25,7 @@ import java.util.UUID * @author Chokyunghyeon * @author kimbeomjin * @date 2022/12/06 - * @version 1.0.0 + * @version 1.2.3 **/ @Component class ExcelFileAdapter : ParseEmployeeCertificateFilePort, ParseMenuFilePort { @@ -113,17 +113,20 @@ class ExcelFileAdapter : ParseEmployeeCertificateFilePort, ParseMenuFilePort { } private fun transferToExcel(file: File): Workbook { - val inputStream = file.inputStream() - - return runCatching { - when (file.extension.uppercase()) { - XLS -> HSSFWorkbook(inputStream) - XLSX -> XSSFWorkbook(inputStream) - else -> throw WebFileExceptions.InvalidExtension() + val result = file.inputStream() + .use { inputStream -> + runCatching { + when (file.extension.uppercase()) { + XLS -> HSSFWorkbook(inputStream) + XLSX -> XSSFWorkbook(inputStream) + else -> throw WebFileExceptions.InvalidExtension() + } + } } - }.also { - inputStream.close() - file.delete() - }.getOrThrow() + .also { + file.delete() + } + + return result.getOrThrow() } } \ No newline at end of file From 80efb610f38f13ed51519885930b2021af7982c3 Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Sat, 7 Jan 2023 14:52:04 +0900 Subject: [PATCH 31/37] =?UTF-8?q?refactor:=20(#280)=20=EC=A0=95=EA=B7=9C?= =?UTF-8?q?=EC=8B=9D=20=EC=95=88=20=EC=83=81=EC=88=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kotlin/team/comit/simtong/domain/user/value/NickName.kt | 2 +- .../kotlin/team/comit/simtong/domain/user/value/Password.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/value/NickName.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/value/NickName.kt index 60c72081..8b4b2ebc 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/value/NickName.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/value/NickName.kt @@ -21,6 +21,6 @@ value class NickName( * * space , _ , . , a ~ z , A ~ Z , 가 ~ 힣 , 0 ~ 9 */ - const val PATTERN = """(?=^\S)(?=^[\w\s가-힣.]*$).*(?=\S$).""" + const val PATTERN = """(?=^\S)(?=^[\w\s가-힣.]{$MIN_LENGTH,$MAX_LENGTH}$).*(?=\S$).""" } } \ No newline at end of file diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/value/Password.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/value/Password.kt index 10c2ff5b..5705ea16 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/value/Password.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/value/Password.kt @@ -21,6 +21,6 @@ value class Password( * * non-space, $ , + , - , _ , a ~ z , A ~ Z , 0 ~ 9 */ - const val PATTERN = """(?=.*[a-zA-Z])(?=.*\d)(?=^[\w$+-]*$).*""" + const val PATTERN = """(?=.*[a-zA-Z])(?=.*\d)(?=^[\w$+-]{$MIN_LENGTH,$MAX_LENGTH$).*""" } } \ No newline at end of file From cedbbe7d75a57d93c3f2ae3dc6b0d5ff2a3ead03 Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Sat, 7 Jan 2023 14:52:32 +0900 Subject: [PATCH 32/37] =?UTF-8?q?revert:=20(#280)=20Length=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/common/dto/request/ChangePasswordWebRequest.kt | 3 --- .../domain/common/dto/request/ResetPasswordWebRequest.kt | 2 -- .../kotlin/team/comit/simtong/domain/user/WebUserAdapter.kt | 2 -- .../domain/user/dto/request/ChangeNicknameWebRequest.kt | 2 -- .../comit/simtong/domain/user/dto/request/SignUpWebRequest.kt | 3 --- 5 files changed, 12 deletions(-) diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/ChangePasswordWebRequest.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/ChangePasswordWebRequest.kt index 1284917d..dd2c3f0f 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/ChangePasswordWebRequest.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/ChangePasswordWebRequest.kt @@ -1,6 +1,5 @@ package team.comit.simtong.domain.common.dto.request -import org.hibernate.validator.constraints.Length import team.comit.simtong.domain.user.value.Password import javax.validation.constraints.Pattern @@ -13,11 +12,9 @@ import javax.validation.constraints.Pattern * @version 1.2.3 **/ data class ChangePasswordWebRequest( - @field:Length(min = Password.MIN_LENGTH, max = Password.MAX_LENGTH) @field:Pattern(regexp = Password.PATTERN) val password: Password, - @field:Length(min = Password.MIN_LENGTH, max = Password.MAX_LENGTH) @field:Pattern(regexp = Password.PATTERN) val newPassword: Password ) \ No newline at end of file diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/ResetPasswordWebRequest.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/ResetPasswordWebRequest.kt index 49ea389b..690b72bb 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/ResetPasswordWebRequest.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/common/dto/request/ResetPasswordWebRequest.kt @@ -1,6 +1,5 @@ package team.comit.simtong.domain.common.dto.request -import org.hibernate.validator.constraints.Length import org.hibernate.validator.constraints.Range import team.comit.simtong.domain.user.value.EmployeeNumber import team.comit.simtong.domain.user.value.Password @@ -24,7 +23,6 @@ data class ResetPasswordWebRequest( @field:Range(min = EmployeeNumber.MIN_VALUE, max = EmployeeNumber.MAX_VALUE) val employeeNumber: EmployeeNumber, - @field:Length(min = Password.MIN_LENGTH, max = Password.MAX_LENGTH) @field:Pattern(regexp = Password.PATTERN) val newPassword: Password ) \ No newline at end of file diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/WebUserAdapter.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/WebUserAdapter.kt index 20580144..e56444b6 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/WebUserAdapter.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/WebUserAdapter.kt @@ -1,6 +1,5 @@ package team.comit.simtong.domain.user -import org.hibernate.validator.constraints.Length import org.hibernate.validator.constraints.Range import org.springframework.http.HttpStatus import org.springframework.validation.annotation.Validated @@ -127,7 +126,6 @@ class WebUserAdapter( @GetMapping("/nickname/duplication") fun checkNicknameDuplication( - @Length(min = NickName.MIN_LENGTH, max = NickName.MAX_LENGTH) @Pattern(regexp = NickName.PATTERN) @RequestParam nickname: NickName ) { diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/ChangeNicknameWebRequest.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/ChangeNicknameWebRequest.kt index 70e7e3b4..72097bbd 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/ChangeNicknameWebRequest.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/ChangeNicknameWebRequest.kt @@ -1,6 +1,5 @@ package team.comit.simtong.domain.user.dto.request -import org.hibernate.validator.constraints.Length import team.comit.simtong.domain.user.value.NickName import javax.validation.constraints.Pattern @@ -13,7 +12,6 @@ import javax.validation.constraints.Pattern * @version 1.2.3 **/ data class ChangeNicknameWebRequest( - @Length(min = NickName.MIN_LENGTH, max = NickName.MAX_LENGTH) @Pattern(regexp = NickName.PATTERN) val nickname: NickName ) \ No newline at end of file diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/SignUpWebRequest.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/SignUpWebRequest.kt index 4261649a..74cd8990 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/SignUpWebRequest.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/SignUpWebRequest.kt @@ -1,6 +1,5 @@ package team.comit.simtong.domain.user.dto.request -import org.hibernate.validator.constraints.Length import org.hibernate.validator.constraints.Range import team.comit.simtong.domain.user.value.EmployeeNumber import team.comit.simtong.domain.user.value.NickName @@ -29,11 +28,9 @@ data class SignUpWebRequest( @Range(min = EmployeeNumber.MIN_VALUE, max = EmployeeNumber.MAX_VALUE) val employeeNumber: EmployeeNumber, - @Length(min = Password.MIN_LENGTH, max = Password.MAX_LENGTH) @Pattern(regexp = Password.PATTERN) val password: Password, - @Length(min = NickName.MIN_LENGTH, max = NickName.MAX_LENGTH) @Pattern(regexp = NickName.PATTERN) val nickname: NickName, From e8724c0c86e0aa6a8d2c751c2979ee742ab373e9 Mon Sep 17 00:00:00 2001 From: Jo Kyung Hyeon Date: Sat, 7 Jan 2023 14:52:47 +0900 Subject: [PATCH 33/37] =?UTF-8?q?revert:=20(#280)=20=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20=EC=9C=A0=ED=9A=A8=EC=84=B1=20=EA=B2=80=EC=82=AC=20?= =?UTF-8?q?=EB=90=98=EB=8F=8C=EB=A6=AC=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../comit/simtong/domain/user/dto/request/SignInWebRequest.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/SignInWebRequest.kt b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/SignInWebRequest.kt index e3b78f75..99938463 100644 --- a/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/SignInWebRequest.kt +++ b/simtong-presentation/src/main/kotlin/team/comit/simtong/domain/user/dto/request/SignInWebRequest.kt @@ -1,9 +1,9 @@ package team.comit.simtong.domain.user.dto.request -import org.hibernate.validator.constraints.Range import team.comit.simtong.domain.user.value.EmployeeNumber import team.comit.simtong.domain.user.value.Password import javax.validation.constraints.NotBlank +import javax.validation.constraints.NotNull /** * @@ -16,7 +16,7 @@ import javax.validation.constraints.NotBlank **/ data class SignInWebRequest( - @field:Range(min = EmployeeNumber.MIN_VALUE, max = EmployeeNumber.MAX_VALUE) + @field:NotNull val employeeNumber: EmployeeNumber, @field:NotBlank From 3438da2564de37d6a086e63313eb9718035083e2 Mon Sep 17 00:00:00 2001 From: KimBeomJin Date: Sun, 8 Jan 2023 00:06:55 +0900 Subject: [PATCH 34/37] =?UTF-8?q?refactor:=20(#283)=20=EB=B6=88=ED=95=84?= =?UTF-8?q?=EC=9A=94=ED=95=9C=20=EC=98=88=EC=99=B8=20=ED=95=B8=EB=93=A4?= =?UTF-8?q?=EB=A7=81=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../team/comit/simtong/global/error/WebErrorHandler.kt | 9 --------- 1 file changed, 9 deletions(-) diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/WebErrorHandler.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/WebErrorHandler.kt index f5fbf967..b4562c56 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/WebErrorHandler.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/WebErrorHandler.kt @@ -72,15 +72,6 @@ class WebErrorHandler { return ErrorResponse.of(exception) } - /** - * 적합하지 않거나 적절하지 못한 인자를 메서드에 넘기면 발생 - */ - @ExceptionHandler(IllegalArgumentException::class) - @ResponseStatus(HttpStatus.BAD_REQUEST) - protected fun handleIllegalArgumentException(exception: IllegalArgumentException): ErrorResponse? { - return ErrorResponse.of(GlobalExceptions.BadRequest()) - } - /** * 지원하지 않은 HTTP method 호출할 경우 발생 */ From 96ce3dfb1d3d849864a70507b518ebab0aacffdd Mon Sep 17 00:00:00 2001 From: KimBeomJin Date: Sun, 8 Jan 2023 00:22:50 +0900 Subject: [PATCH 35/37] =?UTF-8?q?fix:=20(#283)=20=EB=84=93=EC=9D=80=20?= =?UTF-8?q?=EB=B2=94=EC=9C=84=EC=9D=98=20=EC=98=88=EC=99=B8=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 이것 때문에 세부적인 예외가 잡히지 않음 --- .../comit/simtong/global/error/GlobalErrorHandler.kt | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/GlobalErrorHandler.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/GlobalErrorHandler.kt index a3804024..ce9103e1 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/GlobalErrorHandler.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/GlobalErrorHandler.kt @@ -6,7 +6,6 @@ import org.springframework.web.bind.annotation.ExceptionHandler import org.springframework.web.bind.annotation.ResponseStatus import org.springframework.web.bind.annotation.RestControllerAdvice import team.comit.simtong.global.error.dto.ErrorResponse -import team.comit.simtong.global.exception.GlobalExceptions /** * @@ -29,13 +28,4 @@ class GlobalErrorHandler { ): ErrorResponse? { return ErrorResponse.of(exception) } - - /** - * 적합하지 않거나 적절하지 못한 인자를 메서드에 넘기면 발생 - */ - @ExceptionHandler(IllegalArgumentException::class) - @ResponseStatus(HttpStatus.BAD_REQUEST) - protected fun handleIllegalArgumentException(exception: IllegalArgumentException): ErrorResponse? { - return ErrorResponse.of(GlobalExceptions.BadRequest()) - } } \ No newline at end of file From 7d45488012bcce0d1a41ddd592012b720df704b7 Mon Sep 17 00:00:00 2001 From: KimBeomJin Date: Sun, 8 Jan 2023 00:28:02 +0900 Subject: [PATCH 36/37] =?UTF-8?q?refactor:=20(#283)=20TypeMismatchExceptio?= =?UTF-8?q?n=20=EC=98=88=EC=99=B8=20=EB=A9=94=EC=8B=9C=EC=A7=80=20?= =?UTF-8?q?=EA=B5=AC=EC=B2=B4=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../team/comit/simtong/global/error/dto/ErrorResponse.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/dto/ErrorResponse.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/dto/ErrorResponse.kt index 007b9a11..93aa3cd1 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/dto/ErrorResponse.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/dto/ErrorResponse.kt @@ -57,7 +57,11 @@ class ErrorResponse( fun of(exception: MethodArgumentTypeMismatchException): ErrorResponse { val value = exception.value - val fieldErrors = CustomFieldError.of(exception.name, value.toString(), exception.errorCode) + val fieldErrors = CustomFieldError.of( + field = exception.parameter.parameterName ?: "", + value = value.toString(), + reason = "${exception.requiredType!!.name} 타입으로 변환할 수 없습니다." + ) return of( exception = GlobalExceptions.BadRequest(), From 5421ce680566640f4a686d6622a9d0cd3494e742 Mon Sep 17 00:00:00 2001 From: KimBeomJin Date: Sun, 8 Jan 2023 00:41:53 +0900 Subject: [PATCH 37/37] =?UTF-8?q?chore:=20(#283)=20=EB=B2=84=EC=A0=84=20?= =?UTF-8?q?=EB=AA=85=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../team/comit/simtong/global/error/GlobalErrorHandler.kt | 2 +- .../kotlin/team/comit/simtong/global/error/WebErrorHandler.kt | 2 +- .../kotlin/team/comit/simtong/global/error/dto/ErrorResponse.kt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/GlobalErrorHandler.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/GlobalErrorHandler.kt index ce9103e1..78c73f95 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/GlobalErrorHandler.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/GlobalErrorHandler.kt @@ -13,7 +13,7 @@ import team.comit.simtong.global.error.dto.ErrorResponse * * @author kimbeomjin * @date 2022/08/22 - * @version 1.0.0 + * @version 1.2.3 **/ @RestControllerAdvice class GlobalErrorHandler { diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/WebErrorHandler.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/WebErrorHandler.kt index b4562c56..82eea033 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/WebErrorHandler.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/WebErrorHandler.kt @@ -21,7 +21,7 @@ import javax.validation.ConstraintViolationException * @author kimbeomjin * @author Chokyunghyeon * @date 2022/08/22 - * @version 1.0.0 + * @version 1.2.3 **/ @RestControllerAdvice class WebErrorHandler { diff --git a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/dto/ErrorResponse.kt b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/dto/ErrorResponse.kt index 93aa3cd1..cef3fb68 100644 --- a/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/dto/ErrorResponse.kt +++ b/simtong-infrastructure/src/main/kotlin/team/comit/simtong/global/error/dto/ErrorResponse.kt @@ -15,7 +15,7 @@ import javax.validation.ConstraintViolationException * * @author kimbeomjin * @date 2022/08/22 - * @version 1.0.0 + * @version 1.2.3 **/ class ErrorResponse( val status: Int,