diff --git a/src/main/kotlin/com/dcd/server/core/domain/application/dto/extenstion/ApplicationDtoExtension.kt b/src/main/kotlin/com/dcd/server/core/domain/application/dto/extenstion/ApplicationDtoExtension.kt index bf3e2008..9de059b5 100644 --- a/src/main/kotlin/com/dcd/server/core/domain/application/dto/extenstion/ApplicationDtoExtension.kt +++ b/src/main/kotlin/com/dcd/server/core/domain/application/dto/extenstion/ApplicationDtoExtension.kt @@ -4,6 +4,7 @@ import com.dcd.server.core.domain.application.dto.request.CreateApplicationReqDt import com.dcd.server.core.domain.application.dto.response.ApplicationProfileResDto import com.dcd.server.core.domain.application.dto.response.ApplicationResDto import com.dcd.server.core.domain.application.model.Application +import com.dcd.server.core.domain.application.model.ApplicationInitialScript import com.dcd.server.core.domain.application.model.enums.ApplicationStatus import com.dcd.server.core.domain.env.model.ApplicationEnv import com.dcd.server.core.domain.workspace.dto.response.WorkspaceApplicationResDto @@ -23,7 +24,7 @@ fun CreateApplicationReqDto.toEntity(workspace: Workspace, externalPort: Int): A labels = this.labels ) -fun Application.toDto(envList: List): ApplicationResDto = +fun Application.toDto(envList: List, initialScriptList: List): ApplicationResDto = ApplicationResDto( id = this.id, name = this.name, @@ -41,6 +42,7 @@ fun Application.toDto(envList: List): ApplicationResDto = version = this.version, status = this.status, failureReason = this.failureReason, + initialScripts = initialScriptList.map { it.script }, labels = this.labels ) diff --git a/src/main/kotlin/com/dcd/server/core/domain/application/dto/response/ApplicationResDto.kt b/src/main/kotlin/com/dcd/server/core/domain/application/dto/response/ApplicationResDto.kt index a50eefcf..d7e91dcb 100644 --- a/src/main/kotlin/com/dcd/server/core/domain/application/dto/response/ApplicationResDto.kt +++ b/src/main/kotlin/com/dcd/server/core/domain/application/dto/response/ApplicationResDto.kt @@ -15,5 +15,6 @@ data class ApplicationResDto( val version: String, val status: ApplicationStatus, val failureReason: String?, + val initialScripts: List, val labels: List ) \ No newline at end of file diff --git a/src/main/kotlin/com/dcd/server/core/domain/application/usecase/GetAllApplicationUseCase.kt b/src/main/kotlin/com/dcd/server/core/domain/application/usecase/GetAllApplicationUseCase.kt index a48f9fff..322b8f44 100644 --- a/src/main/kotlin/com/dcd/server/core/domain/application/usecase/GetAllApplicationUseCase.kt +++ b/src/main/kotlin/com/dcd/server/core/domain/application/usecase/GetAllApplicationUseCase.kt @@ -5,6 +5,7 @@ import com.dcd.server.core.common.data.WorkspaceInfo import com.dcd.server.core.common.data.dto.response.ListResDto import com.dcd.server.core.domain.application.dto.extenstion.toDto import com.dcd.server.core.domain.application.dto.response.ApplicationResDto +import com.dcd.server.core.domain.application.spi.QueryApplicationInitialScriptPort import com.dcd.server.core.domain.application.spi.QueryApplicationPort import com.dcd.server.core.domain.env.spi.QueryApplicationEnvPort import com.dcd.server.core.domain.workspace.exception.WorkspaceNotFoundException @@ -13,7 +14,8 @@ import com.dcd.server.core.domain.workspace.exception.WorkspaceNotFoundException class GetAllApplicationUseCase( private val queryApplicationPort: QueryApplicationPort, private val workspaceInfo: WorkspaceInfo, - private val queryApplicationEnvPort: QueryApplicationEnvPort + private val queryApplicationEnvPort: QueryApplicationEnvPort, + private val queryApplicationInitialScriptPort: QueryApplicationInitialScriptPort, ) { fun execute(labels: List?): ListResDto { val workspace = workspaceInfo.workspace @@ -24,7 +26,8 @@ class GetAllApplicationUseCase( .findAllByWorkspace(workspace, labels) .map { val applicationEnvList = queryApplicationEnvPort.findByApplication(it) - it.toDto(applicationEnvList) + val initialScripts = queryApplicationInitialScriptPort.findAllByApplication(it) + it.toDto(applicationEnvList, initialScripts) } ) } diff --git a/src/main/kotlin/com/dcd/server/core/domain/application/usecase/GetOneApplicationUseCase.kt b/src/main/kotlin/com/dcd/server/core/domain/application/usecase/GetOneApplicationUseCase.kt index ab12da75..ccf0c162 100644 --- a/src/main/kotlin/com/dcd/server/core/domain/application/usecase/GetOneApplicationUseCase.kt +++ b/src/main/kotlin/com/dcd/server/core/domain/application/usecase/GetOneApplicationUseCase.kt @@ -4,18 +4,21 @@ import com.dcd.server.core.common.annotation.UseCase import com.dcd.server.core.domain.application.dto.extenstion.toDto import com.dcd.server.core.domain.application.dto.response.ApplicationResDto import com.dcd.server.core.domain.application.exception.ApplicationNotFoundException +import com.dcd.server.core.domain.application.spi.QueryApplicationInitialScriptPort import com.dcd.server.core.domain.application.spi.QueryApplicationPort import com.dcd.server.core.domain.env.spi.QueryApplicationEnvPort @UseCase(readOnly = true) class GetOneApplicationUseCase( private val queryApplicationPort: QueryApplicationPort, - private val queryApplicationEnvPort: QueryApplicationEnvPort + private val queryApplicationEnvPort: QueryApplicationEnvPort, + private val queryApplicationInitialScriptPort: QueryApplicationInitialScriptPort ) { fun execute(id: String): ApplicationResDto { val application = (queryApplicationPort.findById(id) ?: throw ApplicationNotFoundException()) val applicationEnvList = queryApplicationEnvPort.findByApplication(application) - return application.toDto(applicationEnvList) + val initialScripts = queryApplicationInitialScriptPort.findAllByApplication(application) + return application.toDto(applicationEnvList, initialScripts) } } \ No newline at end of file diff --git a/src/main/kotlin/com/dcd/server/presentation/domain/application/ApplicationWebAdapter.kt b/src/main/kotlin/com/dcd/server/presentation/domain/application/ApplicationWebAdapter.kt index cb5ca747..12b757e0 100644 --- a/src/main/kotlin/com/dcd/server/presentation/domain/application/ApplicationWebAdapter.kt +++ b/src/main/kotlin/com/dcd/server/presentation/domain/application/ApplicationWebAdapter.kt @@ -20,8 +20,6 @@ class ApplicationWebAdapter( private val runApplicationUseCase: RunApplicationUseCase, private val getAllApplicationUseCase: GetAllApplicationUseCase, private val getOneApplicationUseCase: GetOneApplicationUseCase, -// private val putApplicationEnvUseCase: PutApplicationEnvUseCase, -// private val deleteApplicationEnvUseCase: DeleteApplicationEnvUseCase, private val stopApplicationUseCase: StopApplicationUseCase, private val deleteApplicationUseCase: DeleteApplicationUseCase, private val updateApplicationUseCase: UpdateApplicationUseCase, diff --git a/src/main/kotlin/com/dcd/server/presentation/domain/application/data/exetension/ApplicationResponseDataExtension.kt b/src/main/kotlin/com/dcd/server/presentation/domain/application/data/exetension/ApplicationResponseDataExtension.kt index e63784b6..8019f298 100644 --- a/src/main/kotlin/com/dcd/server/presentation/domain/application/data/exetension/ApplicationResponseDataExtension.kt +++ b/src/main/kotlin/com/dcd/server/presentation/domain/application/data/exetension/ApplicationResponseDataExtension.kt @@ -18,6 +18,7 @@ fun ApplicationResDto.toResponse(): ApplicationResponse = version = this.version, status = this.status, failureReason = this.failureReason, + initialScripts = this.initialScripts, labels = this.labels ) diff --git a/src/main/kotlin/com/dcd/server/presentation/domain/application/data/response/ApplicationResponse.kt b/src/main/kotlin/com/dcd/server/presentation/domain/application/data/response/ApplicationResponse.kt index 21b43ecc..55f5ca95 100644 --- a/src/main/kotlin/com/dcd/server/presentation/domain/application/data/response/ApplicationResponse.kt +++ b/src/main/kotlin/com/dcd/server/presentation/domain/application/data/response/ApplicationResponse.kt @@ -15,5 +15,6 @@ data class ApplicationResponse( val version: String, val status: ApplicationStatus, val failureReason: String?, + val initialScripts: List, val labels: List ) \ No newline at end of file diff --git a/src/test/kotlin/com/dcd/server/core/domain/application/usecase/GetAllApplicationUseCaseTest.kt b/src/test/kotlin/com/dcd/server/core/domain/application/usecase/GetAllApplicationUseCaseTest.kt index ede21ab8..f589f745 100644 --- a/src/test/kotlin/com/dcd/server/core/domain/application/usecase/GetAllApplicationUseCaseTest.kt +++ b/src/test/kotlin/com/dcd/server/core/domain/application/usecase/GetAllApplicationUseCaseTest.kt @@ -41,7 +41,7 @@ class GetAllApplicationUseCaseTest( `when`("usecase를 실행할때") { val result = getAllApplicationUseCase.execute(null) - val target = ListResDto(applicationList.map { it.toDto(listOf()) }) + val target = ListResDto(applicationList.map { it.toDto(listOf(), listOf()) }) then("result는 target이랑 같아야함") { result shouldBe target } diff --git a/src/test/kotlin/com/dcd/server/core/domain/application/usecase/GetOneApplicationUseCaseTest.kt b/src/test/kotlin/com/dcd/server/core/domain/application/usecase/GetOneApplicationUseCaseTest.kt index efd27621..c62aa67a 100644 --- a/src/test/kotlin/com/dcd/server/core/domain/application/usecase/GetOneApplicationUseCaseTest.kt +++ b/src/test/kotlin/com/dcd/server/core/domain/application/usecase/GetOneApplicationUseCaseTest.kt @@ -36,7 +36,7 @@ class GetOneApplicationUseCaseTest( val result = getOneApplicationUseCase.execute(application.id) then("result는 application의 내용이랑 같아야함") { - result shouldBeEqualToComparingFields application.toDto(listOf()) + result shouldBeEqualToComparingFields application.toDto(listOf(), listOf()) } } } diff --git a/src/test/kotlin/com/dcd/server/presentation/domain/application/ApplicationWebAdapterTest.kt b/src/test/kotlin/com/dcd/server/presentation/domain/application/ApplicationWebAdapterTest.kt index 8684cace..19133daa 100644 --- a/src/test/kotlin/com/dcd/server/presentation/domain/application/ApplicationWebAdapterTest.kt +++ b/src/test/kotlin/com/dcd/server/presentation/domain/application/ApplicationWebAdapterTest.kt @@ -69,7 +69,8 @@ class ApplicationWebAdapterTest : BehaviorSpec({ version = "latest", status = ApplicationStatus.STOPPED, labels = listOf(), - failureReason = null + failureReason = null, + initialScripts = emptyList(), ) val list = listOf(applicationResponse) val responseDto = ListResDto(list) @@ -98,7 +99,8 @@ class ApplicationWebAdapterTest : BehaviorSpec({ version = "latest", status = ApplicationStatus.STOPPED, labels = listOf(), - failureReason = null + failureReason = null, + initialScripts = emptyList(), ) `when`("getOneApplication 메서드를 실행할때") { every { getOneApplicationUseCase.execute(testId) } returns applicationResponse