diff --git a/NADA-iOS-forRelease/Sources/NetworkService/Update/UpdateAPI.swift b/NADA-iOS-forRelease/Sources/NetworkService/Update/UpdateAPI.swift index 4aaea6dd..ad9bb08f 100644 --- a/NADA-iOS-forRelease/Sources/NetworkService/Update/UpdateAPI.swift +++ b/NADA-iOS-forRelease/Sources/NetworkService/Update/UpdateAPI.swift @@ -45,6 +45,21 @@ public final class UpdateAPI { } } + func checkUpdateNote(isChecked: Bool, completion: @escaping (NetworkResult) -> Void) { + updateProvider.request(.checkUpdateNote(isChecked: isChecked)) { result in + switch result { + case .success(let response): + let statusCode = response.statusCode + let data = response.data + + let networkResult = self.judgeStatus(by: statusCode, data: data, type: String.self) + completion(networkResult) + case .failure(let err): + print(err) + } + } + } + // MARK: - judgeStatus methods private func judgeStatus(by statusCode: Int, data: Data, type: T.Type) -> NetworkResult { diff --git a/NADA-iOS-forRelease/Sources/NetworkService/Update/UpdateService.swift b/NADA-iOS-forRelease/Sources/NetworkService/Update/UpdateService.swift index 72ed4580..bc41525d 100644 --- a/NADA-iOS-forRelease/Sources/NetworkService/Update/UpdateService.swift +++ b/NADA-iOS-forRelease/Sources/NetworkService/Update/UpdateService.swift @@ -12,6 +12,7 @@ import Moya enum UpdateService { case updateUserInfoFetch case updateNoteFetch + case checkUpdateNote(isChecked: Bool) } extension UpdateService: TargetType { @@ -29,6 +30,8 @@ extension UpdateService: TargetType { return "/app/update" case .updateNoteFetch: return "/app/update/note" + case .checkUpdateNote: + return "/app/update/check" } } @@ -36,6 +39,8 @@ extension UpdateService: TargetType { switch self { case .updateUserInfoFetch, .updateNoteFetch: return .get + case .checkUpdateNote: + return .post } } @@ -43,12 +48,15 @@ extension UpdateService: TargetType { switch self { case .updateUserInfoFetch, .updateNoteFetch: return .requestPlain + case .checkUpdateNote(let isChecked): + return .requestParameters(parameters: ["checkUpdateNote": isChecked], + encoding: URLEncoding.queryString) } } var headers: [String: String]? { switch self { - case .updateUserInfoFetch, .updateNoteFetch: + case .updateUserInfoFetch, .updateNoteFetch, .checkUpdateNote: return Const.Header.bearerHeader() } } diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/Home/VC/HomeViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/Home/VC/HomeViewController.swift index 04b38001..e92abfef 100644 --- a/NADA-iOS-forRelease/Sources/ViewControllers/Home/VC/HomeViewController.swift +++ b/NADA-iOS-forRelease/Sources/ViewControllers/Home/VC/HomeViewController.swift @@ -190,8 +190,8 @@ extension HomeViewController { } private func checkUpdateVersion() { - updateUserInfoFetchWithAPI { [weak self] forceUpdateAgreement in - if !forceUpdateAgreement { + updateUserInfoFetchWithAPI { [weak self] checkUpdateNote in + if !checkUpdateNote { self?.updateNoteFetchWithAPI { [weak self] updateNote in if self?.checkUpdateAvailable(updateNote.latestVersion) ?? false { self?.presentToUpdateVC(with: updateNote) diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/Update/VC/UpdateViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/Update/VC/UpdateViewController.swift index 2e17f87e..86ad787a 100644 --- a/NADA-iOS-forRelease/Sources/ViewControllers/Update/VC/UpdateViewController.swift +++ b/NADA-iOS-forRelease/Sources/ViewControllers/Update/VC/UpdateViewController.swift @@ -94,7 +94,7 @@ extension UpdateViewController { exit(0) } } else { - // TODO: - 확인했어요 API 통신 + checkUpdateNoteWithAPI(forceUpdateAgreement) self.dismiss(animated: true) } } @@ -110,7 +110,7 @@ extension UpdateViewController { } if !updateNote.isForce { - // TODO: - 확인했어요 API 통신 + checkUpdateNoteWithAPI(forceUpdateAgreement) } } @@ -121,6 +121,27 @@ extension UpdateViewController { } } +// MARK: - Network + +extension UpdateViewController { + private func checkUpdateNoteWithAPI(_ forceUpdateAgreement: Bool) { + UpdateAPI.shared.checkUpdateNote(isChecked: forceUpdateAgreement) { response in + switch response { + case .success: + print("checkUpdateNoteWithAPI - success") + case .requestErr(let message): + print("checkUpdateNoteWithAPI - requestErr: \(message)") + case .pathErr: + print("checkUpdateNoteWithAPI - pathErr") + case .serverErr: + print("checkUpdateNoteWithAPI - serverErr") + case .networkFail: + print("checkUpdateNoteWithAPI - networkFail") + } + } + } +} + // MARK: - Layout extension UpdateViewController {