FC-DEV-FinalProject / FinalProject_2VEN_FE

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

[Feat] 전략 상세 일간분석, 월간분석 조회 msw 적용 #203

Closed jizerozz closed 1 day ago

jizerozz commented 1 day ago

🚀 풀 리퀘스트 제안

📋 작업 내용

apiClient쪽 목데이터 사용 시 헤더에 useMock 넣는 부분 useMick으로 오타있어서 수정했습니다. 일간분석 CRUD를 하려고 했는데 일간분석, 월간분석 테이블을 타입으로 나눠서 공통으로 쓰다보니 하나만 붙이면 에러가 나서 ^^ .. 일간분석, 월간분석 조회 msw를 미리 적용한 후에 나머지 수정, 삭제, 등록을 붙이는게 나을 것 같아 조회 msw 적용한 것 부터 우선 올립니다 실제 api 붙일 때 리팩토링,, 할 예정입니다.

🔧 변경 사항

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

📸 스크린샷 (선택 사항)

Nov-25-2024 00-05-33

📄 기타

추가적으로 전달하고 싶은 내용이나 특별한 요구 사항이 있으면 작성해 주세요.

Sourcery에 의한 요약

일일 및 월간 분석 데이터 검색을 위한 모의 서비스 워커(MSW) 도입, apiClient 헤더의 오타 수정, 페이지네이션 지원으로 분석 구성 요소 강화.

새로운 기능:

버그 수정:

개선 사항:

Original summary in English ## Summary by Sourcery Introduce mock service worker (MSW) for daily and monthly analysis data retrieval, correct a typo in apiClient headers, and enhance the analysis components with pagination support. New Features: - Implement mock service worker (MSW) for fetching daily and monthly analysis data. Bug Fixes: - Correct a typo in the apiClient header from 'useMick' to 'useMock'. Enhancements: - Refactor the AnalysisTable component to handle both daily and monthly data with pagination support. - Add pagination to the DailyAnalysis and MonthlyAnalysis components to handle large datasets efficiently.
sourcery-ai[bot] commented 1 day ago

리뷰어 가이드 by Sourcery

이 PR은 전략 세부 페이지에서 일일 및 월간 분석 데이터 가져오기를 위한 MSW(Mock Service Worker)를 구현합니다. 구현에는 페이지네이션 지원이 포함되며, 분석 테이블 컴포넌트를 일일 및 월간 데이터 형식을 모두 처리할 수 있도록 리팩토링합니다. 변경 사항에는 API 클라이언트의 모의 헤더 구성에서 오타를 수정하는 것도 포함됩니다.

일일 분석 데이터 가져오기 시퀀스 다이어그램

sequenceDiagram
    actor User
    participant StrategyDetailPage
    participant apiClient
    participant MSW

    User->>StrategyDetailPage: Request Daily Analysis
    StrategyDetailPage->>apiClient: fetchDailyAnalysis(strategyId, page, pageSize)
    apiClient->>MSW: GET /api/strategies/:strategyId/daily-analyses
    MSW-->>apiClient: Mocked Daily Analysis Data
    apiClient-->>StrategyDetailPage: Return Data
    StrategyDetailPage-->>User: Display Data

월간 분석 데이터 가져오기 시퀀스 다이어그램

sequenceDiagram
    actor User
    participant StrategyDetailPage
    participant apiClient
    participant MSW

    User->>StrategyDetailPage: Request Monthly Analysis
    StrategyDetailPage->>apiClient: fetchMonthlyAnalysis(strategyId, page, pageSize)
    apiClient->>MSW: GET /api/strategies/:strategyId/monthly-analysis
    MSW-->>apiClient: Mocked Monthly Analysis Data
    apiClient-->>StrategyDetailPage: Return Data
    StrategyDetailPage-->>User: Display Data

분석 데이터 리팩토링 클래스 다이어그램

classDiagram
    class AnalysisDataProps {
        +int daily_strategic_statistics_id
        +string input_date
        +int principal
        +int dep_wd_price
        +int daily_profit_loss
        +float daily_pl_rate
        +int cumulative_profit_loss
        +float cumulative_profit_loss_rate
    }

    class MonthlyDataProps {
        +int strategyMonthlyDataId
        +string analysisMonth
        +int monthlyAveragePrinciple
        +int monthlyDepWdAmount
        +int monthlyPl
        +float monthlyReturn
        +int monthlyCumulativePl
        +float monthlyCumulativeReturn
    }

    class AnalysisTable {
        +AnalysisAttribuesProps[] attributes
        +int strategyId
        +AnalysisDataProps[] | MonthlyDataProps[] analysis
        +string mode
        +void onUpload()
    }

    AnalysisTable --> AnalysisDataProps
    AnalysisTable --> MonthlyDataProps

파일 수준 변경 사항

변경 사항 세부 사항 파일
일일 및 월간 분석 데이터에 대한 MSW 핸들러 구현
  • 일일 및 월간 분석을 위한 모의 데이터 구조 생성
  • 모의 핸들러에 페이지네이션 지원 추가
  • API 구조에 맞춘 응답 포맷 구현
src/mocks/handlers/dailyAnalysis.handlers.ts
src/mocks/handlers/monthlyAnalysis.handlers.ts
src/mocks/handlers/index.ts
분석 테이블 컴포넌트를 일일 및 월간 데이터 형식을 모두 지원하도록 리팩토링
  • 분석 데이터 유형에 대한 새로운 인터페이스 추가
  • 다양한 모드에 대한 데이터 변환 로직 구현
  • 두 데이터 형식을 처리할 수 있도록 테이블 렌더링 업데이트
  • 페이지네이션 UI 컴포넌트 추가
src/components/page/strategy-detail/table/AnalysisTable.tsx
src/components/page/strategy-detail/tabmenu/DailyAnalysis.tsx
src/components/page/strategy-detail/tabmenu/MonthlyAnalysis.tsx
분석 데이터 가져오기를 위한 API 엔드포인트 추가
  • 일일 분석 가져오기 함수 구현
  • 월간 분석 가져오기 함수 구현
  • 적절한 오류 처리 추가
src/api/strategyDetail.ts
API 클라이언트 모의 헤더 구성 수정
  • 헤더 검사에서 'useMick' 오타를 'useMock'으로 수정
src/api/apiClient.ts

관련 있을 수 있는 이슈


팁 및 명령어 #### 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 MSW (Mock Service Worker) for daily and monthly analysis data fetching in the strategy detail page. The implementation includes pagination support and refactors the analysis table component to handle both daily and monthly data formats. The changes also fix a typo in the API client's mock header configuration. #### Sequence diagram for Fetching Daily Analysis Data ```mermaid sequenceDiagram actor User participant StrategyDetailPage participant apiClient participant MSW User->>StrategyDetailPage: Request Daily Analysis StrategyDetailPage->>apiClient: fetchDailyAnalysis(strategyId, page, pageSize) apiClient->>MSW: GET /api/strategies/:strategyId/daily-analyses MSW-->>apiClient: Mocked Daily Analysis Data apiClient-->>StrategyDetailPage: Return Data StrategyDetailPage-->>User: Display Data ``` #### Sequence diagram for Fetching Monthly Analysis Data ```mermaid sequenceDiagram actor User participant StrategyDetailPage participant apiClient participant MSW User->>StrategyDetailPage: Request Monthly Analysis StrategyDetailPage->>apiClient: fetchMonthlyAnalysis(strategyId, page, pageSize) apiClient->>MSW: GET /api/strategies/:strategyId/monthly-analysis MSW-->>apiClient: Mocked Monthly Analysis Data apiClient-->>StrategyDetailPage: Return Data StrategyDetailPage-->>User: Display Data ``` #### Class diagram for Analysis Data Refactoring ```mermaid classDiagram class AnalysisDataProps { +int daily_strategic_statistics_id +string input_date +int principal +int dep_wd_price +int daily_profit_loss +float daily_pl_rate +int cumulative_profit_loss +float cumulative_profit_loss_rate } class MonthlyDataProps { +int strategyMonthlyDataId +string analysisMonth +int monthlyAveragePrinciple +int monthlyDepWdAmount +int monthlyPl +float monthlyReturn +int monthlyCumulativePl +float monthlyCumulativeReturn } class AnalysisTable { +AnalysisAttribuesProps[] attributes +int strategyId +AnalysisDataProps[] | MonthlyDataProps[] analysis +string mode +void onUpload() } AnalysisTable --> AnalysisDataProps AnalysisTable --> MonthlyDataProps ``` ### File-Level Changes | Change | Details | Files | | ------ | ------- | ----- | | Implemented MSW handlers for daily and monthly analysis data |
  • Created mock data structures for daily and monthly analysis
  • Added pagination support in mock handlers
  • Implemented response formatting matching API structure
| `src/mocks/handlers/dailyAnalysis.handlers.ts`
`src/mocks/handlers/monthlyAnalysis.handlers.ts`
`src/mocks/handlers/index.ts` | | Refactored analysis table components to support both daily and monthly data formats |
  • Added new interfaces for analysis data types
  • Implemented data transformation logic for different modes
  • Updated table rendering to handle both data formats
  • Added pagination UI components
| `src/components/page/strategy-detail/table/AnalysisTable.tsx`
`src/components/page/strategy-detail/tabmenu/DailyAnalysis.tsx`
`src/components/page/strategy-detail/tabmenu/MonthlyAnalysis.tsx` | | Added API endpoints for fetching analysis data |
  • Implemented daily analysis fetch function
  • Implemented monthly analysis fetch function
  • Added proper error handling
| `src/api/strategyDetail.ts` | | Fixed API client mock header configuration |
  • Corrected 'useMick' typo to 'useMock' in header check
| `src/api/apiClient.ts` | ### Possibly linked issues - **#1**: PR applies msw for both daily and monthly analysis, aligning with issue's daily analysis focus. ---
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 1 day ago

Deploy Preview for sysmetics ready!

Name Link
Latest commit 50a0cbe9c0f333328b6b535b0bdf84b2f66e72ae
Latest deploy log https://app.netlify.com/sites/sysmetics/deploys/67435a5c17e7a60008099868
Deploy Preview https://deploy-preview-203--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.