diff --git a/src/main/java/com/ourmenu/backend/domain/cache/api/CacheController.java b/src/main/java/com/ourmenu/backend/domain/cache/api/CacheController.java index 58b59855..4018d4b1 100644 --- a/src/main/java/com/ourmenu/backend/domain/cache/api/CacheController.java +++ b/src/main/java/com/ourmenu/backend/domain/cache/api/CacheController.java @@ -2,9 +2,13 @@ import com.ourmenu.backend.domain.cache.application.CacheService; import com.ourmenu.backend.domain.cache.dto.GetCacheInfoResponse; +import com.ourmenu.backend.domain.cache.dto.GetMenuFolderIconResponse; +import com.ourmenu.backend.domain.cache.dto.GetMenuPinResponse; +import com.ourmenu.backend.domain.cache.dto.GetTagResponse; import com.ourmenu.backend.global.response.ApiResponse; import com.ourmenu.backend.global.response.util.ApiUtil; import io.swagger.v3.oas.annotations.tags.Tag; +import java.util.List; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @@ -22,4 +26,25 @@ public ApiResponse getCacheInfo() { return ApiUtil.success(response); } + + @GetMapping("api/cache-data/menu-folder-icons") + public ApiResponse> getMenuFolderIconsResponse() { + List response = cacheService.getMenuFolderIcons(); + + return ApiUtil.success(response); + } + + @GetMapping("api/cache-data/menu-pins") + public ApiResponse> getMenuPinResponse() { + List response = cacheService.getMenuPins(); + + return ApiUtil.success(response); + } + + @GetMapping("api/cache-data/tags") + public ApiResponse> getTagResponse() { + List response = cacheService.getTags(); + + return ApiUtil.success(response); + } } diff --git a/src/main/java/com/ourmenu/backend/domain/cache/application/CacheService.java b/src/main/java/com/ourmenu/backend/domain/cache/application/CacheService.java index e9f19f97..a35d2997 100644 --- a/src/main/java/com/ourmenu/backend/domain/cache/application/CacheService.java +++ b/src/main/java/com/ourmenu/backend/domain/cache/application/CacheService.java @@ -4,6 +4,9 @@ import com.ourmenu.backend.domain.cache.domain.MenuFolderIcon; import com.ourmenu.backend.domain.cache.domain.MenuPin; import com.ourmenu.backend.domain.cache.dto.GetCacheInfoResponse; +import com.ourmenu.backend.domain.cache.dto.GetMenuFolderIconResponse; +import com.ourmenu.backend.domain.cache.dto.GetMenuPinResponse; +import com.ourmenu.backend.domain.cache.dto.GetTagResponse; import com.ourmenu.backend.domain.cache.dto.SimpleHomeImgResponse; import com.ourmenu.backend.domain.cache.dto.SimpleMenuFolderIconResponse; import com.ourmenu.backend.domain.cache.dto.SimpleMenuPinResponse; @@ -29,6 +32,31 @@ public GetCacheInfoResponse getCacheInfo() { return GetCacheInfoResponse.of(menuFolderIconInfo, menuPinInfo, homeImgInfo, tagInfo); } + + public List getMenuFolderIcons() { + List menuFolderIconsInfo = getMenuFolderIconInfo(); + + return menuFolderIconsInfo.stream() + .map(GetMenuFolderIconResponse::from) + .toList(); + } + + public List getMenuPins() { + List menuPinsInfo = getMenuPinInfo(); + + return menuPinsInfo.stream() + .map(GetMenuPinResponse::from) + .toList(); + } + + public List getTags() { + List tagsImgInfo = getTagImgInfo(); + + return tagsImgInfo.stream() + .map(GetTagResponse::from) + .toList(); + } + private List getMenuFolderIconInfo() { return Arrays.stream(MenuFolderIcon.values()) .map(menuFolderIcon -> { diff --git a/src/main/java/com/ourmenu/backend/domain/cache/dto/GetMenuFolderIconResponse.java b/src/main/java/com/ourmenu/backend/domain/cache/dto/GetMenuFolderIconResponse.java new file mode 100644 index 00000000..b9ef8585 --- /dev/null +++ b/src/main/java/com/ourmenu/backend/domain/cache/dto/GetMenuFolderIconResponse.java @@ -0,0 +1,23 @@ +package com.ourmenu.backend.domain.cache.dto; + +import com.ourmenu.backend.domain.cache.domain.MenuFolderIcon; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; + +@AllArgsConstructor(access = AccessLevel.PRIVATE) +@Builder(access = AccessLevel.PRIVATE) +@Getter +public class GetMenuFolderIconResponse { + + private MenuFolderIcon menuFolderIcon; + private String menuFolderIconUrl; + + public static GetMenuFolderIconResponse from(SimpleMenuFolderIconResponse simpleMenuFolderIconResponse) { + return GetMenuFolderIconResponse.builder() + .menuFolderIcon(simpleMenuFolderIconResponse.getMenuFolderIcon()) + .menuFolderIconUrl(simpleMenuFolderIconResponse.getMenuFolderIconUrl()) + .build(); + } +} diff --git a/src/main/java/com/ourmenu/backend/domain/cache/dto/GetMenuPinResponse.java b/src/main/java/com/ourmenu/backend/domain/cache/dto/GetMenuPinResponse.java new file mode 100644 index 00000000..31f55735 --- /dev/null +++ b/src/main/java/com/ourmenu/backend/domain/cache/dto/GetMenuPinResponse.java @@ -0,0 +1,25 @@ +package com.ourmenu.backend.domain.cache.dto; + +import com.ourmenu.backend.domain.cache.domain.MenuPin; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; + +@AllArgsConstructor(access = AccessLevel.PRIVATE) +@Builder(access = AccessLevel.PRIVATE) +@Getter +public class GetMenuPinResponse { + + private MenuPin menuPin; + private String menuPinAddImgUrl; + private String menuPinAddDisableImgUrl; + + public static GetMenuPinResponse from(SimpleMenuPinResponse simpleMenuPinResponse) { + return GetMenuPinResponse.builder() + .menuPin(simpleMenuPinResponse.getMenuPin()) + .menuPinAddImgUrl(simpleMenuPinResponse.getMenuPinAddImgUrl()) + .menuPinAddDisableImgUrl(simpleMenuPinResponse.getMenuPinAddDisableImgUrl()) + .build(); + } +} diff --git a/src/main/java/com/ourmenu/backend/domain/cache/dto/GetTagResponse.java b/src/main/java/com/ourmenu/backend/domain/cache/dto/GetTagResponse.java new file mode 100644 index 00000000..8e72977c --- /dev/null +++ b/src/main/java/com/ourmenu/backend/domain/cache/dto/GetTagResponse.java @@ -0,0 +1,25 @@ +package com.ourmenu.backend.domain.cache.dto; + +import com.ourmenu.backend.domain.tag.domain.Tag; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; + +@AllArgsConstructor(access = AccessLevel.PRIVATE) +@Builder(access = AccessLevel.PRIVATE) +@Getter +public class GetTagResponse { + + private Tag tag; + private String orangeTagImgUrl; + private String whiteTagImgUrl; + + public static GetTagResponse from(SimpleTagImgResponse simpleTagImgResponse) { + return GetTagResponse.builder() + .tag(simpleTagImgResponse.getTag()) + .orangeTagImgUrl(simpleTagImgResponse.getOrangeTagImgUrl()) + .whiteTagImgUrl(simpleTagImgResponse.getWhiteTagImgUrl()) + .build(); + } +} diff --git a/src/main/java/com/ourmenu/backend/domain/menu/api/MenuController.java b/src/main/java/com/ourmenu/backend/domain/menu/api/MenuController.java index d890255d..8e5b8794 100644 --- a/src/main/java/com/ourmenu/backend/domain/menu/api/MenuController.java +++ b/src/main/java/com/ourmenu/backend/domain/menu/api/MenuController.java @@ -45,7 +45,7 @@ public ApiResponse saveMenu(@ModelAttribute SaveMenuRequest re @AuthenticationPrincipal CustomUserDetails userDetails) { request.initList(); SimpleSearchDto simpleSearchDto = searchService.getSearchDto(request.getIsCrawled(), request.getStoreId()); - MenuDto menuDto = MenuDto.of(request, request.getMenuFolderImgs(), userDetails, simpleSearchDto); + MenuDto menuDto = MenuDto.of(request, request.getMenuImgs(), userDetails, simpleSearchDto); SaveMenuResponse response = menuService.saveMenu(menuDto); return ApiUtil.success(response); } diff --git a/src/main/java/com/ourmenu/backend/domain/menu/dto/SaveMenuRequest.java b/src/main/java/com/ourmenu/backend/domain/menu/dto/SaveMenuRequest.java index e4bc979b..a91c0a14 100644 --- a/src/main/java/com/ourmenu/backend/domain/menu/dto/SaveMenuRequest.java +++ b/src/main/java/com/ourmenu/backend/domain/menu/dto/SaveMenuRequest.java @@ -12,7 +12,7 @@ @Getter public class SaveMenuRequest { - List menuFolderImgs; + List menuImgs; private String menuTitle; private int menuPrice; private MenuPin menuPin; @@ -27,8 +27,8 @@ public class SaveMenuRequest { * request 에 null 들어오는 경우에 대해서 request 초기화 swagger 를 위한 메서드 */ public void initList() { - if (menuFolderImgs == null) { - menuFolderImgs = new ArrayList<>(); + if (menuImgs == null) { + menuImgs = new ArrayList<>(); } if (menuFolderIds == null) { menuFolderIds = new ArrayList<>(); diff --git a/src/main/java/com/ourmenu/backend/global/config/SecurityConfig.java b/src/main/java/com/ourmenu/backend/global/config/SecurityConfig.java index 30dc1d13..b1020f1b 100644 --- a/src/main/java/com/ourmenu/backend/global/config/SecurityConfig.java +++ b/src/main/java/com/ourmenu/backend/global/config/SecurityConfig.java @@ -38,7 +38,8 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { sessionManagementConfigurer.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .logout(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorize -> authorize - .requestMatchers("/api/users/sign-up", "/api/users/sign-in", "/api/users/auth/kakao", "/api/users/reissue-token") + .requestMatchers("/api/users/sign-up", "/api/users/sign-in", "/api/users/auth/kakao", + "/api/users/reissue-token") .permitAll() .requestMatchers("/api/emails/**").permitAll() .requestMatchers("/swagger-ui/**", "/swagger-resources/**", "/v3/api-docs/**").permitAll() @@ -68,6 +69,7 @@ public WebSecurityCustomizer webSecurityCustomizer() { "/api/users/sign-in", "/api/users/reissue-token", "/api/cache-data", + "/api/cache-data/**", "/api/emails/**", "/swagger-ui/**", "/swagger-resources/**",