diff --git a/Spark-iOS/Spark-iOS/Source/NetworkServices/Room/RoomAPI.swift b/Spark-iOS/Spark-iOS/Source/NetworkServices/Room/RoomAPI.swift index 147dfe13..d03ddb90 100644 --- a/Spark-iOS/Spark-iOS/Source/NetworkServices/Room/RoomAPI.swift +++ b/Spark-iOS/Spark-iOS/Source/NetworkServices/Room/RoomAPI.swift @@ -216,7 +216,7 @@ public class RoomAPI { case .success(let response): let statusCode = response.statusCode let data = response.data - let networkResult = self.judgeStatus(by: statusCode, data) + let networkResult = self.judgeSendSparkStatus(by: statusCode, data) completion(networkResult) case .failure(let err): @@ -225,6 +225,22 @@ public class RoomAPI { } } + private func judgeSendSparkStatus(by statusCode: Int, _ data: Data) -> NetworkResult { + let decoder = JSONDecoder() + guard let decodedData = try? decoder.decode(GenericResponse.self, from: data) + else { return .pathErr } + switch statusCode { + case 200: + return .success(decodedData.message) + case 400..<500: + return .requestErr(decodedData.status) + case 500: + return .serverErr + default: + return .networkFail + } + } + func setConsiderRest(roomID: Int, statusType: String, completion: @escaping(NetworkResult) -> Void) { roomProvider.request(.setConsiderRest(roomID: roomID, statusType: statusType)) { result in switch result { diff --git a/Spark-iOS/Spark-iOS/Source/ViewControllers/HabitRoom/SendSparkVC.swift b/Spark-iOS/Spark-iOS/Source/ViewControllers/HabitRoom/SendSparkVC.swift index 25b30dd7..17d735a2 100644 --- a/Spark-iOS/Spark-iOS/Source/ViewControllers/HabitRoom/SendSparkVC.swift +++ b/Spark-iOS/Spark-iOS/Source/ViewControllers/HabitRoom/SendSparkVC.swift @@ -211,6 +211,7 @@ extension SendSparkVC { // MARK: - @objc Function @objc private func sendSparkWithMessage() { + setFeedbackGenerator() sendSparkWithAPI(content: textField.text ?? "") Analytics.logEvent(Tracking.Select.clickSparkInputText, parameters: nil) } @@ -475,13 +476,7 @@ extension SendSparkVC: UICollectionViewDataSource { // MARK: - UICollectionViewDelegate -extension SendSparkVC: UICollectionViewDelegate { - func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { - impactFeedbackGenerator = UIImpactFeedbackGenerator(style: .light) - impactFeedbackGenerator?.impactOccurred() - impactFeedbackGenerator = nil - } -} +extension SendSparkVC: UICollectionViewDelegate { } // MARK: Network @@ -494,8 +489,18 @@ extension SendSparkVC { self.dismiss(animated: true) { presentVC?.showSparkToast(x: 20, y: 44, message: "\(self.userName ?? "")에게 스파크를 보냈어요!") } - case .requestErr(let message): - print("sendSparkWithAPI - requestErr: \(message)") + case .requestErr(let status): + if status as? Int == 440 { + let presentVC = self.presentingViewController + self.dismiss(animated: true) { + NotificationCenter.default.post(name: .updateHabitRoom, object: nil) + DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { + presentVC?.showSparkToast(x: 20, y: 44, message: "\(self.userName ?? "")에게 스파크를 보냈어요!") + } + } + } + + print("sendSparkWithAPI - requestErr: \(status)") case .pathErr: print("sendSparkWithAPI - pathErr") case .serverErr: