From 0ce71212490b0fe417ed96f6ba764fca42325f21 Mon Sep 17 00:00:00 2001 From: Jinwon Choi Date: Thu, 10 Apr 2025 04:59:29 +0900 Subject: [PATCH 1/3] =?UTF-8?q?[fix]=20#75=20=ED=94=84=EB=A1=9C=ED=95=84?= =?UTF-8?q?=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8=20=EC=84=9C=EB=B2=84?= =?UTF-8?q?=EC=97=90=20=EC=A0=81=EC=9A=A9=20=EC=95=88=EB=90=98=EB=8A=94=20?= =?UTF-8?q?=EB=AC=B8=EC=A0=9C=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 단순히 Supabase 테이블과 JSON 파일 네임 미스매칭 문제였습니다. --- .../Home/EditProfile/Interactor/ProfileEditInteractor.swift | 2 +- .../Source/Usecase/SaveUsecase/UpdateUserInfoUsecase.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/SniffMeet/SniffMeet/Source/Scene/Home/EditProfile/Interactor/ProfileEditInteractor.swift b/SniffMeet/SniffMeet/Source/Scene/Home/EditProfile/Interactor/ProfileEditInteractor.swift index b4c4485..d4881d5 100644 --- a/SniffMeet/SniffMeet/Source/Scene/Home/EditProfile/Interactor/ProfileEditInteractor.swift +++ b/SniffMeet/SniffMeet/Source/Scene/Home/EditProfile/Interactor/ProfileEditInteractor.swift @@ -91,7 +91,7 @@ final class ProfileEditInteractor: ProfileEditInteractable { do { try await updateUserInfoUsecase.execute( with: [ - "name": name, + "dog_name": name, "age": age, "size": size, "keywords": keywords diff --git a/SniffMeet/SniffMeet/Source/Usecase/SaveUsecase/UpdateUserInfoUsecase.swift b/SniffMeet/SniffMeet/Source/Usecase/SaveUsecase/UpdateUserInfoUsecase.swift index f5b2bbe..b725937 100644 --- a/SniffMeet/SniffMeet/Source/Usecase/SaveUsecase/UpdateUserInfoUsecase.swift +++ b/SniffMeet/SniffMeet/Source/Usecase/SaveUsecase/UpdateUserInfoUsecase.swift @@ -51,7 +51,7 @@ struct UpdateUserInfoUsecaseImpl: UpdateUserInfoUsecase { from oldProfileInfo: ProfileInfo ) throws { let newProfileInfo = ProfileInfo( - name: updatedProperty["name"] as? String ?? oldProfileInfo.name, + name: updatedProperty["dog_name"] as? String ?? oldProfileInfo.name, age: updatedProperty["age"] as? UInt8 ?? oldProfileInfo.age, sex: oldProfileInfo.sex, sexUponIntake: updatedProperty["sexUponIntake"] as? Bool ?? oldProfileInfo.sexUponIntake, From 585ec0a12f791628409af22e2d3a5c20670b9992 Mon Sep 17 00:00:00 2001 From: Jinwon Choi Date: Thu, 10 Apr 2025 05:00:14 +0900 Subject: [PATCH 2/3] =?UTF-8?q?[redesign]=20#75=20Task=20=EC=9D=B8?= =?UTF-8?q?=ED=84=B0=EB=9E=99=ED=84=B0=EC=97=90=EC=84=9C=20=ED=94=84?= =?UTF-8?q?=EB=A0=88=EC=A0=A0=ED=84=B0=EB=A1=9C=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 프로젝트 컨벤션에 맞게 변경했습니다. --- .../Interactor/ProfileEditInteractor.swift | 31 +++++++------------ .../Presenter/ProfileEditPresenter.swift | 20 +++++++----- 2 files changed, 25 insertions(+), 26 deletions(-) diff --git a/SniffMeet/SniffMeet/Source/Scene/Home/EditProfile/Interactor/ProfileEditInteractor.swift b/SniffMeet/SniffMeet/Source/Scene/Home/EditProfile/Interactor/ProfileEditInteractor.swift index d4881d5..a633a43 100644 --- a/SniffMeet/SniffMeet/Source/Scene/Home/EditProfile/Interactor/ProfileEditInteractor.swift +++ b/SniffMeet/SniffMeet/Source/Scene/Home/EditProfile/Interactor/ProfileEditInteractor.swift @@ -19,7 +19,7 @@ protocol ProfileEditInteractable: AnyObject { size: String, keywords: [String], imageData: Data? - ) + ) async throws } final class ProfileEditInteractor: ProfileEditInteractable { @@ -59,26 +59,19 @@ final class ProfileEditInteractor: ProfileEditInteractable { size: String, keywords: [String], imageData: Data? - ) { - Task { - do { - try await updateUserInfo( - name: name, - age: age, - size: size, - keywords: keywords - ) - guard let imageData else { - presenter?.didSaveUserInfo() - return - } - try await saveProfile(imageData: imageData) - presenter?.didSaveUserInfo() - } catch let error { - SNMLogger.error(error.localizedDescription) - } + ) async throws { + try await updateUserInfo( + name: name, + age: age, + size: size, + keywords: keywords + ) + if let imageData { + try await saveProfile(imageData: imageData) } + presenter?.didSaveUserInfo() } + private func saveProfile(imageData: Data) async throws { let _ = try await saveProfileImageUsecase.execute(imageData: imageData) } diff --git a/SniffMeet/SniffMeet/Source/Scene/Home/EditProfile/Presenter/ProfileEditPresenter.swift b/SniffMeet/SniffMeet/Source/Scene/Home/EditProfile/Presenter/ProfileEditPresenter.swift index 1d84d31..ff44668 100644 --- a/SniffMeet/SniffMeet/Source/Scene/Home/EditProfile/Presenter/ProfileEditPresenter.swift +++ b/SniffMeet/SniffMeet/Source/Scene/Home/EditProfile/Presenter/ProfileEditPresenter.swift @@ -69,13 +69,19 @@ final class ProfileEditPresenter: ProfileEditPresentable { let keywords else { return } - interactor?.editUserInfo( - name: nameText, - age: age, - size: size.rawValue, - keywords: keywords.map { $0.rawValue }, - imageData: profileImage?.jpegData(compressionQuality: 0.7) - ) + Task { + do { + try await interactor?.editUserInfo( + name: nameText, + age: age, + size: size.rawValue, + keywords: keywords.map { $0.rawValue }, + imageData: profileImage?.jpegData(compressionQuality: 0.7) + ) + } catch { + SNMLogger.error(error.localizedDescription) + } + } } } From 6dc27033f8196c2eb3a007aa94c4cfec5c813b5b Mon Sep 17 00:00:00 2001 From: Jinwon Choi Date: Thu, 10 Apr 2025 05:06:16 +0900 Subject: [PATCH 3/3] =?UTF-8?q?[fix]=20#75=20=ED=86=A0=EC=8A=A4=ED=8A=B8?= =?UTF-8?q?=20=EB=93=B1=EC=9E=A5=20=EC=8B=9C=EC=A0=90=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 토스트에 타이밍 문제가 있는 것 같습니다. 토스트를 먼저 보이고, 그 이후에 버튼 액션을 실행하면 pop이 제대로 되지 않아 뷰에 갇히게 됩니다. - 현재 코드에서 직접적으로 체감할 수 있는 문제는 없습니다. --- .../Scene/Home/EditProfile/View/ProfileEditViewController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SniffMeet/SniffMeet/Source/Scene/Home/EditProfile/View/ProfileEditViewController.swift b/SniffMeet/SniffMeet/Source/Scene/Home/EditProfile/View/ProfileEditViewController.swift index 497efc5..8f60fdd 100644 --- a/SniffMeet/SniffMeet/Source/Scene/Home/EditProfile/View/ProfileEditViewController.swift +++ b/SniffMeet/SniffMeet/Source/Scene/Home/EditProfile/View/ProfileEditViewController.swift @@ -228,8 +228,8 @@ final class ProfileEditViewController: BaseViewController, ProfileEditViewable { completeEditButton.publisher(event: .touchUpInside) .sink { [weak self] _ in self?.completeEditButton.isEnabled = false - self?.snmProgressToast.show(in: self?.view, isDim: true) self?.handleCompleteButtonAction() + self?.snmProgressToast.show(in: self?.view, isDim: true) } .store(in: &cancellables) }