FC-DEV-FinalProject / FinalProject_2VEN_FE

데브코스 파이널프로젝트 시스메틱 2조 이븐한조 FE 리포지토리
0 stars 1 forks source link

[Feat] 전략 등록 API 연동 #169

Closed ssuminii closed 2 days ago

ssuminii commented 2 days ago

🚀 풀 리퀘스트 제안

closes #44

📋 작업 내용

🔧 변경 사항

주요 변경 사항을 요약해 주세요.

📸 스크린샷 (선택 사항)

Nov-20-2024 20-49-52

📄 기타

Sourcery에 의한 요약

전략 등록 API를 통합하고 코드베이스를 리팩토링하여 데이터 관리를 개선하기 위해 react-query를 활용합니다. 디버깅 기능을 향상시키기 위해 React Query Devtools를 추가합니다.

새로운 기능:

개선 사항:

빌드:

Original summary in English ## Summary by Sourcery Integrate the strategy registration API and refactor the codebase to utilize react-query for improved data management. Add React Query Devtools for enhanced debugging capabilities. New Features: - Integrate strategy registration API with the application, allowing users to register strategies through the UI. Enhancements: - Refactor code to use react-query for data fetching and mutations, improving data handling and state management. Build: - Add React Query Devtools to the project for better debugging and monitoring of query states.
sourcery-ai[bot] commented 2 days ago

리뷰어 가이드 by Sourcery

이 PR은 더 나은 데이터 관리를 위해 react-query를 사용하여 전략 등록 API 통합을 구현합니다. 변경 사항에는 API 호출 리팩토링, 데이터 가져오기 및 변이를 위한 커스텀 훅 구현, 더 나은 타입 안전성을 위한 TypeScript 인터페이스 추가가 포함됩니다.

전략 등록 API 통합을 위한 시퀀스 다이어그램

sequenceDiagram
    actor User
    participant StrategyCreateForm
    participant useSubmitStrategyCreate
    participant apiClient
    User->>StrategyCreateForm: 전략 폼 제출
    StrategyCreateForm->>useSubmitStrategyCreate: submitStrategy 호출
    useSubmitStrategyCreate->>apiClient: POST /api/strategies
    apiClient-->>useSubmitStrategyCreate: 응답
    useSubmitStrategyCreate-->>StrategyCreateForm: 성공/오류
    StrategyCreateForm-->>User: 성공/오류 메시지 표시

전략 폼 타입에 대한 업데이트된 클래스 다이어그램

classDiagram
    class StrategyPayload {
        +string strategyTitle
        +number tradingTypeId
        +number tradingCycleId
        +string minInvestmentAmount
        +string strategyOverview
        +string isPosted
        +number[] investmentAssetClassesIdList
    }
    class StrategyData {
        +Option[] cycles
        +Option[] operations
        +Option[] products
    }
    class SubmitStrategyResponse {
        +string msg
        +number id
    }

파일 수준 변경 사항

변경 사항 세부 사항 파일
전략 등록을 위한 API 클라이언트 구현 리팩토링
  • 직접적인 axios 호출을 중앙 집중화된 apiClient로 대체
  • API 엔드포인트 상수 추가
  • 오류 처리 및 응답 데이터 구조 개선
src/api/strategyCreate.ts
src/api/apiEndpoints.ts
데이터 관리를 위한 react-query 훅 구현
  • 전략 옵션을 가져오기 위한 커스텀 쿼리 훅 생성
  • 전략 제출을 위한 변이 훅 추가
  • 적절한 캐시 무효화 구현
  • 성공 및 오류 처리 추가
src/hooks/queries/useFetchStrategyOptionData.ts
src/hooks/mutations/useSubmitStrategyCreate.ts
TypeScript 인터페이스로 타입 안전성 강화
  • 전략 데이터에 대한 인터페이스 추가
  • API 페이로드 및 응답에 대한 타입 생성
  • 타입을 전용 파일로 분리
src/types/strategyForm.ts
새로운 react-query 구현을 사용하도록 폼 컴포넌트 업데이트
  • 직접적인 API 호출을 변이 훅으로 대체
  • 폼 제출 로직 단순화
  • 로딩 상태 처리 추가
src/components/page/strategy-create/StrategyCreateForm.tsx
개발 도구 및 경로 업데이트 추가
  • ReactQueryDevtools 통합
  • 전략 관련 경로 재구성
src/App.tsx
src/route/Router.tsx

연결된 이슈에 대한 평가

이슈 목표 해결됨 설명
#44 전략 등록을 위한 유효한 데이터를 백엔드 API로 전송
#44 성공적인 등록 후 전략 세부 페이지로 이동
#44 등록 실패 시 오류 메시지 표시

잠재적으로 연결된 이슈


팁 및 명령어 #### Sourcery와 상호작용하기 - **새로운 리뷰 트리거:** 풀 리퀘스트에 `@sourcery-ai review`라고 댓글을 남깁니다. - **토론 계속하기:** Sourcery의 리뷰 댓글에 직접 답글을 답니다. - **리뷰 댓글에서 GitHub 이슈 생성:** 리뷰 댓글에서 Sourcery에게 이슈 생성을 요청합니다. - **풀 리퀘스트 제목 생성:** 풀 리퀘스트 제목 어디에나 `@sourcery-ai`를 작성하여 언제든지 제목을 생성합니다. - **풀 리퀘스트 요약 생성:** 풀 리퀘스트 본문 어디에나 `@sourcery-ai summary`를 작성하여 언제든지 PR 요약을 생성합니다. 이 명령어를 사용하여 요약이 삽입될 위치를 지정할 수도 있습니다. #### 경험 맞춤화 [대시보드](https://app.sourcery.ai)에 접속하여: - Sourcery가 생성한 풀 리퀘스트 요약, 리뷰어 가이드 등과 같은 리뷰 기능을 활성화하거나 비활성화합니다. - 리뷰 언어를 변경합니다. - 사용자 정의 리뷰 지침을 추가, 제거 또는 편집합니다. - 기타 리뷰 설정을 조정합니다. #### 도움 받기 - 질문이나 피드백이 있는 경우 [지원 팀에 문의](mailto:support@sourcery.ai)하세요. - 자세한 가이드와 정보를 보려면 [문서](https://docs.sourcery.ai)를 방문하세요. - [X/Twitter](https://x.com/SourceryAI), [LinkedIn](https://www.linkedin.com/company/sourcery-ai/) 또는 [GitHub](https://github.com/sourcery-ai)에서 Sourcery 팀을 팔로우하여 소식을 받아보세요.
Original review guide in English ## Reviewer's Guide by Sourcery This PR implements the strategy registration API integration using react-query for better data management. The changes include refactoring API calls, implementing custom hooks for data fetching and mutations, and adding TypeScript interfaces for better type safety. #### Sequence diagram for strategy registration API integration ```mermaid sequenceDiagram actor User participant StrategyCreateForm participant useSubmitStrategyCreate participant apiClient User->>StrategyCreateForm: Submit strategy form StrategyCreateForm->>useSubmitStrategyCreate: Call submitStrategy useSubmitStrategyCreate->>apiClient: POST /api/strategies apiClient-->>useSubmitStrategyCreate: Response useSubmitStrategyCreate-->>StrategyCreateForm: Success/Error StrategyCreateForm-->>User: Show success/error message ``` #### Updated class diagram for strategy form types ```mermaid classDiagram class StrategyPayload { +string strategyTitle +number tradingTypeId +number tradingCycleId +string minInvestmentAmount +string strategyOverview +string isPosted +number[] investmentAssetClassesIdList } class StrategyData { +Option[] cycles +Option[] operations +Option[] products } class SubmitStrategyResponse { +string msg +number id } ``` ### File-Level Changes | Change | Details | Files | | ------ | ------- | ----- | | Refactored API client implementation for strategy registration |
  • Replaced direct axios calls with centralized apiClient
  • Added API endpoints constants
  • Improved error handling and response data structure
| `src/api/strategyCreate.ts`
`src/api/apiEndpoints.ts` | | Implemented react-query hooks for data management |
  • Created custom query hook for fetching strategy options
  • Added mutation hook for strategy submission
  • Implemented proper cache invalidation
  • Added success and error handling
| `src/hooks/queries/useFetchStrategyOptionData.ts`
`src/hooks/mutations/useSubmitStrategyCreate.ts` | | Enhanced type safety with TypeScript interfaces |
  • Added interfaces for strategy data
  • Created types for API payload and response
  • Separated types into dedicated file
| `src/types/strategyForm.ts` | | Updated form component to use new react-query implementation |
  • Replaced direct API calls with mutation hook
  • Simplified form submission logic
  • Added loading state handling
| `src/components/page/strategy-create/StrategyCreateForm.tsx` | | Added development tools and route updates |
  • Integrated ReactQueryDevtools
  • Reorganized strategy-related routes
| `src/App.tsx`
`src/route/Router.tsx` | ### Assessment against linked issues | Issue | Objective | Addressed | Explanation | | ------ | ------- | ----- | ----- | | #44 | Send valid data to backend API for strategy registration | ✅ | | | #44 | Navigate to strategy detail page upon successful registration | ✅ | | | #44 | Display error message on registration failure | ✅ | | ### Possibly linked issues - **#44**: PR implements strategy registration API integration, directly addressing the issue requirements. ---
Tips and commands #### Interacting with Sourcery - **Trigger a new review:** Comment `@sourcery-ai review` on the pull request. - **Continue discussions:** Reply directly to Sourcery's review comments. - **Generate a GitHub issue from a review comment:** Ask Sourcery to create an issue from a review comment by replying to it. - **Generate a pull request title:** Write `@sourcery-ai` anywhere in the pull request title to generate a title at any time. - **Generate a pull request summary:** Write `@sourcery-ai summary` anywhere in the pull request body to generate a PR summary at any time. You can also use this command to specify where the summary should be inserted. #### Customizing Your Experience Access your [dashboard](https://app.sourcery.ai) to: - Enable or disable review features such as the Sourcery-generated pull request summary, the reviewer's guide, and others. - Change the review language. - Add, remove or edit custom review instructions. - Adjust other review settings. #### Getting Help - [Contact our support team](mailto:support@sourcery.ai) for questions or feedback. - Visit our [documentation](https://docs.sourcery.ai) for detailed guides and information. - Keep in touch with the Sourcery team by following us on [X/Twitter](https://x.com/SourceryAI), [LinkedIn](https://www.linkedin.com/company/sourcery-ai/) or [GitHub](https://github.com/sourcery-ai).
netlify[bot] commented 2 days ago

Deploy Preview for sysmetics ready!

Name Link
Latest commit 0706ec323f3b2b29d6afae2770495ea85a749d06
Latest deploy log https://app.netlify.com/sites/sysmetics/deploys/673dcfd25fc72e00085521c5
Deploy Preview https://deploy-preview-169--sysmetics.netlify.app
Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.