Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RANK 타입 대시보드 응답 타입 수정 #188

Open
eun-seong opened this issue Aug 27, 2024 · 2 comments
Open

RANK 타입 대시보드 응답 타입 수정 #188

eun-seong opened this issue Aug 27, 2024 · 2 comments
Assignees
Labels

Comments

@eun-seong
Copy link
Member

기능 설명

요구 사항

랭크 타입의 대시보드는 option이 list 형태로 존재하는데, converting을 string으로 하여 옵션 찾을 수 없다는 에러 발생

  • 질문별 답변 상세 보기 응답 로직 수정
  • 설문 상세 보기 응답 로직 수정

특이 사항

@eun-seong eun-seong self-assigned this Aug 27, 2024
@eun-seong
Copy link
Member Author

getAnswer().toString() 인 부분 모두 조사 필요

@eun-seong
Copy link
Member Author

@rlacksgus97
기존에는 질문 당 선택지가 1개라서 textvalue 필드가 각각 존재했는데, RANK 타입이 생기면서 리스트로 응답해야 하는 상황입니다.

  • 설문 상세 결과에서 "문항의 답변" SingleAnswerWithSurveyDetailDto
  • 문항 별 답변 SingleQuestionAndAnswer
    위 2가지 상황에서 value, text 필드 모두 수정이 필요합니다.

RANK의 경우엔 여러 개의 옵션을 한 번에 응답해야 하기 때문에 현재 이 두 필드를 삭제하고, 새로운 필드로 교체해야 할 것 같습니다.

예를 들어, OX인 경우

AS-IS

{
    "questionName": "",
    "value":  true,
    "text": "네",
    ...
}

TO-BE

{
    "questionName": "",
    "answer": { // 하나로 묶음
        "value": true,
        "text": "네",
        "optionName": "YES"
    }
}

RANK인 경우,

AS-IS

현재 대응 불가능 --> 에러 발생

{
    "questionName": "",
    "value":  true,
    "text": "네",
    ...
}

TO-BE

{
    "questionName": "",
    "answer": [
        {
            "value":"돈",
            "text": "돈",
            "optionName": "MONEY",
            "rank": 1,
        },
        {
            "value":"얼굴",
            "text": "얼굴",
            "optionName": "FACE",
            "rank": 4,
        },
        ...
}

생각나는 수정 방안은 아래와 같아요.

  1. Object 타입으로 선언해서 필요할 때 캐스팅하여 응답합니다.
    • 응답할 때만 캐스팅이 필요하기 때문에 구현은 간단할 수 있으나
    • 나중에 유지보수할 때 DashboardComponent처럼 될 가능성 농후함
  2. answer interface를 정의하고 QuestionType 에 따른 구체 클래스를 상속받아 정의합니다.
    • 코드 복잡도 올라갈 수 있으나
    • 유지보수면에서 유리할 듯.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant