-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'develop' of https://github.com/MealTokTok/MealTokTok-Se…
…rver into feature/crud-meal
- Loading branch information
Showing
99 changed files
with
1,889 additions
and
437 deletions.
There are no files selected for viewing
53 changes: 53 additions & 0 deletions
53
application/app-api/src/main/java/core/startup/mealtoktok/api/fulldining/FullDingingApi.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
package core.startup.mealtoktok.api.fulldining; | ||
|
||
import java.util.List; | ||
|
||
import org.springframework.security.core.annotation.AuthenticationPrincipal; | ||
import org.springframework.web.bind.annotation.GetMapping; | ||
import org.springframework.web.bind.annotation.PatchMapping; | ||
import org.springframework.web.bind.annotation.PathVariable; | ||
import org.springframework.web.bind.annotation.RequestMapping; | ||
import org.springframework.web.bind.annotation.RestController; | ||
|
||
import lombok.RequiredArgsConstructor; | ||
|
||
import core.startup.mealtoktok.api.fulldining.dto.FullDiningResponse; | ||
import core.startup.mealtoktok.common.dto.Response; | ||
import core.startup.mealtoktok.domain.fulldining.FullDining; | ||
import core.startup.mealtoktok.domain.fulldining.FullDiningService; | ||
import core.startup.mealtoktok.domain.fulldining.TargetFullDining; | ||
import core.startup.mealtoktok.domain.mealdelivery.CollectingState; | ||
import core.startup.mealtoktok.domain.mealdelivery.Recipient; | ||
import core.startup.mealtoktok.domain.user.User; | ||
|
||
@RequestMapping("/api/v1/full-dinings") | ||
@RestController | ||
@RequiredArgsConstructor | ||
public class FullDingingApi implements FullDiningApiDocs { | ||
|
||
private final FullDiningService fullDiningService; | ||
|
||
@PatchMapping("/full-dinings/{fullDiningId}/{collectingState}") | ||
public Response<Void> changeCollectingState( | ||
@PathVariable Long fullDiningId, @PathVariable CollectingState collectingState) { | ||
fullDiningService.changeCollectingState( | ||
TargetFullDining.from(fullDiningId), collectingState); | ||
return Response.success("수거 상태 변경 성공"); | ||
} | ||
|
||
@GetMapping("/full-dinings/collect-requested/count") | ||
public Response<Integer> countCollectRequestContainers( | ||
@AuthenticationPrincipal User currentUser) { | ||
return Response.success( | ||
fullDiningService.countCollectRequestContainers(Recipient.from(currentUser))); | ||
} | ||
|
||
@GetMapping("/full-dinings") | ||
public Response<List<FullDiningResponse>> fullDinings( | ||
@AuthenticationPrincipal User currentUser) { | ||
List<FullDining> fullDinings = | ||
fullDiningService.getFullDinings(Recipient.from(currentUser)); | ||
return Response.success( | ||
fullDinings.parallelStream().map(FullDiningResponse::from).toList()); | ||
} | ||
} |
24 changes: 24 additions & 0 deletions
24
...ation/app-api/src/main/java/core/startup/mealtoktok/api/fulldining/FullDiningApiDocs.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
package core.startup.mealtoktok.api.fulldining; | ||
|
||
import java.util.List; | ||
|
||
import core.startup.mealtoktok.api.fulldining.dto.FullDiningResponse; | ||
import core.startup.mealtoktok.common.dto.Response; | ||
import core.startup.mealtoktok.domain.mealdelivery.CollectingState; | ||
import core.startup.mealtoktok.domain.user.User; | ||
|
||
import io.swagger.v3.oas.annotations.Operation; | ||
import io.swagger.v3.oas.annotations.tags.Tag; | ||
|
||
@Tag(name = "풀대접 API") | ||
public interface FullDiningApiDocs { | ||
|
||
@Operation(summary = "풀대접 서비스 수거 상태 변경") | ||
Response<Void> changeCollectingState(Long fullDiningId, CollectingState collectingState); | ||
|
||
@Operation(summary = "풀대접 서비스 수거 요청된 다회용기 갯수 조회") | ||
Response<Integer> countCollectRequestContainers(User currentUser); | ||
|
||
@Operation(summary = "풀대접 서비스 7일 이내의 다회용기 납부 목록 조회") | ||
Response<List<FullDiningResponse>> fullDinings(User currentUser); | ||
} |
4 changes: 2 additions & 2 deletions
4
.../mealdelivery/dto/FullDiningResponse.java → ...pi/fulldining/dto/FullDiningResponse.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
19 changes: 19 additions & 0 deletions
19
application/app-api/src/main/java/core/startup/mealtoktok/api/global/util/FileMapper.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
package core.startup.mealtoktok.api.global.util; | ||
|
||
import java.util.Collections; | ||
import java.util.List; | ||
|
||
import org.springframework.web.multipart.MultipartFile; | ||
|
||
import core.startup.mealtoktok.common.dto.File; | ||
|
||
public class FileMapper { | ||
|
||
public static List<File> toFiles(List<MultipartFile> files) { | ||
if (files == null) { | ||
return Collections.emptyList(); | ||
} | ||
|
||
return files.stream().map(File::from).toList(); | ||
} | ||
} |
59 changes: 59 additions & 0 deletions
59
.../app-api/src/main/java/core/startup/mealtoktok/api/global/web/CursorArgumentResolver.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
package core.startup.mealtoktok.api.global.web; | ||
|
||
import java.util.ArrayList; | ||
import java.util.List; | ||
|
||
import org.springframework.core.MethodParameter; | ||
import org.springframework.web.bind.support.WebDataBinderFactory; | ||
import org.springframework.web.context.request.NativeWebRequest; | ||
import org.springframework.web.method.support.HandlerMethodArgumentResolver; | ||
import org.springframework.web.method.support.ModelAndViewContainer; | ||
|
||
import core.startup.mealtoktok.common.annotation.CursorDefault; | ||
import core.startup.mealtoktok.common.dto.Cursor; | ||
import core.startup.mealtoktok.common.dto.SortDirection; | ||
import core.startup.mealtoktok.common.dto.SortOrder; | ||
|
||
public class CursorArgumentResolver implements HandlerMethodArgumentResolver { | ||
|
||
@Override | ||
public boolean supportsParameter(MethodParameter parameter) { | ||
return parameter.getParameterType().equals(Cursor.class) | ||
&& parameter.hasParameterAnnotation(CursorDefault.class); | ||
} | ||
|
||
@Override | ||
public Object resolveArgument( | ||
MethodParameter parameter, | ||
ModelAndViewContainer mavContainer, | ||
NativeWebRequest webRequest, | ||
WebDataBinderFactory binderFactory) { | ||
CursorDefault cursorDefault = parameter.getParameterAnnotation(CursorDefault.class); | ||
|
||
String pageParam = webRequest.getParameter("page"); | ||
int page = (pageParam != null) ? Integer.parseInt(pageParam) : cursorDefault.page(); | ||
|
||
String sizeParam = webRequest.getParameter("size"); | ||
int size = (sizeParam != null) ? Integer.parseInt(sizeParam) : cursorDefault.size(); | ||
|
||
List<SortOrder> sortOrders = new ArrayList<>(); | ||
String sortFieldsParam = webRequest.getParameter("sortFields"); | ||
String sortDirectionsParam = webRequest.getParameter("sortDirections"); | ||
|
||
String[] fields = | ||
(sortFieldsParam != null) | ||
? sortFieldsParam.split(",") | ||
: cursorDefault.sortFields().split(","); | ||
String[] directions = | ||
(sortDirectionsParam != null) | ||
? sortDirectionsParam.split(",") | ||
: cursorDefault.sortDirections().split(","); | ||
|
||
for (int i = 0; i < Math.min(fields.length, directions.length); i++) { | ||
SortDirection direction = SortDirection.valueOf(directions[i].trim().toUpperCase()); | ||
sortOrders.add(new SortOrder(fields[i].trim(), direction)); | ||
} | ||
|
||
return new Cursor(page, size, sortOrders); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.