Skip to content
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
Expand Up @@ -7,6 +7,7 @@ import hs.kr.entrydsm.application.domain.admin.presentation.dto.response.CreateA
import hs.kr.entrydsm.application.domain.admin.presentation.dto.response.CreateEducationalStatusResponse
import hs.kr.entrydsm.application.domain.admin.presentation.dto.response.CreatePrototypeResponse
import hs.kr.entrydsm.application.domain.admin.usecase.AdminUseCase
import hs.kr.entrydsm.application.global.document.admin.AdminApiDocument
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.RequestBody
Expand All @@ -17,9 +18,9 @@ import org.springframework.web.bind.annotation.RestController
@RequestMapping("/api/v1/admin")
class AdminController(
private val adminUseCase: AdminUseCase,
) {
) : AdminApiDocument {
@PostMapping("/application-types")
fun createApplicationType(
override fun createApplicationType(
@RequestBody request: CreateApplicationTypeRequest,
): ResponseEntity<CreateApplicationTypeResponse> {
val result = adminUseCase.createApplicationType(request.code, request.name)
Expand All @@ -37,7 +38,7 @@ class AdminController(
}

@PostMapping("/educational-statuses")
fun createEducationalStatus(
override fun createEducationalStatus(
@RequestBody request: CreateEducationalStatusRequest,
): ResponseEntity<CreateEducationalStatusResponse> {
val result = adminUseCase.createEducationalStatus(request.code, request.name)
Expand All @@ -55,7 +56,7 @@ class AdminController(
}

@PostMapping("/prototypes")
fun createPrototype(
override fun createPrototype(
@RequestBody request: CreatePrototypeRequest,
): ResponseEntity<CreatePrototypeResponse> {
val result =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import hs.kr.entrydsm.application.domain.application.presentation.dto.response.A
import hs.kr.entrydsm.application.domain.application.presentation.dto.response.CalculationHistoryResponse
import hs.kr.entrydsm.application.domain.application.presentation.dto.response.CalculationResponse
import hs.kr.entrydsm.application.domain.application.usecase.ApplicationQueryUseCase
import hs.kr.entrydsm.application.global.document.application.ApplicationQueryApiDocument
import org.springframework.http.HttpStatus
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.GetMapping
Expand All @@ -18,9 +19,9 @@ import org.springframework.web.bind.annotation.RestController
@RequestMapping("/api/v1")
class ApplicationQueryController(
private val applicationQueryUseCase: ApplicationQueryUseCase,
) {
) : ApplicationQueryApiDocument {
@GetMapping("/applications/{applicationId}")
fun getApplication(
override fun getApplication(
@PathVariable applicationId: String?,
): ResponseEntity<ApplicationDetailResponse> {
return try {
Expand All @@ -46,7 +47,7 @@ class ApplicationQueryController(
}

@GetMapping("/applications")
fun getApplications(
override fun getApplications(
@RequestParam(required = false) applicationType: String?,
@RequestParam(required = false) educationalStatus: String?,
@RequestParam(defaultValue = "0") page: Int,
Expand All @@ -70,7 +71,7 @@ class ApplicationQueryController(
}

@GetMapping("/users/{userId}/applications")
fun getUserApplications(
override fun getUserApplications(
@PathVariable userId: String?,
): ResponseEntity<ApplicationListResponse> {
return try {
Expand All @@ -96,7 +97,7 @@ class ApplicationQueryController(
}

@GetMapping("/applications/{applicationId}/scores")
fun getApplicationScores(
override fun getApplicationScores(
@PathVariable applicationId: String?,
): ResponseEntity<ApplicationScoresResponse> {
return try {
Expand All @@ -122,7 +123,7 @@ class ApplicationQueryController(
}

@GetMapping("/applications/{applicationId}/calculations")
fun getCalculationResult(
override fun getCalculationResult(
@PathVariable applicationId: String?,
): ResponseEntity<CalculationResponse> {
return try {
Expand All @@ -148,7 +149,7 @@ class ApplicationQueryController(
}

@GetMapping("/applications/{applicationId}/calculations/history")
fun getCalculationHistory(
override fun getCalculationHistory(
@PathVariable applicationId: String?,
): ResponseEntity<CalculationHistoryResponse> {
return try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package hs.kr.entrydsm.application.domain.application.presentation
import hs.kr.entrydsm.application.domain.application.presentation.dto.request.ApplicationSubmissionRequest
import hs.kr.entrydsm.application.domain.application.presentation.dto.response.ApplicationSubmissionResponse
import hs.kr.entrydsm.application.domain.application.usecase.CompleteApplicationUseCase
import hs.kr.entrydsm.application.global.document.application.ApplicationSubmissionApiDocument
import org.springframework.http.HttpStatus
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.PostMapping
Expand All @@ -15,9 +16,9 @@ import java.time.LocalDateTime
@RequestMapping("/api/v1")
class ApplicationSubmissionController(
private val completeApplicationUseCase: CompleteApplicationUseCase,
) {
) : ApplicationSubmissionApiDocument {
@PostMapping("/applications")
fun submitApplication(
override fun submitApplication(
@RequestBody request: ApplicationSubmissionRequest?,
): ResponseEntity<ApplicationSubmissionResponse> {
return try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import hs.kr.entrydsm.application.domain.application.presentation.dto.response.P
import hs.kr.entrydsm.application.domain.application.presentation.dto.response.SupportedTypesResponse
import hs.kr.entrydsm.application.domain.application.presentation.dto.response.ValidationResponse
import hs.kr.entrydsm.application.domain.application.usecase.ApplicationUseCase
import hs.kr.entrydsm.application.global.document.application.WebApplicationApiDocument
import hs.kr.entrydsm.domain.application.values.ApplicationTypeFilter
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.GetMapping
Expand All @@ -18,9 +19,9 @@ import org.springframework.web.bind.annotation.RestController
@RequestMapping("/api/v1")
class WebApplicationAdapter(
private val applicationUseCase: ApplicationUseCase,
) {
) : WebApplicationApiDocument {
@GetMapping("/prototypes")
fun getPrototype(
override fun getPrototype(
@RequestParam applicationType: String,
@RequestParam educationalStatus: String,
@RequestParam(required = false) region: String?,
Expand Down Expand Up @@ -73,7 +74,7 @@ class WebApplicationAdapter(
}

@GetMapping("/types")
fun getSupportedTypes(): ResponseEntity<SupportedTypesResponse> {
override fun getSupportedTypes(): ResponseEntity<SupportedTypesResponse> {
val supportedTypes = applicationUseCase.getSupportedTypes()

val response =
Expand Down Expand Up @@ -102,7 +103,7 @@ class WebApplicationAdapter(
}

@PostMapping("/validate")
fun validateScoreData(
override fun validateScoreData(
@RequestBody request: ValidateScoreDataRequest,
): ResponseEntity<ValidationResponse> {
val filter =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import hs.kr.entrydsm.application.domain.formula.presentation.dto.response.Formu
import hs.kr.entrydsm.application.domain.formula.presentation.dto.response.FormulaSetListResponse
import hs.kr.entrydsm.application.domain.formula.presentation.dto.response.FormulaSetResponse
import hs.kr.entrydsm.application.domain.formula.usecase.FormulaSetUseCase
import hs.kr.entrydsm.application.global.document.formula.FormulaSetApiDocument
import org.springframework.http.HttpStatus
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.DeleteMapping
Expand All @@ -24,9 +25,9 @@ import java.util.UUID
@RequestMapping("/api/v1")
class FormulaSetController(
private val formulaSetUseCase: FormulaSetUseCase,
) {
) : FormulaSetApiDocument {
@PostMapping("/formulas")
fun createFormulaSet(
override fun createFormulaSet(
@RequestBody request: CreateFormulaSetRequest?,
): ResponseEntity<FormulaSetResponse> {
return try {
Expand Down Expand Up @@ -60,7 +61,7 @@ class FormulaSetController(
}

@PutMapping("/formulas/{formulaSetId}")
fun updateFormulaSet(
override fun updateFormulaSet(
@PathVariable formulaSetId: String?,
@RequestBody request: UpdateFormulaSetRequest?,
): ResponseEntity<FormulaSetResponse> {
Expand Down Expand Up @@ -99,7 +100,7 @@ class FormulaSetController(
}

@GetMapping("/formulas")
fun getFormulaSetList(): ResponseEntity<FormulaSetListResponse> {
override fun getFormulaSetList(): ResponseEntity<FormulaSetListResponse> {
return try {
val response = formulaSetUseCase.getFormulaSetList()
ResponseEntity.ok(response)
Expand All @@ -109,7 +110,7 @@ class FormulaSetController(
}

@GetMapping("/formulas/{formulaSetId}")
fun getFormulaSetDetail(
override fun getFormulaSetDetail(
@PathVariable formulaSetId: String?,
): ResponseEntity<FormulaSetDetailResponse> {
return try {
Expand All @@ -135,7 +136,7 @@ class FormulaSetController(
}

@DeleteMapping("/formulas/{formulaSetId}")
fun deleteFormulaSet(
override fun deleteFormulaSet(
@PathVariable formulaSetId: String?,
): ResponseEntity<Void> {
return try {
Expand All @@ -161,7 +162,7 @@ class FormulaSetController(
}

@PostMapping("/formulas/{formulaSetId}/execute")
fun executeFormulas(
override fun executeFormulas(
@PathVariable formulaSetId: String?,
@RequestBody request: FormulaExecutionRequest?,
): ResponseEntity<FormulaExecutionResponse> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import hs.kr.entrydsm.application.domain.user.presentation.dto.response.CreateUs
import hs.kr.entrydsm.application.domain.user.presentation.dto.response.UserDetailResponse
import hs.kr.entrydsm.application.domain.user.presentation.dto.response.UsersListResponse
import hs.kr.entrydsm.application.domain.user.usecase.UserUseCase
import hs.kr.entrydsm.application.global.document.user.UserApiDocument
import org.springframework.http.HttpStatus
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.GetMapping
Expand All @@ -18,9 +19,9 @@ import org.springframework.web.bind.annotation.RestController
@RequestMapping("/api/v1/users")
class UserController(
private val userUseCase: UserUseCase,
) {
) : UserApiDocument {
@PostMapping
fun createUser(
override fun createUser(
@RequestBody request: CreateUserRequest?,
): ResponseEntity<CreateUserResponse> {
return try {
Expand Down Expand Up @@ -71,7 +72,7 @@ class UserController(
}

@GetMapping("/{userId}")
fun getUserById(
override fun getUserById(
@PathVariable userId: String?,
): ResponseEntity<UserDetailResponse> {
return try {
Expand Down Expand Up @@ -115,7 +116,7 @@ class UserController(
}

@GetMapping
fun getAllUsers(): ResponseEntity<UsersListResponse> {
override fun getAllUsers(): ResponseEntity<UsersListResponse> {
return try {
val results = userUseCase.getAllUsers()

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
package hs.kr.entrydsm.application.global.document.admin

import hs.kr.entrydsm.application.domain.admin.presentation.dto.request.CreateApplicationTypeRequest
import hs.kr.entrydsm.application.domain.admin.presentation.dto.request.CreateEducationalStatusRequest
import hs.kr.entrydsm.application.domain.admin.presentation.dto.request.CreatePrototypeRequest
import hs.kr.entrydsm.application.domain.admin.presentation.dto.response.CreateApplicationTypeResponse
import hs.kr.entrydsm.application.domain.admin.presentation.dto.response.CreateEducationalStatusResponse
import hs.kr.entrydsm.application.domain.admin.presentation.dto.response.CreatePrototypeResponse
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.media.Content
import io.swagger.v3.oas.annotations.media.Schema
import io.swagger.v3.oas.annotations.responses.ApiResponse
import io.swagger.v3.oas.annotations.responses.ApiResponses
import io.swagger.v3.oas.annotations.tags.Tag
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.RequestBody

@Tag(name = "어드민 API", description = "어드민 관련 API")
interface AdminApiDocument {

@Operation(summary = "전형 타입 생성", description = "새로운 전형 타입을 생성합니다.")
@ApiResponses(
value = [
ApiResponse(
responseCode = "200",
description = "전형 타입 생성 성공",
content = [Content(schema = Schema(implementation = CreateApplicationTypeResponse::class))]
),
ApiResponse(
responseCode = "400",
description = "잘못된 요청 데이터",
content = [Content(schema = Schema(hidden = true))]
),
ApiResponse(
responseCode = "500",
description = "서버 내부 오류",
content = [Content(schema = Schema(hidden = true))]
)
]
)
fun createApplicationType(
@RequestBody request: CreateApplicationTypeRequest,
): ResponseEntity<CreateApplicationTypeResponse>

@Operation(summary = "학력 상태 생성", description = "새로운 학력 상태를 생성합니다.")
@ApiResponses(
value = [
ApiResponse(
responseCode = "200",
description = "학력 상태 생성 성공",
content = [Content(schema = Schema(implementation = CreateEducationalStatusResponse::class))]
),
ApiResponse(
responseCode = "400",
description = "잘못된 요청 데이터",
content = [Content(schema = Schema(hidden = true))]
),
ApiResponse(
responseCode = "500",
description = "서버 내부 오류",
content = [Content(schema = Schema(hidden = true))]
)
]
)
fun createEducationalStatus(
@RequestBody request: CreateEducationalStatusRequest,
): ResponseEntity<CreateEducationalStatusResponse>

@Operation(summary = "프로토타입 생성", description = "새로운 프로토타입을 생성합니다.")
@ApiResponses(
value = [
ApiResponse(
responseCode = "200",
description = "프로토타입 생성 성공",
content = [Content(schema = Schema(implementation = CreatePrototypeResponse::class))]
),
ApiResponse(
responseCode = "400",
description = "잘못된 요청 데이터",
content = [Content(schema = Schema(hidden = true))]
),
ApiResponse(
responseCode = "500",
description = "서버 내부 오류",
content = [Content(schema = Schema(hidden = true))]
)
]
)
fun createPrototype(
@RequestBody request: CreatePrototypeRequest,
): ResponseEntity<CreatePrototypeResponse>
}
Loading
Loading