Skip to content

Refactor: FoodCursorPageRequest 중복 제거 - #236

Merged
jjh75607 merged 1 commit into
devfrom
refactor/#235
May 23, 2026
Merged

Refactor: FoodCursorPageRequest 중복 제거#236
jjh75607 merged 1 commit into
devfrom
refactor/#235

Conversation

@jjh75607

@jjh75607 jjh75607 commented May 23, 2026

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Refactor

    • 식품 목록 조회 API의 페이지네이션 파라미터가 개별 쿼리 파라미터(cursorId, size, sortBy, storageType)로 변경되었습니다.
  • Documentation

    • API 문서가 파라미터 구조 변경에 맞게 업데이트되었습니다.
  • Tests

    • API 변경사항에 대한 테스트 커버리지가 업데이트되었습니다.

Review Change Stack

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@jjh75607 jjh75607 self-assigned this May 23, 2026
@coderabbitai

coderabbitai Bot commented May 23, 2026

Copy link
Copy Markdown

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 077c20ae-d4af-403f-aa6d-13c6d5945226

📥 Commits

Reviewing files that changed from the base of the PR and between 9041dd4 and 0cdd730.

📒 Files selected for processing (6)
  • src/main/java/soon/fridgely/domain/food/controller/FoodController.java
  • src/main/java/soon/fridgely/domain/food/controller/FoodControllerDocs.java
  • src/main/java/soon/fridgely/domain/food/dto/request/FoodCursorPageRequest.java
  • src/main/java/soon/fridgely/domain/food/service/FoodService.java
  • src/test/java/soon/fridgely/domain/food/controller/FoodControllerTest.java
  • src/test/java/soon/fridgely/domain/food/service/FoodServiceIntegrationTest.java
 _____________________________________________
< I'm not sure if this is a bug or a feature. >
 ---------------------------------------------
  \
   \   \
        \ /\
        ( )
      .( o ).
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/#235

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai

coderabbitai Bot commented May 23, 2026

Copy link
Copy Markdown

Caution

Failed to replace (edit) comment. This is likely due to insufficient permissions or the comment being deleted.

Error details
{"name":"HttpError","status":401,"request":{"method":"PATCH","url":"https://api.github.com/repos/Fridgely/Back-End/issues/comments/4524988697","headers":{"accept":"application/vnd.github.v3+json","user-agent":"octokit.js/0.0.0-development octokit-core.js/7.0.6 Node.js/24","authorization":"token [REDACTED]","content-type":"application/json; charset=utf-8"},"body":{"body":"<!-- This is an auto-generated comment: summarize by coderabbit.ai -->\nNo actionable comments were generated in the recent review. 🎉\n\n<details>\n<summary>ℹ️ Recent review info</summary>\n\n<details>\n<summary>⚙️ Run configuration</summary>\n\n**Configuration used**: Path: .coderabbit.yaml\n\n**Review profile**: CHILL\n\n**Plan**: Pro\n\n**Run ID**: `077c20ae-d4af-403f-aa6d-13c6d5945226`\n\n</details>\n\n<details>\n<summary>📥 Commits</summary>\n\nReviewing files that changed from the base of the PR and between 9041dd4d202c9caa2a5cfd1abf7f19cefc2ab91f and 0cdd730712de90b0c733557539fc6a88e6b6ad2f.\n\n</details>\n\n<details>\n<summary>📒 Files selected for processing (6)</summary>\n\n* `src/main/java/soon/fridgely/domain/food/controller/FoodController.java`\n* `src/main/java/soon/fridgely/domain/food/controller/FoodControllerDocs.java`\n* `src/main/java/soon/fridgely/domain/food/dto/request/FoodCursorPageRequest.java`\n* `src/main/java/soon/fridgely/domain/food/service/FoodService.java`\n* `src/test/java/soon/fridgely/domain/food/controller/FoodControllerTest.java`\n* `src/test/java/soon/fridgely/domain/food/service/FoodServiceIntegrationTest.java`\n\n</details>\n\n<details>\n<summary>💤 Files with no reviewable changes (1)</summary>\n\n* src/main/java/soon/fridgely/domain/food/dto/request/FoodCursorPageRequest.java\n\n</details>\n\n</details>\n\n---\n<!-- walkthrough_start -->\n\n<details>\n<summary>📝 Walkthrough</summary>\n\n## Walkthrough\n\nFoodCursorPageRequest 레코드 타입을 제거하고, FoodController에서 개별 `@RequestParam으로` 받은 후 제네릭 CursorPageRequest<FoodSortType>을 생성하여 분리된 storageType과 함께 FoodService에 전달하도록 리팩토링했습니다. 컨트롤러, 문서, 서비스, 테스트가 일관되게 업데이트되었습니다.\n\n## Changes\n\n**Cursor pagination request type refactoring**\n\n|Layer / File(s)|Summary|\n|---|---|\n|**Controller parameter binding refactoring** <br> `src/main/java/soon/fridgely/domain/food/controller/FoodController.java`|FoodController.findAllFoods가 `@ModelAttribute` FoodCursorPageRequest 대신 cursorId, size, sortBy, storageType을 `@RequestParam으로` 받고, 내부에서 CursorPageRequest<>(cursorId, size, sortBy)를 생성하여 서비스에 전달합니다. 관련 임포트가 정리되었습니다.|\n|**API documentation update** <br> `src/main/java/soon/fridgely/domain/food/controller/FoodControllerDocs.java`|FoodControllerDocs의 findAllFoods 문서가 `@ModelAttribute` FoodCursorPageRequest 대신 cursorId, size, sortBy, storageType의 개별 파라미터로 업데이트되었습니다.|\n|**Service signature and default sort handling** <br> `src/main/java/soon/fridgely/domain/food/service/FoodService.java`|FoodService.findAllFoods 메서드가 CursorPageRequest<FoodSortType> request와 StorageType storageType을 받도록 변경되었으며, 정렬값이 null일 때 FoodSortType.EXPIRATION으로 기본화하는 로직이 추가되었습니다.|\n|**Controller test updates** <br> `src/test/java/soon/fridgely/domain/food/controller/FoodControllerTest.java`|식품 목록, 정렬, 저장 위치 필터링 테스트에서 요청 타입을 CursorPageRequest<FoodSortType>으로 변경하고, ArgumentCaptor 제네릭 타입을 업데이트했습니다.|\n|**Service integration test updates** <br> `src/test/java/soon/fridgely/domain/food/service/FoodServiceIntegrationTest.java`|저장 위치 필터링 테스트에서 요청 타입을 CursorPageRequest<FoodSortType>으로 변경하고, findAllFoods 호출에 StorageType.REFRIGERATION을 별도 인자로 전달하도록 수정했습니다.|\n\n## Estimated code review effort\n\n🎯 2 (Simple) | ⏱️ ~12 minutes\n\n## Possibly related issues\n\n- [`#235`](https://github.com/Fridgely/Back-End/issues/235): 이 PR의 변경 사항들(FoodCursorPageRequest를 CursorPageRequest<FoodSortType>으로 대체, FoodCursorPageRequest 레코드 제거, FoodController.findAllFoods에서 storageType을 `@RequestParam으로` 분리, FoodService.findAllFoods 시그니처 및 테스트 업데이트)이 해당 이슈에서 설명된 리팩토링 단계를 직접 구현합니다.\n\n## Possibly related PRs\n\n- [Fridgely/Back-End#121](https://github.com/Fridgely/Back-End/pull/121): 메인 PR이 FoodController/FoodService에서 식품 목록 조회 시 storageType을 분리 전달하는 구조로 변경하는데, `#121에서도` FoodRepository 계열의 검색 로직에 storageType 필터링을 추가하면서 조회 경로에 storageType을 전달하는 코드 레벨 수정이 연결됩니다.\n\n- [Fridgely/Back-End#119](https://github.com/Fridgely/Back-End/pull/119): 메인 PR이 FoodCursorPageRequest를 제거하고 `@RequestParam에서` CursorPageRequest<FoodSortType>을 생성하도록 리팩토링하는 반면, `#119는` FoodCursorPageRequest를 도입하고 FoodControllerDocs에서 `@ModelAttribute로` 사용하도록 업데이트하였으므로, 같은 페이징/정렬 API 인터페이스를 다루면서 반대 방향으로 움직입니다.\n\n## Poem\n\n> 커서를 따라 페이징 흐름,\n> 개별 요청으로 받아 빌드하고,\n> 기본값 주며 정렬을 정리하네. 🐰\n> DTO는 걷어내고 제네릭을 세워,\n> 테스트까지 모두 함께 춤을 춘다! 💃\n\n</details>\n\n<!-- walkthrough_end -->\n<!-- pre_merge_checks_walkthrough_start -->\n\n<details>\n<summary>🚥 Pre-merge checks | ✅ 4 | ❌ 1</summary>\n\n### ❌ Failed checks (1 warning)\n\n|     Check name     | Status     | Explanation                                                                          | Resolution                                                                         |\n| :----------------: | :--------- | :----------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------- |\n| Docstring Coverage | ⚠️ Warning | Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. | Write docstrings for the functions missing them to satisfy the coverage threshold. |\n\n<details>\n<summary>✅ Passed checks (4 passed)</summary>\n\n|         Check name         | Status   | Explanation                                                              |\n| :------------------------: | :------- | :----------------------------------------------------------------------- |\n|      Description Check     | ✅ Passed | Check skipped - CodeRabbit’s high-level summary is enabled.              |\n|         Title check        | ✅ Passed | PR 제목은 FoodCursorPageRequest 제거라는 주요 변경 사항을 명확하게 요약하고 있습니다.              |\n|     Linked Issues check    | ✅ Passed | Check skipped because no linked issues were found for this pull request. |\n| Out of Scope Changes check | ✅ Passed | Check skipped because no linked issues were found for this pull request. |\n\n</details>\n\n<sub>✏️ Tip: You can configure your own custom pre-merge checks in the settings.</sub>\n\n</details>\n\n<!-- pre_merge_checks_walkthrough_end -->\n<!-- finishing_touch_checkbox_start -->\n\n<details>\n<summary>✨ Finishing Touches</summary>\n\n<details>\n<summary>📝 Generate docstrings</summary>\n\n- [ ] <!-- {\"checkboxId\": \"7962f53c-55bc-4827-bfbf-6a18da830691\"} --> Create stacked PR\n- [ ] <!-- {\"checkboxId\": \"3e1879ae-f29b-4d0d-8e06-d12b7ba33d98\"} --> Commit on current branch\n\n</details>\n<details>\n<summary>🧪 Generate unit tests (beta)</summary>\n\n- [ ] <!-- {\"checkboxId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\", \"radioGroupId\": \"utg-output-choice-group-unknown_comment_id\"} -->   Create PR with unit tests\n- [ ] <!-- {\"checkboxId\": \"6ba7b810-9dad-11d1-80b4-00c04fd430c8\", \"radioGroupId\": \"utg-output-choice-group-unknown_comment_id\"} -->   Commit unit tests in branch `refactor/#235`\n\n</details>\n\n</details>\n\n<!-- finishing_touch_checkbox_end -->\n<!-- tips_start -->\n\n---\n\nThanks for using [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=Fridgely/Back-End&utm_content=236)! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.\n\n<details>\n<summary>❤️ Share</summary>\n\n- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai)\n- [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai)\n- [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai)\n- [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)\n\n</details>\n\n\n<sub>Comment `@coderabbitai help` to get the list of available commands and usage tips.</sub>\n\n<!-- tips_end -->\n<!-- internal state start -->\n\n\n<!-- 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 -->\n\n<!-- internal state end -->"},"request":{"signal":{}}},"response":{"url":"https://api.github.com/repos/Fridgely/Back-End/issues/comments/4524988697","status":401,"headers":{"access-control-allow-origin":"*","access-control-expose-headers":"ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset","connection":"close","content-security-policy":"default-src 'none'","content-type":"application/json; charset=utf-8","date":"Sat, 23 May 2026 09:53:38 GMT","referrer-policy":"origin-when-cross-origin, strict-origin-when-cross-origin","server":"github.com","strict-transport-security":"max-age=31536000; includeSubdomains; preload","vary":"Accept-Encoding, Accept, X-Requested-With","x-content-type-options":"nosniff","x-frame-options":"deny","x-github-media-type":"github.v3; format=json","x-github-request-id":"3E4F:25724:1681517:56CDA3A:6A117921","x-xss-protection":"0"},"data":{"message":"Bad credentials","documentation_url":"https://docs.github.com/rest","status":"401"}}}

@jjh75607
jjh75607 merged commit bf0632d into dev May 23, 2026
2 checks passed
@jjh75607
jjh75607 deleted the refactor/#235 branch May 23, 2026 09:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Refactor: FoodCursorPageRequest 중복 제거

1 participant