Skip to content

Commit

Permalink
Repackaging and Refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
K-Diger committed Mar 15, 2024
1 parent 85c453f commit 2bbfaa5
Show file tree
Hide file tree
Showing 46 changed files with 907 additions and 1,188 deletions.
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package univ.suwon.sulasang.common.annotation
package univ.suwon.sulasang.annotation

@Target(AnnotationTarget.FUNCTION)
@Retention(AnnotationRetention.RUNTIME)
annotation class ApiStatistics
annotation class ApiStatistics
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
package univ.suwon.sulasang.domain.diet
package univ.suwon.sulasang.api

import org.springframework.cache.annotation.Cacheable
import org.springframework.format.annotation.DateTimeFormat
import org.springframework.http.HttpStatus
import org.springframework.web.bind.annotation.*
import univ.suwon.sulasang.common.annotation.ApiStatistics
import univ.suwon.sulasang.annotation.ApiStatistics
import univ.suwon.sulasang.common.common.response.ResponseForm
import univ.suwon.sulasang.common.common.response.ResponseForm.Companion.success
import univ.suwon.sulasang.domain.core.diet.service.DietRetrieve
import univ.suwon.sulasang.domain.diet.dto.DietRetrieveDateAndTypeResponse
import univ.suwon.sulasang.domain.diet.dto.DietRetrieveWeeklyResponse
import univ.suwon.sulasang.domain.enumerated.MealType
import univ.suwon.sulasang.domain.diet.service.RetrieveDietService
import univ.suwon.sulasang.api.dto.DietRetrieveDateAndTypeResponse
import univ.suwon.sulasang.api.dto.DietRetrieveWeeklyResponse
import univ.suwon.sulasang.domain.diet.persistence.enumerated.MealType
import java.time.Instant
import java.time.ZoneId
import java.time.ZonedDateTime
Expand All @@ -19,15 +19,15 @@ import java.time.ZonedDateTime
@RequestMapping("/v1/diet")
@CrossOrigin(origins = ["*"], allowedHeaders = ["*"])
class DietRetrieveApi(
private val dietRetrieve: DietRetrieve,
private val retrieveDietService: RetrieveDietService,
) {

@Cacheable(cacheNames = ["weekly-diet"])
@GetMapping("/weekly")
fun retrieveWeeklyDiet(): ResponseForm<DietRetrieveWeeklyResponse> {
return success(
httpStatus = HttpStatus.OK,
result = DietRetrieveWeeklyResponse.of(dietRetrieve.executeForWeeklyDiet())
result = DietRetrieveWeeklyResponse.of(retrieveDietService.executeForWeeklyDiet())
)
}

Expand All @@ -41,11 +41,11 @@ class DietRetrieveApi(
return success(
httpStatus = HttpStatus.OK,
result = DietRetrieveDateAndTypeResponse.of(
dietRetrieve.executeByDateAndType(
retrieveDietService.executeByDateAndType(
date = ZonedDateTime.ofInstant(date, ZoneId.of("UTC")).toLocalDate(),
type = type
)
)
)
}
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package univ.suwon.sulasang.domain.diet.dto
package univ.suwon.sulasang.api.dto

import univ.suwon.sulasang.domain.core.diet.Diet
import java.time.DayOfWeek
import univ.suwon.sulasang.domain.diet.Diet
import univ.suwon.sulasang.domain.diet.persistence.embbeded.DayOfWeeks
import java.time.LocalDate

data class DietRetrieveWeeklyResponse(
Expand Down Expand Up @@ -49,7 +49,7 @@ data class WeeklyDietInfo(
val commonMenu: List<String>,
val mainMenu: List<String>,
val day: LocalDate,
val dayOfWeek: DayOfWeek,
val dayOfWeek: DayOfWeeks,
val mealType: String,
val restaurantType: String
)
Expand All @@ -60,4 +60,4 @@ data class DateAndTypeDietInfo(
val mainMenu: List<String>,
val mealType: String,
val restaurantType: String
)
)

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package univ.suwon.sulasang.common.config
package univ.suwon.sulasang.config

import com.github.benmanes.caffeine.cache.Caffeine
import org.springframework.cache.CacheManager
Expand Down Expand Up @@ -29,4 +29,4 @@ class CacheConfig {
cacheManager.setCaches(caches)
return cacheManager
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package univ.suwon.sulasang.config


enum class CacheType(
val cacheName: String,
val expiredAfterWrite: Long,
val maximumSize: Long
) {
WEEKLY_DIET(WEEKLY_DIET_CACHE_NAME, CACHE_LIFE_TIME, MAXIMUM_CACHE_SIZE),
DATE_TYPE_DIET(DATE_TYPE_CACHE_NAME, CACHE_LIFE_TIME, MAXIMUM_CACHE_SIZE)
}

const val WEEKLY_DIET_CACHE_NAME = "weekly-diet"
const val DATE_TYPE_CACHE_NAME = "date-type-diet"

const val CACHE_LIFE_TIME = 10 * 60L
const val MAXIMUM_CACHE_SIZE = 1000L
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package univ.suwon.sulasang.common.config
package univ.suwon.sulasang.config

import org.springframework.context.annotation.Configuration
import org.springframework.web.servlet.config.annotation.InterceptorRegistry
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer
import univ.suwon.sulasang.common.interceptor.ApiStatisticsInterceptor
import univ.suwon.sulasang.domain.core.apilog.service.ApiStatisticsLogger
import univ.suwon.sulasang.interceptor.ApiStatisticsInterceptor
import univ.suwon.sulasang.domain.apilog.service.ApiStatisticsLogger

@Configuration
class WebMvcConfig(
Expand All @@ -22,4 +22,4 @@ class WebMvcConfig(
interceptorRegistry.addInterceptor(ApiStatisticsInterceptor(apiStatisticsLogger))
.addPathPatterns("/v1/*")
}
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package univ.suwon.sulasang.common
package univ.suwon.sulasang.handler

import com.fasterxml.jackson.module.kotlin.MissingKotlinParameterException
import com.mashup.shorts.common.util.Slf4j2KotlinLogging.log
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package univ.suwon.sulasang.common.interceptor
package univ.suwon.sulasang.interceptor

import jakarta.servlet.http.HttpServletRequest
import jakarta.servlet.http.HttpServletResponse
import org.springframework.core.annotation.AnnotationUtils
import org.springframework.web.method.HandlerMethod
import org.springframework.web.servlet.HandlerInterceptor
import univ.suwon.sulasang.common.annotation.ApiStatistics
import univ.suwon.sulasang.domain.core.apilog.service.ApiStatisticsLogger
import univ.suwon.sulasang.annotation.ApiStatistics
import univ.suwon.sulasang.domain.apilog.service.ApiStatisticsLogger
import java.time.Duration
import java.time.LocalDateTime

Expand Down Expand Up @@ -55,4 +55,4 @@ class ApiStatisticsInterceptor(
}
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import org.springframework.boot.test.mock.mockito.MockBean
import org.springframework.test.context.ActiveProfiles
import org.springframework.test.context.TestConstructor
import org.springframework.test.context.TestPropertySource
import univ.suwon.sulasang.domain.core.apilog.service.ApiStatisticsLogger
import univ.suwon.sulasang.domain.apilog.service.ApiStatisticsLogger

@TestPropertySource(properties = ["spring.config.location=classpath:/"])
@TestConstructor(autowireMode = TestConstructor.AutowireMode.ALL)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,33 +16,33 @@ import org.springframework.test.web.servlet.result.MockMvcResultMatchers
import univ.suwon.sulasang.api.restdocs.ApiDocsTestBase
import univ.suwon.sulasang.api.util.PageHeaderSnippet
import univ.suwon.sulasang.api.util.RestDocsUtils
import univ.suwon.sulasang.domain.core.diet.Diet
import univ.suwon.sulasang.domain.core.diet.service.DietRetrieve
import univ.suwon.sulasang.domain.diet.DietRetrieveApi
import univ.suwon.sulasang.domain.embbeded.Company
import univ.suwon.sulasang.domain.enumerated.MealType
import univ.suwon.sulasang.domain.enumerated.RestaurantType
import java.time.DayOfWeek
import univ.suwon.sulasang.domain.diet.Diet
import univ.suwon.sulasang.api.DietRetrieveApi
import univ.suwon.sulasang.domain.diet.persistence.embbeded.Company
import univ.suwon.sulasang.domain.diet.persistence.embbeded.DayOfWeeks
import univ.suwon.sulasang.domain.diet.persistence.enumerated.MealType
import univ.suwon.sulasang.domain.diet.persistence.enumerated.RestaurantType
import univ.suwon.sulasang.domain.diet.service.RetrieveDietService
import java.time.Instant
import java.time.LocalDate

@WebMvcTest(DietRetrieveApi::class)
class DateAndTypeDietRetrieveApiTest : ApiDocsTestBase() {
class DateAndTypeRetrieveApiTestDietService : ApiDocsTestBase() {

@MockkBean
private lateinit var dietRetrieve: DietRetrieve
private lateinit var retrieveDietService: RetrieveDietService

@Test
fun `주간 식단 조회`() {
every {
dietRetrieve.executeByDateAndType(
retrieveDietService.executeByDateAndType(
date = any(),
type = any()
)
} returns (
listOf(
Diet(
dayOfWeek = DayOfWeek.MONDAY,
dayOfWeek = DayOfWeeks.MONDAY,
day = LocalDate.now(),
mainMenu = "메인반찬1 메인반찬2 메인반찬3",
commonMenu = "공통반찬1 공통반찬2 공통반찬3",
Expand All @@ -51,7 +51,7 @@ class DateAndTypeDietRetrieveApiTest : ApiDocsTestBase() {
restaurantType = RestaurantType.ACE_EDUCATION_CENTER_STUDENT
),
Diet(
dayOfWeek = DayOfWeek.TUESDAY,
dayOfWeek = DayOfWeeks.TUESDAY,
day = LocalDate.now(),
mainMenu = "메인반찬1 메인반찬2 메인반찬3",
commonMenu = "공통반찬1 공통반찬2 공통반찬3",
Expand All @@ -60,7 +60,7 @@ class DateAndTypeDietRetrieveApiTest : ApiDocsTestBase() {
restaurantType = RestaurantType.ACE_EDUCATION_CENTER_STUDENT
),
Diet(
dayOfWeek = DayOfWeek.WEDNESDAY,
dayOfWeek = DayOfWeeks.WEDNESDAY,
day = LocalDate.now(),
mainMenu = "메인반찬1 메인반찬2 메인반찬3",
commonMenu = "공통반찬1 공통반찬2 공통반찬3",
Expand All @@ -69,7 +69,7 @@ class DateAndTypeDietRetrieveApiTest : ApiDocsTestBase() {
restaurantType = RestaurantType.ACE_EDUCATION_CENTER_STUDENT
),
Diet(
dayOfWeek = DayOfWeek.THURSDAY,
dayOfWeek = DayOfWeeks.THURSDAY,
day = LocalDate.now(),
mainMenu = "메인반찬1 메인반찬2 메인반찬3",
commonMenu = "공통반찬1 공통반찬2 공통반찬3",
Expand All @@ -78,7 +78,7 @@ class DateAndTypeDietRetrieveApiTest : ApiDocsTestBase() {
restaurantType = RestaurantType.ACE_EDUCATION_CENTER_STUDENT
),
Diet(
dayOfWeek = DayOfWeek.FRIDAY,
dayOfWeek = DayOfWeeks.FRIDAY,
day = LocalDate.now(),
mainMenu = "메인반찬1 메인반찬2 메인반찬3",
commonMenu = "공통반찬1 공통반찬2 공통반찬3",
Expand Down Expand Up @@ -128,4 +128,4 @@ class DateAndTypeDietRetrieveApiTest : ApiDocsTestBase() {
)
)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,30 +12,30 @@ import org.springframework.restdocs.payload.PayloadDocumentation.fieldWithPath
import org.springframework.restdocs.payload.PayloadDocumentation.responseFields
import org.springframework.test.web.servlet.result.MockMvcResultHandlers
import org.springframework.test.web.servlet.result.MockMvcResultMatchers
import univ.suwon.sulasang.api.DietRetrieveApi
import univ.suwon.sulasang.api.restdocs.ApiDocsTestBase
import univ.suwon.sulasang.api.util.PageHeaderSnippet
import univ.suwon.sulasang.api.util.RestDocsUtils
import univ.suwon.sulasang.domain.core.diet.Diet
import univ.suwon.sulasang.domain.core.diet.service.DietRetrieve
import univ.suwon.sulasang.domain.diet.DietRetrieveApi
import univ.suwon.sulasang.domain.embbeded.Company
import univ.suwon.sulasang.domain.enumerated.MealType
import univ.suwon.sulasang.domain.enumerated.RestaurantType
import java.time.DayOfWeek
import univ.suwon.sulasang.domain.diet.Diet
import univ.suwon.sulasang.domain.diet.persistence.embbeded.Company
import univ.suwon.sulasang.domain.diet.persistence.embbeded.DayOfWeeks
import univ.suwon.sulasang.domain.diet.persistence.enumerated.MealType
import univ.suwon.sulasang.domain.diet.persistence.enumerated.RestaurantType
import univ.suwon.sulasang.domain.diet.service.RetrieveDietService
import java.time.LocalDate

@WebMvcTest(DietRetrieveApi::class)
class WeeklyDietRetrieveApiTest : ApiDocsTestBase() {
class WeeklyRetrieveDietServiceApiTest : ApiDocsTestBase() {

@MockkBean
private lateinit var dietRetrieve: DietRetrieve
private lateinit var retrieveDietService: RetrieveDietService

@Test
fun `주간 식단 조회`() {
every { dietRetrieve.executeForWeeklyDiet() } returns (
every { retrieveDietService.executeForWeeklyDiet() } returns (
listOf(
Diet(
dayOfWeek = DayOfWeek.MONDAY,
dayOfWeek = DayOfWeeks.MONDAY,
day = LocalDate.now(),
mainMenu = "메인반찬1 메인반찬2 메인반찬3",
commonMenu = "공통반찬1 공통반찬2 공통반찬3",
Expand All @@ -44,7 +44,7 @@ class WeeklyDietRetrieveApiTest : ApiDocsTestBase() {
restaurantType = RestaurantType.ACE_EDUCATION_CENTER_STUDENT
),
Diet(
dayOfWeek = DayOfWeek.TUESDAY,
dayOfWeek = DayOfWeeks.TUESDAY,
day = LocalDate.now(),
mainMenu = "메인반찬1 메인반찬2 메인반찬3",
commonMenu = "공통반찬1 공통반찬2 공통반찬3",
Expand All @@ -53,7 +53,7 @@ class WeeklyDietRetrieveApiTest : ApiDocsTestBase() {
restaurantType = RestaurantType.ACE_EDUCATION_CENTER_STUDENT
),
Diet(
dayOfWeek = DayOfWeek.WEDNESDAY,
dayOfWeek = DayOfWeeks.WEDNESDAY,
day = LocalDate.now(),
mainMenu = "메인반찬1 메인반찬2 메인반찬3",
commonMenu = "공통반찬1 공통반찬2 공통반찬3",
Expand All @@ -62,7 +62,7 @@ class WeeklyDietRetrieveApiTest : ApiDocsTestBase() {
restaurantType = RestaurantType.ACE_EDUCATION_CENTER_STUDENT
),
Diet(
dayOfWeek = DayOfWeek.THURSDAY,
dayOfWeek = DayOfWeeks.THURSDAY,
day = LocalDate.now(),
mainMenu = "메인반찬1 메인반찬2 메인반찬3",
commonMenu = "공통반찬1 공통반찬2 공통반찬3",
Expand All @@ -71,7 +71,7 @@ class WeeklyDietRetrieveApiTest : ApiDocsTestBase() {
restaurantType = RestaurantType.ACE_EDUCATION_CENTER_STUDENT
),
Diet(
dayOfWeek = DayOfWeek.FRIDAY,
dayOfWeek = DayOfWeeks.FRIDAY,
day = LocalDate.now(),
mainMenu = "메인반찬1 메인반찬2 메인반찬3",
commonMenu = "공통반찬1 공통반찬2 공통반찬3",
Expand Down

This file was deleted.

Loading

0 comments on commit 2bbfaa5

Please sign in to comment.