Skip to content
This repository was archived by the owner on Jul 7, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.asap.application.letter.port.`in`

import com.asap.domain.letter.entity.LetterLogType

interface LetterLogUsecase {

fun log(request: LogRequest)

data class LogRequest(
val letterCode: String,
val logType: LetterLogType,
val logContent: String,
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.asap.application.letter.port.out

import com.asap.domain.letter.entity.LetterLog

interface LetterLogManagementPort {
fun save(log: LetterLog): LetterLog

fun findAll(): List<LetterLog>
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.asap.application.letter.service

import com.asap.application.letter.port.`in`.LetterLogUsecase
import com.asap.application.letter.port.out.LetterLogManagementPort
import com.asap.application.letter.port.out.SendLetterManagementPort
import com.asap.domain.letter.entity.LetterLog
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional

@Service
@Transactional
class LetterLogService(
private val sendLetterManagementPort: SendLetterManagementPort,
private val letterLogManagementPort: LetterLogManagementPort
) : LetterLogUsecase {
override fun log(request: LetterLogUsecase.LogRequest) {
val letterCode = request.letterCode
val letter = sendLetterManagementPort.getLetterByCodeNotNull(letterCode)

LetterLog.create(
targetLetterId = letter.id,
logType = request.logType,
content = request.logContent
).apply {
letterLogManagementPort.save(this)
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.asap.application.letter.service

import com.asap.application.letter.port.`in`.LetterLogUsecase
import com.asap.application.letter.port.out.LetterLogManagementPort
import com.asap.application.letter.port.out.SendLetterManagementPort
import com.asap.domain.LetterFixture
import com.asap.domain.letter.entity.LetterLogType
import io.kotest.core.spec.style.BehaviorSpec
import io.mockk.every
import io.mockk.mockk
import io.mockk.verify

class LetterLogServiceTest : BehaviorSpec({

val letterLogManagementPort = mockk<LetterLogManagementPort>(relaxed = true)
val mockSendLetterManagementPort = mockk<SendLetterManagementPort>(relaxed = true)

val letterLogService = LetterLogService(
letterLogManagementPort = letterLogManagementPort,
sendLetterManagementPort = mockSendLetterManagementPort,
)

given("편지 관련 로그 서비스 테스트") {
val request = LetterLogUsecase.LogRequest(
letterCode = "letterCode",
logType = LetterLogType.SHARE,
logContent = "logContent",
)

val mockSendLetter = LetterFixture.generateSendLetter()

every { mockSendLetterManagementPort.getLetterByCodeNotNull(any()) } returns mockSendLetter

`when`("편지를 저장 요청하면") {
letterLogService.log(request)
then("편지를 저장한다") {
verify { letterLogManagementPort.save(any()) }
}
}
}
}) {
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package com.asap.bootstrap.auth.api
package com.asap.bootstrap.web.auth.api

import com.asap.bootstrap.auth.dto.ReissueRequest
import com.asap.bootstrap.auth.dto.ReissueResponse
import com.asap.bootstrap.auth.dto.SocialLoginRequest
import com.asap.bootstrap.auth.dto.SocialLoginResponse
import com.asap.bootstrap.common.exception.ExceptionResponse
import com.asap.bootstrap.web.auth.dto.ReissueRequest
import com.asap.bootstrap.web.auth.dto.ReissueResponse
import com.asap.bootstrap.web.auth.dto.SocialLoginRequest
import com.asap.bootstrap.web.auth.dto.SocialLoginResponse
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.media.Content
import io.swagger.v3.oas.annotations.media.Schema
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package com.asap.bootstrap.auth.controller
package com.asap.bootstrap.web.auth.controller

import com.asap.application.user.port.`in`.ReissueTokenUsecase
import com.asap.application.user.port.`in`.SocialLoginUsecase
import com.asap.bootstrap.auth.api.AuthApi
import com.asap.bootstrap.auth.dto.ReissueRequest
import com.asap.bootstrap.auth.dto.ReissueResponse
import com.asap.bootstrap.auth.dto.SocialLoginRequest
import com.asap.bootstrap.auth.dto.SocialLoginResponse
import com.asap.bootstrap.web.auth.api.AuthApi
import com.asap.bootstrap.web.auth.dto.ReissueRequest
import com.asap.bootstrap.web.auth.dto.ReissueResponse
import com.asap.bootstrap.web.auth.dto.SocialLoginRequest
import com.asap.bootstrap.web.auth.dto.SocialLoginResponse
import org.springframework.http.HttpStatus
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.RestController
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.asap.bootstrap.auth.dto
package com.asap.bootstrap.web.auth.dto

data class ReissueRequest(
val refreshToken: String
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.asap.bootstrap.auth.dto
package com.asap.bootstrap.web.auth.dto

data class ReissueResponse(
val accessToken: String,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.asap.bootstrap.auth.dto
package com.asap.bootstrap.web.auth.dto

import io.swagger.v3.oas.annotations.media.Schema

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.asap.bootstrap.auth.dto
package com.asap.bootstrap.web.auth.dto

import io.swagger.v3.oas.annotations.media.Schema

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.asap.bootstrap.image.api
package com.asap.bootstrap.web.image.api

import com.asap.bootstrap.common.security.annotation.AccessUser
import com.asap.bootstrap.image.dto.UploadImageResponse
import com.asap.bootstrap.web.image.dto.UploadImageResponse
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.headers.Header
import io.swagger.v3.oas.annotations.responses.ApiResponse
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.asap.bootstrap.image.controller
package com.asap.bootstrap.web.image.controller

import com.asap.application.image.port.`in`.UploadImageUsecase
import com.asap.bootstrap.common.util.FileConverter
import com.asap.bootstrap.image.api.ImageApi
import com.asap.bootstrap.image.dto.UploadImageResponse
import com.asap.bootstrap.web.image.api.ImageApi
import com.asap.bootstrap.web.image.dto.UploadImageResponse
import org.springframework.web.bind.annotation.RestController
import org.springframework.web.multipart.MultipartFile

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.asap.bootstrap.image.dto
package com.asap.bootstrap.web.image.dto

data class UploadImageResponse(
val imageUrl: String
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.asap.bootstrap.letter.api
package com.asap.bootstrap.web.letter.api

import com.asap.bootstrap.common.security.annotation.AccessUser
import com.asap.bootstrap.letter.dto.*
import com.asap.bootstrap.web.letter.dto.*
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.media.Content
import io.swagger.v3.oas.annotations.media.Schema
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,21 @@
package com.asap.bootstrap.letter.api
package com.asap.bootstrap.web.letter.api

import com.asap.bootstrap.common.exception.ExceptionResponse
import com.asap.bootstrap.common.security.annotation.AccessUser
import com.asap.bootstrap.letter.dto.*
import com.asap.bootstrap.web.letter.dto.AddPhysicalLetterRequest
import com.asap.bootstrap.web.letter.dto.AddVerifiedLetterRequest
import com.asap.bootstrap.web.letter.dto.AllLetterCountResponse
import com.asap.bootstrap.web.letter.dto.DeleteSendLettersRequest
import com.asap.bootstrap.web.letter.dto.GetIndependentLetterDetailResponse
import com.asap.bootstrap.web.letter.dto.GetIndependentLetterSimpleInfo
import com.asap.bootstrap.web.letter.dto.LetterVerifyRequest
import com.asap.bootstrap.web.letter.dto.LetterVerifyResponse
import com.asap.bootstrap.web.letter.dto.ModifyLetterRequest
import com.asap.bootstrap.web.letter.dto.SendLetterDetailResponse
import com.asap.bootstrap.web.letter.dto.SendLetterHistoryResponse
import com.asap.bootstrap.web.letter.dto.SendLetterRequest
import com.asap.bootstrap.web.letter.dto.SendLetterResponse
import com.asap.bootstrap.web.letter.dto.VerifiedLetterInfoResponse
import com.asap.common.page.ListResponse
import com.asap.common.page.SliceResponse
import io.swagger.v3.oas.annotations.Operation
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package com.asap.bootstrap.letter.api
package com.asap.bootstrap.web.letter.api

import com.asap.bootstrap.common.security.annotation.AccessUser
import com.asap.bootstrap.letter.dto.GetSpaceLetterDetailResponse
import com.asap.bootstrap.letter.dto.GetSpaceLettersResponse
import com.asap.bootstrap.letter.dto.ModifyLetterRequest
import com.asap.bootstrap.letter.dto.MoveLetterToSpaceRequest
import com.asap.bootstrap.web.letter.dto.GetSpaceLetterDetailResponse
import com.asap.bootstrap.web.letter.dto.GetSpaceLettersResponse
import com.asap.bootstrap.web.letter.dto.ModifyLetterRequest
import com.asap.bootstrap.web.letter.dto.MoveLetterToSpaceRequest
import com.asap.common.page.PageResponse
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.media.Content
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.asap.bootstrap.letter.controller
package com.asap.bootstrap.web.letter.controller

import com.asap.application.letter.port.`in`.GenerateDraftKeyUsecase
import com.asap.application.letter.port.`in`.GetDraftLetterUsecase
import com.asap.application.letter.port.`in`.RemoveDraftLetterUsecase
import com.asap.application.letter.port.`in`.UpdateDraftLetterUsecase
import com.asap.bootstrap.letter.api.DraftLetterApi
import com.asap.bootstrap.letter.dto.*
import com.asap.bootstrap.web.letter.api.DraftLetterApi
import com.asap.bootstrap.web.letter.dto.*
import org.springframework.web.bind.annotation.RestController

@RestController
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,21 @@
package com.asap.bootstrap.letter.controller
package com.asap.bootstrap.web.letter.controller

import com.asap.application.letter.port.`in`.*
import com.asap.bootstrap.letter.api.LetterApi
import com.asap.bootstrap.letter.dto.*
import com.asap.bootstrap.web.letter.api.LetterApi
import com.asap.bootstrap.web.letter.dto.AddPhysicalLetterRequest
import com.asap.bootstrap.web.letter.dto.AddVerifiedLetterRequest
import com.asap.bootstrap.web.letter.dto.AllLetterCountResponse
import com.asap.bootstrap.web.letter.dto.DeleteSendLettersRequest
import com.asap.bootstrap.web.letter.dto.GetIndependentLetterDetailResponse
import com.asap.bootstrap.web.letter.dto.GetIndependentLetterSimpleInfo
import com.asap.bootstrap.web.letter.dto.LetterVerifyRequest
import com.asap.bootstrap.web.letter.dto.LetterVerifyResponse
import com.asap.bootstrap.web.letter.dto.ModifyLetterRequest
import com.asap.bootstrap.web.letter.dto.SendLetterDetailResponse
import com.asap.bootstrap.web.letter.dto.SendLetterHistoryResponse
import com.asap.bootstrap.web.letter.dto.SendLetterRequest
import com.asap.bootstrap.web.letter.dto.SendLetterResponse
import com.asap.bootstrap.web.letter.dto.VerifiedLetterInfoResponse
import com.asap.common.page.ListResponse
import com.asap.common.page.SliceResponse
import org.springframework.web.bind.annotation.RestController
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.asap.bootstrap.letter.controller
package com.asap.bootstrap.web.letter.controller

import com.asap.application.letter.port.`in`.*
import com.asap.bootstrap.letter.api.SpaceLetterApi
import com.asap.bootstrap.letter.dto.GetSpaceLetterDetailResponse
import com.asap.bootstrap.letter.dto.GetSpaceLettersResponse
import com.asap.bootstrap.letter.dto.ModifyLetterRequest
import com.asap.bootstrap.letter.dto.MoveLetterToSpaceRequest
import com.asap.bootstrap.web.letter.api.SpaceLetterApi
import com.asap.bootstrap.web.letter.dto.GetSpaceLetterDetailResponse
import com.asap.bootstrap.web.letter.dto.GetSpaceLettersResponse
import com.asap.bootstrap.web.letter.dto.ModifyLetterRequest
import com.asap.bootstrap.web.letter.dto.MoveLetterToSpaceRequest
import com.asap.common.page.PageResponse
import org.springframework.web.bind.annotation.RestController

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.asap.bootstrap.letter.dto
package com.asap.bootstrap.web.letter.dto

class AddPhysicalLetterRequest(
val senderName: String,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.asap.bootstrap.letter.dto
package com.asap.bootstrap.web.letter.dto

data class AddVerifiedLetterRequest(
val letterId: String
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.asap.bootstrap.letter.dto
package com.asap.bootstrap.web.letter.dto

data class AllLetterCountResponse(
val letterCount: Long,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.asap.bootstrap.letter.dto
package com.asap.bootstrap.web.letter.dto

data class DeleteSendLettersRequest(
val letterIds: List<String>,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.asap.bootstrap.letter.dto
package com.asap.bootstrap.web.letter.dto

data class GenerateDraftKeyResponse(
val draftId: String,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.asap.bootstrap.letter.dto
package com.asap.bootstrap.web.letter.dto

import java.time.LocalDateTime

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.asap.bootstrap.letter.dto
package com.asap.bootstrap.web.letter.dto

data class GetDraftLetterCountResponse(
val count: Int,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.asap.bootstrap.letter.dto
package com.asap.bootstrap.web.letter.dto

data class GetDraftLetterResponse(
val draftKey: String,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.asap.bootstrap.letter.dto
package com.asap.bootstrap.web.letter.dto

import java.time.LocalDate

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.asap.bootstrap.letter.dto
package com.asap.bootstrap.web.letter.dto

data class GetIndependentLetterSimpleInfo(
val letterId: String,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.asap.bootstrap.letter.dto
package com.asap.bootstrap.web.letter.dto

import java.time.LocalDate

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.asap.bootstrap.letter.dto
package com.asap.bootstrap.web.letter.dto

import java.time.LocalDate

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.asap.bootstrap.letter.dto
package com.asap.bootstrap.web.letter.dto


data class LetterVerifyRequest(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.asap.bootstrap.letter.dto
package com.asap.bootstrap.web.letter.dto

data class LetterVerifyResponse(
val letterId: String
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.asap.bootstrap.letter.dto
package com.asap.bootstrap.web.letter.dto

data class ModifyLetterRequest(
val senderName: String,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.asap.bootstrap.letter.dto
package com.asap.bootstrap.web.letter.dto

data class MoveLetterToSpaceRequest(
val spaceId: String
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.asap.bootstrap.letter.dto
package com.asap.bootstrap.web.letter.dto

import java.time.LocalDate

Expand Down
Loading
Loading