FC-DEV-FinalProject / final-fe-team4

4조 프론트엔드 깃허브
0 stars 2 forks source link

[Feat] tts 새프로젝트 생성, 저장 버튼 클릭시 서버로 API통신 #172 #199

Closed dyeongg closed 1 week ago

dyeongg commented 1 week ago
스크린샷 2024-11-26 오후 8 04 51

Sourcery에 의한 요약

TTS 프로젝트 생성 및 저장을 위한 API 통신 구현, 일관된 API 처리를 위한 Axios 클라이언트 리팩토링, 탐색 및 초기 데이터 설정을 통한 프로젝트 생성 대화 상자 개선.

새로운 기능:

개선 사항:

Original summary in English ## Summary by Sourcery Implement API communication for TTS project creation and saving, refactor Axios client for consistent API handling, and enhance project creation dialog with navigation and initial data setup. New Features: - Implement API communication for creating and saving TTS projects, allowing users to save project data to the server. Enhancements: - Refactor Axios client to use a single Axios instance with request and response interceptors for consistent API communication.
sourcery-ai[bot] commented 1 week ago

리뷰어 가이드 by Sourcery

이 PR은 TTS 프로젝트 생성 및 저장 기능을 구현합니다. 변경 사항에는 TTS 프로젝트에 대한 상태 관리를 설정하고, 프로젝트 저장/로드를 위한 API 통신을 추가하며, 프로젝트 이름 편집을 구현하는 것이 포함됩니다. 구현은 상태 관리를 위해 React hooks (useState, useCallback, useEffect)를 사용하며, 나중에 Zustand로 리팩토링할 계획입니다.

TTS 프로젝트 저장 프로세스에 대한 시퀀스 다이어그램

sequenceDiagram
    actor User
    participant TTSPage
    participant API

    User->>TTSPage: '프로젝트 저장' 클릭
    TTSPage->>API: 프로젝트 데이터와 함께 POST /tts/save
    API-->>TTSPage: 성공 상태로 응답
    TTSPage-->>User: 저장 성공 메시지 표시

TTS 프로젝트 관리에 대한 업데이트된 클래스 다이어그램

classDiagram
    class TTSPage {
        +useState<TTSItem[]>(items)
        +useState<number | null>(projectId)
        +useState<TTSSaveDto>(projectData)
        +fetchTTSState(id: number)
        +handleSaveProject()
        +handleProjectNameChange(newName: string)
    }

    class TTSSaveDto {
        number projectId
        string projectName
        number voiceStyleId
        string fullScript
        float globalSpeed
        float globalPitch
        float globalVolume
        TTSDetailDto[] ttsDetails
    }

    class TTSProject {
        number id
        string projectName
        string apiStatus
        string fullScript
        float globalPitch
        float globalSpeed
        float globalVolume
        number voiceStyleId
    }

    class TTSDetailDto {
        number id
        boolean isDeleted
        string unitScript
        float unitSpeed
        float unitVolume
        float unitPitch
    }

    TTSPage --> TTSSaveDto
    TTSSaveDto --> TTSDetailDto
    TTSSpecificResponse --> TTSProject
    TTSSpecificResponse --> TTSDetailDto

파일 수준 변경 사항

변경 사항 세부 사항 파일
TTS 프로젝트 상태 관리 및 API 통합 구현
  • ID, 이름 및 TTS 세부 정보를 포함한 프로젝트 데이터에 대한 상태 관리 추가
  • API 통신을 통한 프로젝트 저장 기능 구현
  • 기존 프로젝트 데이터를 가져오는 프로젝트 로드 기능 추가
  • TTS 프로젝트 작업을 위한 새로운 API 클라이언트 메서드 생성
src/pages/TTSPage.tsx
src/api/ttsApi.ts
src/api/aIParkAPI.ts
탐색 기능이 있는 프로젝트 생성 대화 상자 강화
  • 다양한 프로젝트 유형에 대한 경로 구성 추가
  • 초기 프로젝트 상태로 탐색 구현
  • 새 프로젝트 생성 핸들러 추가
src/components/custom/dialogs/CreateProjectDialog.tsx
axios 클라이언트 구성 리팩토링
  • 인스턴스 구성을 사용하도록 axios 클라이언트 변환
  • 요청 및 응답 인터셉터 추가
  • 오류 처리 및 응답 처리 개선
src/api/axios-client.ts
편집 기능이 있는 프로젝트 제목 구성 요소 업데이트
  • 프로젝트 이름 편집 기능 추가
  • 이름 변경 핸들러 구현
  • 구성 요소 props 인터페이스 업데이트
src/components/section/contents/project/ProjectTitle.tsx

관련 있을 수 있는 이슈


팁 및 명령어 #### 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 TTS project creation and saving functionality. The changes include setting up state management for TTS projects, adding API communication for saving/loading projects, and implementing project name editing. The implementation uses React hooks (useState, useCallback, useEffect) for state management with plans to refactor to Zustand later. #### Sequence diagram for TTS project save process ```mermaid sequenceDiagram actor User participant TTSPage participant API User->>TTSPage: Click 'Save Project' TTSPage->>API: POST /tts/save with project data API-->>TTSPage: Response with success status TTSPage-->>User: Display save success message ``` #### Updated class diagram for TTS project management ```mermaid classDiagram class TTSPage { +useState(items) +useState(projectId) +useState(projectData) +fetchTTSState(id: number) +handleSaveProject() +handleProjectNameChange(newName: string) } class TTSSaveDto { number projectId string projectName number voiceStyleId string fullScript float globalSpeed float globalPitch float globalVolume TTSDetailDto[] ttsDetails } class TTSProject { number id string projectName string apiStatus string fullScript float globalPitch float globalSpeed float globalVolume number voiceStyleId } class TTSDetailDto { number id boolean isDeleted string unitScript float unitSpeed float unitVolume float unitPitch } TTSPage --> TTSSaveDto TTSSaveDto --> TTSDetailDto TTSSpecificResponse --> TTSProject TTSSpecificResponse --> TTSDetailDto ``` ### File-Level Changes | Change | Details | Files | | ------ | ------- | ----- | | Implemented TTS project state management and API integration |
  • Added state management for project data including ID, name, and TTS details
  • Implemented project saving functionality with API communication
  • Added project loading functionality to fetch existing project data
  • Created new API client methods for TTS project operations
| `src/pages/TTSPage.tsx`
`src/api/ttsApi.ts`
`src/api/aIParkAPI.ts` | | Enhanced project creation dialog with navigation |
  • Added route configuration for different project types
  • Implemented navigation with initial project state
  • Added handler for new project creation
| `src/components/custom/dialogs/CreateProjectDialog.tsx` | | Refactored axios client configuration |
  • Converted axios client to use instance configuration
  • Added request and response interceptors
  • Improved error handling and response processing
| `src/api/axios-client.ts` | | Updated project title component with editing capabilities |
  • Added project name editing functionality
  • Implemented name change handler
  • Updated component props interface
| `src/components/section/contents/project/ProjectTitle.tsx` | ### Possibly linked issues - **#172**: PR implements API communication for save button, related to issue's TTS tab publishing. ---
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).
github-actions[bot] commented 1 week ago

Visit the preview URL for this PR (updated for commit 7378c03):

https://aipark-four-t--199-q3w3qi1c.web.app

(expires Fri, 29 Nov 2024 11:10:07 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: 0a4b3ef6ecc2c695a6a0d6ade46651e032870a9f