diff --git a/SniffMeet/SniffMeet/Source/Scene/Home/EditProfile/Interactor/ProfileEditInteractor.swift b/SniffMeet/SniffMeet/Source/Scene/Home/EditProfile/Interactor/ProfileEditInteractor.swift index b4c4485..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) } @@ -91,7 +84,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/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) + } + } } } 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) } 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,