diff --git a/NADA-iOS-forRelease.xcodeproj/project.pbxproj b/NADA-iOS-forRelease.xcodeproj/project.pbxproj index 06b9c571..5d868d2a 100644 --- a/NADA-iOS-forRelease.xcodeproj/project.pbxproj +++ b/NADA-iOS-forRelease.xcodeproj/project.pbxproj @@ -34,6 +34,7 @@ 39F5A3D1271461EA00191F94 /* BackCardCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 39F5A3CF271461EA00191F94 /* BackCardCell.xib */; }; 777FF89B27359B7800BF69D3 /* Groups.swift in Sources */ = {isa = PBXBuildFile; fileRef = 777FF89A27359B7800BF69D3 /* Groups.swift */; }; 777FF89D2735B16B00BF69D3 /* GroupAddRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 777FF89C2735B16B00BF69D3 /* GroupAddRequest.swift */; }; + 777FF89F27364B7B00BF69D3 /* GroupEditRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 777FF89E27364B7B00BF69D3 /* GroupEditRequest.swift */; }; DBBB91E1639641F40C5B4416 /* Pods_NADA_iOS_forRelease.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A2183AE0E469153221624A0 /* Pods_NADA_iOS_forRelease.framework */; }; F822E7A92709CEB60020452C /* Notification.swift in Sources */ = {isa = PBXBuildFile; fileRef = F822E7A82709CEB60020452C /* Notification.swift */; }; F82FF81D2701EBCE00E57F8B /* CardCreation.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F82FF81C2701EBCE00E57F8B /* CardCreation.storyboard */; }; @@ -106,6 +107,7 @@ 4A2183AE0E469153221624A0 /* Pods_NADA_iOS_forRelease.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_NADA_iOS_forRelease.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 777FF89A27359B7800BF69D3 /* Groups.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Groups.swift; sourceTree = ""; }; 777FF89C2735B16B00BF69D3 /* GroupAddRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupAddRequest.swift; sourceTree = ""; }; + 777FF89E27364B7B00BF69D3 /* GroupEditRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupEditRequest.swift; sourceTree = ""; }; 7F4EE1D042EC783FA8528743 /* Pods-NADA-iOS-forRelease.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NADA-iOS-forRelease.debug.xcconfig"; path = "Target Support Files/Pods-NADA-iOS-forRelease/Pods-NADA-iOS-forRelease.debug.xcconfig"; sourceTree = ""; }; F822E7A82709CEB60020452C /* Notification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Notification.swift; sourceTree = ""; }; F82FF81C2701EBCE00E57F8B /* CardCreation.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = CardCreation.storyboard; sourceTree = ""; }; @@ -267,6 +269,7 @@ children = ( 777FF89A27359B7800BF69D3 /* Groups.swift */, 777FF89C2735B16B00BF69D3 /* GroupAddRequest.swift */, + 777FF89E27364B7B00BF69D3 /* GroupEditRequest.swift */, ); path = Group; sourceTree = ""; @@ -724,6 +727,7 @@ 3909242F26FA15E800236C51 /* UIView+Extension.swift in Sources */, 39523E09270184A700536900 /* CardListViewController.swift in Sources */, 777FF89B27359B7800BF69D3 /* Groups.swift in Sources */, + 777FF89F27364B7B00BF69D3 /* GroupEditRequest.swift in Sources */, 399C55DF2711949D00845A54 /* CGPoint+Distance.swift in Sources */, F83206AA26F61E3700D61711 /* FrontCardCell.swift in Sources */, 3979709626FA0BE5003FB4F5 /* LoginViewController.swift in Sources */, diff --git a/NADA-iOS-forRelease/Sources/NetworkModel/Group/GroupEditRequest.swift b/NADA-iOS-forRelease/Sources/NetworkModel/Group/GroupEditRequest.swift new file mode 100644 index 00000000..8393d1ad --- /dev/null +++ b/NADA-iOS-forRelease/Sources/NetworkModel/Group/GroupEditRequest.swift @@ -0,0 +1,13 @@ +// +// GroupEditRequest.swift +// NADA-iOS-forRelease +// +// Created by Yi Joon Choi on 2021/11/06. +// + +import Foundation + +struct GroupEditRequest: Codable { + var groupId: String? + var groupName: String? +} diff --git a/NADA-iOS-forRelease/Sources/NetworkService/Group/GroupAPI.swift b/NADA-iOS-forRelease/Sources/NetworkService/Group/GroupAPI.swift index 2f5bca29..b94ec72c 100644 --- a/NADA-iOS-forRelease/Sources/NetworkService/Group/GroupAPI.swift +++ b/NADA-iOS-forRelease/Sources/NetworkService/Group/GroupAPI.swift @@ -63,6 +63,22 @@ public class GroupAPI { } } + func putGroupEdit(groupRequest: GroupEditRequest, completion: @escaping (NetworkResult) -> Void) { + groupProvider.request(.groupEdit(groupRequest: groupRequest)) { (result) in + switch result { + case .success(let response): + let statusCode = response.statusCode + let data = response.data + + let networkResult = self.judgeStatus(by: statusCode, data) + completion(networkResult) + + case .failure(let err): + print(err) + } + } + } + private func judgeStatus(by statusCode: Int, _ data: Data) -> NetworkResult { let decoder = JSONDecoder() diff --git a/NADA-iOS-forRelease/Sources/NetworkService/Group/GroupService.swift b/NADA-iOS-forRelease/Sources/NetworkService/Group/GroupService.swift index 97427e6d..b55e655b 100644 --- a/NADA-iOS-forRelease/Sources/NetworkService/Group/GroupService.swift +++ b/NADA-iOS-forRelease/Sources/NetworkService/Group/GroupService.swift @@ -12,6 +12,7 @@ enum GroupService { case groupListFetch(userID: String) case groupDelete(groupID: Int) case groupAdd(groupRequest: GroupAddRequest) + case groupEdit(groupRequest: GroupEditRequest) } extension GroupService: TargetType { @@ -28,6 +29,8 @@ extension GroupService: TargetType { return "/group/\(groupID)" case .groupAdd: return "/group" + case .groupEdit: + return "/group" } } @@ -39,6 +42,8 @@ extension GroupService: TargetType { return .delete case .groupAdd: return .post + case .groupEdit: + return .put } } @@ -54,6 +59,8 @@ extension GroupService: TargetType { return .requestPlain case .groupAdd(let groupRequest): return .requestJSONEncodable(groupRequest) + case .groupEdit(let groupRequest): + return .requestJSONEncodable(groupRequest) } } @@ -65,6 +72,8 @@ extension GroupService: TargetType { return ["Content-Type": "application/json"] case .groupAdd: return ["Content-Type": "application/json"] + case .groupEdit: + return ["Content-Type": "application/json"] } } diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift index b0b525e6..5dffcb79 100644 --- a/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift +++ b/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift @@ -15,9 +15,11 @@ class GroupViewController: UIViewController { // 그룹 리스트 조회 서버 테스트 getGroupListFetchWithAPI(userID: "nada") // 그룹 삭제 서버 테스트 - deleteGroupWithAPI(groupID: 1) +// deleteGroupWithAPI(groupID: 1) // 그룹 추가 서버 테스트 - postGroupAddWithAPI(groupRequest: GroupAddRequest(userId: "nada", groupName: "나다나다")) +// postGroupAddWithAPI(groupRequest: GroupAddRequest(userId: "nada", groupName: "나다나다")) + // 그룹 수정 서버 테스트 +// putGroupEditWithAPI(groupRequest: GroupEditRequest(groupId: "5", groupName: "수정나다")) } } @@ -70,6 +72,26 @@ extension GroupViewController { switch response { case .success(let data): if let group = data as? Groups { +// print(group) + // 그룹 추가 서버 통신 성공했을 떄 + } + case .requestErr(let message): + print("postGroupAddWithAPI - requestErr", message) + case .pathErr: + print("postGroupAddWithAPI - pathErr") + case .serverErr: + print("postGroupAddWithAPI - serverErr") + case .networkFail: + print("postGroupAddWithAPI - networkFail") + } + } + } + + func putGroupEditWithAPI(groupRequest: GroupEditRequest) { + GroupAPI.shared.putGroupEdit(groupRequest: groupRequest) { response in + switch response { + case .success(let data): + if let group = data as? Groups { // print(group) // 그룹 추가 서버 통신 성공했을 떄 }