From cc4b641c1829bb73efdfcbea20df00d6cdd82b67 Mon Sep 17 00:00:00 2001 From: JURI <80569323+juri123123@users.noreply.github.com> Date: Sat, 14 Mar 2026 02:40:51 +0900 Subject: [PATCH 1/4] =?UTF-8?q?style:=20#409=20=EA=B8=B0=ED=83=80=20UI=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=EC=82=AC=ED=95=AD=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Presentation/Enum/QuestType+Presentation.swift | 9 --------- .../Feature/Information/View/Loading/LoadingView.swift | 2 +- .../Information/View/Quest/QuestCardsView.swift | 10 +++++----- .../Feature/MyPage/View/JourneyListView.swift | 2 +- 4 files changed, 7 insertions(+), 16 deletions(-) diff --git a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Enum/QuestType+Presentation.swift b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Enum/QuestType+Presentation.swift index bbd8daac..97dd61cf 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Enum/QuestType+Presentation.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Enum/QuestType+Presentation.swift @@ -8,15 +8,6 @@ import Foundation extension QuestType { - var title: String { - switch self { - case .question: - "질문형" - case .activation: - "행동형" - } - } - var plaeholder: String { switch self { case .question: diff --git a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Information/View/Loading/LoadingView.swift b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Information/View/Loading/LoadingView.swift index 899e751c..2034c76e 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Information/View/Loading/LoadingView.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Information/View/Loading/LoadingView.swift @@ -48,7 +48,7 @@ final class LoadingView: BaseView { textAlignment: .center, numberOfLines: 2 ) - $0.attributedText = "\(nickname)님에게 꼭 맞는\n이별 극복 여정을 찾는 중 ..." + $0.attributedText = "\(nickname)님에게 꼭 맞는\n극복 여정을 찾는 중 ..." .makeTitle( rangedText: nickname, font: FontManager.body1Sb16.font, diff --git a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Information/View/Quest/QuestCardsView.swift b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Information/View/Quest/QuestCardsView.swift index cc00c1a8..6b565e34 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Information/View/Quest/QuestCardsView.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Information/View/Quest/QuestCardsView.swift @@ -13,15 +13,15 @@ import Then final class QuestCardsView: BaseView { private(set) var questCards = [ - QuestCardView( - title: "재회 준비", - subTitle: "X와의 재회를 위해\n나를 먼저 돌아보고\n상대를 이해해요", - image: .reunion - ), QuestCardView( title: "이별 극복", subTitle: "질문과 미션을 통해\n나만의 삶을\n회복해 나가요", image: .overcomingBreakup + ), + QuestCardView( + title: "재회 준비", + subTitle: "X와의 재회를 위해\n나를 먼저 돌아보고\n상대를 이해해요", + image: .reunion ) ] diff --git a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/MyPage/View/JourneyListView.swift b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/MyPage/View/JourneyListView.swift index 2c6f9430..8444b34f 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/MyPage/View/JourneyListView.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/MyPage/View/JourneyListView.swift @@ -165,7 +165,7 @@ extension JourneyListView { journeyList.forEach { journey in let journeyView = OneLineTextBoxView( title: journey.title + " 여정", - tagTitle: journey.questType?.title, + tagTitle: journey.style?.title, tagType: isFinished ? .word3Gray : .word3Purple, isHighlighted: !isFinished ) From a23a6f1604514699c669bc6b8923a7201c167a63 Mon Sep 17 00:00:00 2001 From: JURI <80569323+juri123123@users.noreply.github.com> Date: Sat, 14 Mar 2026 03:01:06 +0900 Subject: [PATCH 2/4] =?UTF-8?q?fix:=20#409=20JourneyEntity=EC=97=90=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=ED=95=98=EC=A7=80=20=EC=95=8A=EB=8A=94=20?= =?UTF-8?q?=EC=86=8D=EC=84=B1=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ByeBoo-iOS/Data/Enum/JourneyType+Data.swift | 17 ++++++++++++++--- .../Data/Model/LookBackJourneyResponseDTO.swift | 3 +-- .../Data/Model/UserJourneyResponseDTO.swift | 3 +-- .../Data/Network/EndPoint/QuestAPI.swift | 2 +- .../Domain/Entity/JourneyEntity.swift | 3 +-- 5 files changed, 18 insertions(+), 10 deletions(-) diff --git a/ByeBoo-iOS/ByeBoo-iOS/Data/Enum/JourneyType+Data.swift b/ByeBoo-iOS/ByeBoo-iOS/Data/Enum/JourneyType+Data.swift index 849a4ace..17923526 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Data/Enum/JourneyType+Data.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Data/Enum/JourneyType+Data.swift @@ -6,7 +6,18 @@ // extension JourneyType { - var key: String { + var responseKey: String { + switch self { + case .recording: + "RECORDING" + case .active: + "ACTIVE" + case .reunion: + "REUNION" + } + } + + var requestKey: String { switch self { case .recording: "FACE_EMOTION" @@ -17,7 +28,7 @@ extension JourneyType { } } - static func keyToEnum(_ key: String) -> Self? { - return Self.allCases.first { $0.key == key } + static func responseKeyToEnum(_ key: String) -> Self? { + return Self.allCases.first { $0.responseKey == key } } } diff --git a/ByeBoo-iOS/ByeBoo-iOS/Data/Model/LookBackJourneyResponseDTO.swift b/ByeBoo-iOS/ByeBoo-iOS/Data/Model/LookBackJourneyResponseDTO.swift index c29c17fb..1b2544e0 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Data/Model/LookBackJourneyResponseDTO.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Data/Model/LookBackJourneyResponseDTO.swift @@ -33,8 +33,7 @@ extension JourneyTypeData { .init( title: self.journey, description: nil, - style: JourneyType.keyToEnum(self.style), - questType: QuestType.keyToEnum(self.style) + style: JourneyType.responseKeyToEnum(self.style) ) } } diff --git a/ByeBoo-iOS/ByeBoo-iOS/Data/Model/UserJourneyResponseDTO.swift b/ByeBoo-iOS/ByeBoo-iOS/Data/Model/UserJourneyResponseDTO.swift index 191f31ab..428dde36 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Data/Model/UserJourneyResponseDTO.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Data/Model/UserJourneyResponseDTO.swift @@ -15,8 +15,7 @@ extension UserJourneyResponseDTO { return .init( title: self.journey, description: self.description, - style: nil, - questType: nil + style: nil ) } } diff --git a/ByeBoo-iOS/ByeBoo-iOS/Data/Network/EndPoint/QuestAPI.swift b/ByeBoo-iOS/ByeBoo-iOS/Data/Network/EndPoint/QuestAPI.swift index db60b2c7..4a667a98 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Data/Network/EndPoint/QuestAPI.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Data/Network/EndPoint/QuestAPI.swift @@ -87,7 +87,7 @@ extension QuestAPI: EndPoint { var queryParameters: [String : String]? { switch self { case .postJourney(let journey), .completedQuests(let journey): - return ["journey": journey.key] + return ["journey": journey.requestKey] default: return nil } diff --git a/ByeBoo-iOS/ByeBoo-iOS/Domain/Entity/JourneyEntity.swift b/ByeBoo-iOS/ByeBoo-iOS/Domain/Entity/JourneyEntity.swift index 3d71482f..dfa50039 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Domain/Entity/JourneyEntity.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Domain/Entity/JourneyEntity.swift @@ -11,11 +11,10 @@ struct JourneyEntity { let title: String let description: String? let style: JourneyType? - let questType: QuestType? } extension JourneyEntity: Equatable { static func stub() -> Self { - return .init(title: "이별 극복", description: "설명", style: .recording, questType: .question) + return .init(title: "이별 극복", description: "설명", style: .recording) } } From b118344353f81675fe988c910caf98e486a422a7 Mon Sep 17 00:00:00 2001 From: JURI <80569323+juri123123@users.noreply.github.com> Date: Sat, 14 Mar 2026 03:01:17 +0900 Subject: [PATCH 3/4] =?UTF-8?q?chore:=20#409=20=EC=82=AC=EC=9A=A9=ED=95=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EB=8A=94=20=EB=B3=80=EC=88=98=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Data/Repository/UsersRepository.swift | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/ByeBoo-iOS/ByeBoo-iOS/Data/Repository/UsersRepository.swift b/ByeBoo-iOS/ByeBoo-iOS/Data/Repository/UsersRepository.swift index 707147a9..8d3e6a01 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Data/Repository/UsersRepository.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Data/Repository/UsersRepository.swift @@ -26,7 +26,6 @@ struct DefaultUsersRepository: UsersInterface { // MARK: Network func fetchJourney() async throws -> JourneyEntity { - let accessToken = loadAccessToken() let result = try await network.request( UsersAPI.journey, decodingType: UserJourneyResponseDTO.self @@ -39,7 +38,6 @@ struct DefaultUsersRepository: UsersInterface { name: String, questStyle: String ) async throws -> UserEntity { - let accessToken = loadAccessToken() let userRequestDTO: UserRequestDTO = .init( name: name, questStyle: questStyle @@ -62,7 +60,6 @@ struct DefaultUsersRepository: UsersInterface { } func fetchCharacterDialogue() async throws -> DialogueEntity { - let accessToken = loadAccessToken() let result = try await network.request( UsersAPI.character, decodingType: DialogueResponseDTO.self @@ -72,7 +69,6 @@ struct DefaultUsersRepository: UsersInterface { } func fetchQuestStatus() async throws -> UserQuestStatusEntity { - let accessToken = loadAccessToken() let result = try await network.request( UsersAPI.count, decodingType: UserQuestStatusResponseDTO.self @@ -82,7 +78,6 @@ struct DefaultUsersRepository: UsersInterface { } func startJourney() async throws { - let accessToken = loadAccessToken() try await network.request(UsersAPI.start) } @@ -109,7 +104,6 @@ struct DefaultUsersRepository: UsersInterface { } func modifyUserNickname(name: String) async throws -> String { - let accessToken = loadAccessToken() let result = try await network.request( UsersAPI.modifyName( requestDTO: UserNameRequestDTO( @@ -124,11 +118,10 @@ struct DefaultUsersRepository: UsersInterface { func getLastJourneyType() -> JourneyType { let journey: String? = userDefaultsService.load(key: .journey) - return JourneyType.keyToEnum(journey ?? "") ?? .recording + return JourneyType.responseKeyToEnum(journey ?? "") ?? .recording } func updateNotificationPermission() async throws -> Bool { - let accessToken = loadAccessToken() let result = try await network.request( UsersAPI.updateNotificationPermission, decodingType: AlarmEnabledResponseDTO.self @@ -151,7 +144,6 @@ struct DefaultUsersRepository: UsersInterface { } func fetchMyCommonQuestAnswers(cursor: Int?) async throws -> CommonQuestMyAnswersEntity { - let accessToken = loadAccessToken() let result = try await network.request( UsersAPI.fetchCommonQuestAnswers(cursor: cursor), decodingType: CommonQuestMyAnswersResponseDTO.self @@ -167,10 +159,6 @@ struct DefaultUsersRepository: UsersInterface { return alarmEnabled } } - - private func loadAccessToken() -> String { - keychainService.load(key: .accessToken) - } } final class MockUserRepository: UsersInterface { From 379e46f838bf4b061a6077d28005a2b1db293a05 Mon Sep 17 00:00:00 2001 From: JURI <80569323+juri123123@users.noreply.github.com> Date: Sat, 14 Mar 2026 03:12:30 +0900 Subject: [PATCH 4/4] =?UTF-8?q?fix:=20#409=20QA=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ByeBoo-iOS/Data/Model/QuestAnswerResponseDTO.swift | 5 ++--- .../ByeBoo-iOS/Presentation/Common/ByeBooButton.swift | 2 +- .../Feature/Quest/View/Archive/ArchiveQuestView.swift | 6 ++++++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ByeBoo-iOS/ByeBoo-iOS/Data/Model/QuestAnswerResponseDTO.swift b/ByeBoo-iOS/ByeBoo-iOS/Data/Model/QuestAnswerResponseDTO.swift index 62ffe9b8..0e3af29f 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Data/Model/QuestAnswerResponseDTO.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Data/Model/QuestAnswerResponseDTO.swift @@ -17,8 +17,7 @@ struct QuestAnswerResponseDTO: Decodable { let imageUrl: String? let imageKey: String? let emotionDescription: String - // TODO: API 변동되면 옵셔널 해제 - let aiAnswerExists: Bool? + let aiAnswerExists: Bool } extension QuestAnswerResponseDTO { @@ -33,7 +32,7 @@ extension QuestAnswerResponseDTO { imageUrl: imageUrl ?? "", imageKey: imageKey ?? "", emotionDescription: emotionDescription, - AIAnswerExists: aiAnswerExists ?? false + AIAnswerExists: aiAnswerExists ) } } diff --git a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Common/ByeBooButton.swift b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Common/ByeBooButton.swift index e48c69b3..a02291f9 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Common/ByeBooButton.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Common/ByeBooButton.swift @@ -116,6 +116,6 @@ final class ByeBooButton: UIButton { } func updateTitle(_ title: String) { - self.setTitle(titleText, for: .normal) + self.setTitle(title, for: .normal) } } diff --git a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/View/Archive/ArchiveQuestView.swift b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/View/Archive/ArchiveQuestView.swift index 0c65aeab..6cb58e64 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/View/Archive/ArchiveQuestView.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/View/Archive/ArchiveQuestView.swift @@ -130,6 +130,12 @@ final class ArchiveQuestView: BaseView { extension ArchiveQuestView { func updateUI(_ entity: QuestAnswerEntity) { + if entity.AIAnswerExists { + self.AIAnswerButton.updateTitle("보리의 답장 보러 가기") + } else { + self.AIAnswerButton.updateTitle("보리에게 답장 받기") + } + self.headerView.updateUI( stepNumber: entity.stepNumber, questNumber: entity.questNumber,