[#48] Tosspay mocking 서버 구현을 위한 멀티모듈 전환 #49

Merged
pricelees merged 39 commits from feat/#48 into main 2025-09-30 00:39:14 +00:00
2 changed files with 11 additions and 8 deletions
Showing only changes of commit ddab3b18a6 - Show all commits

View File

@ -41,6 +41,9 @@ class PaymentService(
val detail: PaymentDetailEntity = paymentWriter.createDetail(clientConfirmResponse, payment.id) val detail: PaymentDetailEntity = paymentWriter.createDetail(clientConfirmResponse, payment.id)
PaymentCreateResponse(paymentId = payment.id, detailId = detail.id) PaymentCreateResponse(paymentId = payment.id, detailId = detail.id)
} ?: run {
log.warn { "[PaymentService.confirm] 결제 확정 중 예상치 못한 null 반환" }
throw PaymentException(PaymentErrorCode.PAYMENT_UNEXPECTED_ERROR)
} }
} }

View File

@ -135,7 +135,7 @@ class DefaultDataInitializer : AbstractDataInitializer() {
listOf(AdminPermissionLevel.FULL_ACCESS, AdminPermissionLevel.WRITABLE) listOf(AdminPermissionLevel.FULL_ACCESS, AdminPermissionLevel.WRITABLE)
) )
.resultList .resultList
}.map { it.toString() } }!!.map { it.toString() }
val sqlFile = storeDataInitializer.createStoreDataSqlFile(creatableAdminIds) val sqlFile = storeDataInitializer.createStoreDataSqlFile(creatableAdminIds)
@ -156,7 +156,7 @@ class DefaultDataInitializer : AbstractDataInitializer() {
"SELECT s.id FROM StoreEntity s", "SELECT s.id FROM StoreEntity s",
Long::class.java Long::class.java
).resultList ).resultList
}.map { it as Long } }!!.map { it as Long }
transactionExecutionUtil.withNewTransaction(isReadOnly = false) { transactionExecutionUtil.withNewTransaction(isReadOnly = false) {
storeIds.forEach { storeId -> storeIds.forEach { storeId ->
@ -209,7 +209,7 @@ class DefaultDataInitializer : AbstractDataInitializer() {
listOf(AdminPermissionLevel.FULL_ACCESS, AdminPermissionLevel.WRITABLE) listOf(AdminPermissionLevel.FULL_ACCESS, AdminPermissionLevel.WRITABLE)
) )
.resultList .resultList
} }!!
val sql = val sql =
"INSERT INTO theme (id, name, description, thumbnail_url, is_active, available_minutes, expected_minutes_from, expected_minutes_to, price, difficulty, min_participants, max_participants, created_at, created_by, updated_at, updated_by) VALUES (?," + "INSERT INTO theme (id, name, description, thumbnail_url, is_active, available_minutes, expected_minutes_from, expected_minutes_to, price, difficulty, min_participants, max_participants, created_at, created_by, updated_at, updated_by) VALUES (?," +
"?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
@ -270,7 +270,7 @@ class UserDataInitializer : AbstractDataInitializer() {
"SELECT r.code FROM RegionEntity r", "SELECT r.code FROM RegionEntity r",
String::class.java String::class.java
).resultList ).resultList
} }!!
val chunkSize = 10_000 val chunkSize = 10_000
val chunks = userCount / chunkSize val chunks = userCount / chunkSize
@ -299,7 +299,7 @@ class UserDataInitializer : AbstractDataInitializer() {
""".trimIndent(), """.trimIndent(),
UserEntity::class.java UserEntity::class.java
).resultList ).resultList
} }!!
jdbcTemplate.execute("CREATE INDEX idx_users__phone ON users (phone)") jdbcTemplate.execute("CREATE INDEX idx_users__phone ON users (phone)")
@ -338,7 +338,7 @@ class UserDataInitializer : AbstractDataInitializer() {
"SELECT u.id FROM UserEntity u", "SELECT u.id FROM UserEntity u",
Long::class.java Long::class.java
).resultList ).resultList
} }!!
coroutineScope { coroutineScope {
userId.chunked(10_000).map { chunk -> userId.chunked(10_000).map { chunk ->
@ -494,7 +494,7 @@ class ScheduleDataInitializer : AbstractDataInitializer() {
).setParameter("type", AdminType.STORE) ).setParameter("type", AdminType.STORE)
.setParameter("permissionLevel", AdminPermissionLevel.FULL_ACCESS) .setParameter("permissionLevel", AdminPermissionLevel.FULL_ACCESS)
.resultList .resultList
}.map { }!!.map {
val array = it as List<*> val array = it as List<*>
Pair(array[0] as Long, array[1] as Long) Pair(array[0] as Long, array[1] as Long)
} }
@ -507,7 +507,7 @@ class ScheduleDataInitializer : AbstractDataInitializer() {
List::class.java List::class.java
) )
.resultList .resultList
}.map { }!!.map {
val array = it as List<*> val array = it as List<*>
Triple(array[0] as Long, array[1] as Short, array[2] as LocalDateTime) Triple(array[0] as Long, array[1] as Short, array[2] as LocalDateTime)
} }