diff --git a/NADA-iOS-forRelease.xcodeproj/project.pbxproj b/NADA-iOS-forRelease.xcodeproj/project.pbxproj index deba2e3b..a5e0872f 100644 --- a/NADA-iOS-forRelease.xcodeproj/project.pbxproj +++ b/NADA-iOS-forRelease.xcodeproj/project.pbxproj @@ -43,7 +43,6 @@ 777FF89D2735B16B00BF69D3 /* GroupAddRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 777FF89C2735B16B00BF69D3 /* GroupAddRequest.swift */; }; 777FF89F27364B7B00BF69D3 /* GroupEditRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 777FF89E27364B7B00BF69D3 /* GroupEditRequest.swift */; }; 77AA68EA273E0EC4009C89B0 /* CardAddInGroupRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77AA68E9273E0EC4009C89B0 /* CardAddInGroupRequest.swift */; }; - 77AA68EC273E202D009C89B0 /* CardListRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77AA68EB273E202D009C89B0 /* CardListRequest.swift */; }; DBBB91E1639641F40C5B4416 /* Pods_NADA_iOS_forRelease.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A2183AE0E469153221624A0 /* Pods_NADA_iOS_forRelease.framework */; }; F811720027383097002742CF /* ChangeGroupRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = F81171FF27383097002742CF /* ChangeGroupRequest.swift */; }; F822E7A92709CEB60020452C /* Notification.swift in Sources */ = {isa = PBXBuildFile; fileRef = F822E7A82709CEB60020452C /* Notification.swift */; }; @@ -61,6 +60,8 @@ F858079F2700354E00872484 /* BackgroundCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F858079D2700354E00872484 /* BackgroundCollectionViewCell.xib */; }; F87122762733046300A24E74 /* Card.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87122752733046300A24E74 /* Card.swift */; }; F871227827330A3800A24E74 /* CardCreationRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = F871227727330A3800A24E74 /* CardCreationRequest.swift */; }; + F8A9FE1A2743DC6B00BC60CE /* CardListInGroupRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8A9FE192743DC6B00BC60CE /* CardListInGroupRequest.swift */; }; + F8C310C0273A7360008EC5BA /* FrontCardCreationDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8C310BF273A7360008EC5BA /* FrontCardCreationDelegate.swift */; }; F8C83FAE272F99940009DF0D /* MoyaLoggerPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8C83FAD272F99940009DF0D /* MoyaLoggerPlugin.swift */; }; F8C83FB6272F9E380009DF0D /* UtilService.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8C83FB5272F9E380009DF0D /* UtilService.swift */; }; F8C83FB8272F9E3F0009DF0D /* UtilAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8C83FB7272F9E3F0009DF0D /* UtilAPI.swift */; }; @@ -79,7 +80,7 @@ F8FC438F26C01CDE0033E151 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F8FC438E26C01CDE0033E151 /* Assets.xcassets */; }; F8FC439226C01CDE0033E151 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F8FC439026C01CDE0033E151 /* LaunchScreen.storyboard */; }; F8FC43AD26C020940033E151 /* TempClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8FC43AC26C020940033E151 /* TempClass.swift */; }; - F8FC43B326C020B90033E151 /* TempProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8FC43B226C020B90033E151 /* TempProtocols.swift */; }; + F8FC43B326C020B90033E151 /* BackCardCreationDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8FC43B226C020B90033E151 /* BackCardCreationDelegate.swift */; }; F8FC43B526C020C10033E151 /* TempViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8FC43B426C020C10033E151 /* TempViews.swift */; }; F8FC43B826C0227D0033E151 /* Const.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8FC43B726C0227D0033E151 /* Const.swift */; }; F8FC43BA26C022900033E151 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8FC43B926C022900033E151 /* ViewController.swift */; }; @@ -126,7 +127,6 @@ 777FF89C2735B16B00BF69D3 /* GroupAddRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupAddRequest.swift; sourceTree = ""; }; 777FF89E27364B7B00BF69D3 /* GroupEditRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupEditRequest.swift; sourceTree = ""; }; 77AA68E9273E0EC4009C89B0 /* CardAddInGroupRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardAddInGroupRequest.swift; sourceTree = ""; }; - 77AA68EB273E202D009C89B0 /* CardListRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardListRequest.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 = ""; }; F81171FF27383097002742CF /* ChangeGroupRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeGroupRequest.swift; sourceTree = ""; }; F822E7A82709CEB60020452C /* Notification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Notification.swift; sourceTree = ""; }; @@ -144,6 +144,8 @@ F858079D2700354E00872484 /* BackgroundCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BackgroundCollectionViewCell.xib; sourceTree = ""; }; F87122752733046300A24E74 /* Card.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Card.swift; sourceTree = ""; }; F871227727330A3800A24E74 /* CardCreationRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardCreationRequest.swift; sourceTree = ""; }; + F8A9FE192743DC6B00BC60CE /* CardListInGroupRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CardListInGroupRequest.swift; sourceTree = ""; }; + F8C310BF273A7360008EC5BA /* FrontCardCreationDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrontCardCreationDelegate.swift; sourceTree = ""; }; F8C83FAD272F99940009DF0D /* MoyaLoggerPlugin.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MoyaLoggerPlugin.swift; sourceTree = ""; }; F8C83FB5272F9E380009DF0D /* UtilService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UtilService.swift; sourceTree = ""; }; F8C83FB7272F9E3F0009DF0D /* UtilAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UtilAPI.swift; sourceTree = ""; }; @@ -164,7 +166,7 @@ F8FC439126C01CDE0033E151 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; F8FC439326C01CDE0033E151 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; F8FC43AC26C020940033E151 /* TempClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TempClass.swift; sourceTree = ""; }; - F8FC43B226C020B90033E151 /* TempProtocols.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TempProtocols.swift; sourceTree = ""; }; + F8FC43B226C020B90033E151 /* BackCardCreationDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackCardCreationDelegate.swift; sourceTree = ""; }; F8FC43B426C020C10033E151 /* TempViews.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TempViews.swift; sourceTree = ""; }; F8FC43B726C0227D0033E151 /* Const.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Const.swift; sourceTree = ""; }; F8FC43B926C022900033E151 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; @@ -299,8 +301,8 @@ 777FF89A27359B7800BF69D3 /* Groups.swift */, 777FF89C2735B16B00BF69D3 /* GroupAddRequest.swift */, 777FF89E27364B7B00BF69D3 /* GroupEditRequest.swift */, + F8A9FE192743DC6B00BC60CE /* CardListInGroupRequest.swift */, 77AA68E9273E0EC4009C89B0 /* CardAddInGroupRequest.swift */, - 77AA68EB273E202D009C89B0 /* CardListRequest.swift */, 7729171E2743D604001593E0 /* CardsInGroupResponse.swift */, ); path = Group; @@ -549,7 +551,8 @@ F8FC439F26C01EFC0033E151 /* Protocols */ = { isa = PBXGroup; children = ( - F8FC43B226C020B90033E151 /* TempProtocols.swift */, + F8FC43B226C020B90033E151 /* BackCardCreationDelegate.swift */, + F8C310BF273A7360008EC5BA /* FrontCardCreationDelegate.swift */, ); path = Protocols; sourceTree = ""; @@ -778,6 +781,7 @@ F83206AA26F61E3700D61711 /* FrontCardCell.swift in Sources */, 3979709626FA0BE5003FB4F5 /* LoginViewController.swift in Sources */, 39488E352706E17200BDC917 /* UIAlertController+Extension.swift in Sources */, + F8C310C0273A7360008EC5BA /* FrontCardCreationDelegate.swift in Sources */, F8C83FBF272FA0670009DF0D /* UserSevice.swift in Sources */, 399C55DB2711927900845A54 /* CustomTabBarController.swift in Sources */, 39F5A3D0271461EA00191F94 /* BackCardCell.swift in Sources */, @@ -790,13 +794,14 @@ F82FF8252702000000E57F8B /* RequiredFlavorCollectionViewCell.swift in Sources */, F8C83FC7272FA2A20009DF0D /* CardService.swift in Sources */, F871227827330A3800A24E74 /* CardCreationRequest.swift in Sources */, - F8FC43B326C020B90033E151 /* TempProtocols.swift in Sources */, + F8FC43B326C020B90033E151 /* BackCardCreationDelegate.swift in Sources */, 39584581273E951C009CC6B9 /* MainListRequest.swift in Sources */, F8FC43B526C020C10033E151 /* TempViews.swift in Sources */, F8C83FBB272F9F370009DF0D /* NetworkResult.swift in Sources */, 39D2E130270B43DA00AD0889 /* UIFont+Extension.swift in Sources */, 39523E5B2701A48900536900 /* CardListTableViewCell.swift in Sources */, 399C55D72711921100845A54 /* CustomTabBarButton.swift in Sources */, + F8A9FE1A2743DC6B00BC60CE /* CardListInGroupRequest.swift in Sources */, 3981148E273BEBB300E28630 /* CardListEditRequest.swift in Sources */, F8FC43BA26C022900033E151 /* ViewController.swift in Sources */, 39523E5F2701AA9000536900 /* CardListDataModel.swift in Sources */, @@ -814,7 +819,6 @@ F84BAFAD26FDB543004CA335 /* FrontCardCreationCollectionViewCell.swift in Sources */, 39D13565273FDB9C00B1A148 /* Users.swift in Sources */, F822E7A92709CEB60020452C /* Notification.swift in Sources */, - 77AA68EC273E202D009C89B0 /* CardListRequest.swift in Sources */, F8C83FC5272FA2940009DF0D /* CardAPI.swift in Sources */, 7729171F2743D604001593E0 /* CardsInGroupResponse.swift in Sources */, F8FC438626C01CDD0033E151 /* AppDelegate.swift in Sources */, diff --git a/NADA-iOS-forRelease.xcodeproj/xcshareddata/xcschemes/NADA-iOS-forRelease.xcscheme b/NADA-iOS-forRelease.xcodeproj/xcshareddata/xcschemes/NADA-iOS-forRelease.xcscheme index 6e57717c..3b233ed7 100644 --- a/NADA-iOS-forRelease.xcodeproj/xcshareddata/xcschemes/NADA-iOS-forRelease.xcscheme +++ b/NADA-iOS-forRelease.xcodeproj/xcshareddata/xcschemes/NADA-iOS-forRelease.xcscheme @@ -1,6 +1,6 @@ - + - + @@ -19,25 +19,26 @@ - - + - + - + @@ -89,53 +90,54 @@ - - - - - - - - - - + + - + + - - + diff --git a/NADA-iOS-forRelease/Sources/Cells/CreationCard/BackCardCreationCollectionViewCell.swift b/NADA-iOS-forRelease/Sources/Cells/CreationCard/BackCardCreationCollectionViewCell.swift index ef9a1607..dcfc9a63 100644 --- a/NADA-iOS-forRelease/Sources/Cells/CreationCard/BackCardCreationCollectionViewCell.swift +++ b/NADA-iOS-forRelease/Sources/Cells/CreationCard/BackCardCreationCollectionViewCell.swift @@ -13,7 +13,9 @@ class BackCardCreationCollectionViewCell: UICollectionViewCell { static let identifier = "BackCardCreationCollectionViewCell" private let flavorList = ["민초", "반민초", "소주", "맥주", "부먹", "찍먹", "양념", "후라이드"] - private var optionalInfoList = [UITextField]() + private var textFieldList = [UITextField]() + private var requiredCollectionViewList = [UICollectionView]() + public weak var backCardCreationDelegate: BackCardCreationDelegate? // MARK: - @IBOutlet Properties @@ -30,7 +32,10 @@ class BackCardCreationCollectionViewCell: UICollectionViewCell { @IBOutlet weak var secondQuestionTextField: UITextField! @IBOutlet weak var secondAnswerTextField: UITextField! - @IBOutlet weak var requiredCollectionView: UICollectionView! + @IBOutlet weak var isMinchoCollectionView: UICollectionView! + @IBOutlet weak var isSojuCollectionView: UICollectionView! + @IBOutlet weak var isBoomukCollectionView: UICollectionView! + @IBOutlet weak var isSaucedCollectionView: UICollectionView! // MARK: - Cell Life Cycle @@ -42,14 +47,22 @@ class BackCardCreationCollectionViewCell: UICollectionViewCell { } } +// MARK: - Extensions + extension BackCardCreationCollectionViewCell { private func setUI() { initUITextFieldList() + initCollectionViewList() + scrollView.indicatorStyle = .white scrollView.backgroundColor = .black1 + bgView.backgroundColor = .black1 - requiredCollectionView.backgroundColor = .stepBlack5 + + _ = requiredCollectionViewList.map { $0.backgroundColor = .stepBlack5 } + requiredInfoView.backgroundColor = .stepBlack5 + optionInfoView.backgroundColor = .stepBlack5 requiredInfoTextLabel.text = "1 필수 정보" @@ -65,26 +78,35 @@ extension BackCardCreationCollectionViewCell { secondQuestionTextField.attributedPlaceholder = NSAttributedString(string: "질문 2", attributes: [NSAttributedString.Key.foregroundColor: UIColor.hintGray1]) secondAnswerTextField.attributedPlaceholder = NSAttributedString(string: "대답 2", attributes: [NSAttributedString.Key.foregroundColor: UIColor.hintGray1]) - _ = optionalInfoList.map { + _ = textFieldList.map { $0.font = .hint $0.backgroundColor = .inputBlack2 $0.textColor = .white1 $0.layer.cornerRadius = 5 + $0.borderStyle = .none } } private func initUITextFieldList() { - optionalInfoList.append(contentsOf: [firstQuestionTextField, + textFieldList.append(contentsOf: [firstQuestionTextField, firstAnswerTextField, secondQuestionTextField, secondAnswerTextField]) } + private func initCollectionViewList() { + requiredCollectionViewList.append(contentsOf: [isMinchoCollectionView, + isSojuCollectionView, + isBoomukCollectionView, + isSaucedCollectionView]) + } private func registerCell() { - requiredCollectionView.delegate = self - requiredCollectionView.dataSource = self - requiredCollectionView.register(RequiredFlavorCollectionViewCell.nib(), forCellWithReuseIdentifier: Const.Xib.requiredCollectionViewCell) + _ = requiredCollectionViewList.map { + $0.delegate = self + $0.dataSource = self + $0.register(RequiredFlavorCollectionViewCell.nib(), forCellWithReuseIdentifier: Const.Xib.requiredCollectionViewCell) + } } private func textFieldDelegate() { - _ = optionalInfoList.map { $0.delegate = self } + _ = textFieldList.map { $0.delegate = self } } static func nib() -> UINib { return UINib(nibName: "BackCardCreationCollectionViewCell", bundle: nil) @@ -95,7 +117,25 @@ extension BackCardCreationCollectionViewCell { extension BackCardCreationCollectionViewCell: UICollectionViewDelegate { func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { - print(indexPath.row) + if isMinchoCollectionView.indexPathsForSelectedItems?.isEmpty == false && + isSojuCollectionView.indexPathsForSelectedItems?.isEmpty == false && + isBoomukCollectionView.indexPathsForSelectedItems?.isEmpty == false && + isSaucedCollectionView.indexPathsForSelectedItems?.isEmpty == false { + backCardCreationDelegate?.backCardCreation(requiredInfo: true) + backCardCreationDelegate?.backCardCreation(withRequired: [ + "isMincho": isMinchoCollectionView.indexPathsForSelectedItems == [[0]] ? true: false, + "isSoju": isSojuCollectionView.indexPathsForSelectedItems == [[0]] ? true: false, + "isBoomuk": isBoomukCollectionView.indexPathsForSelectedItems == [[0]] ? true: false, + "isSauced": isSaucedCollectionView.indexPathsForSelectedItems == [[0]] ? true: false + ], withOptional: [ + "oneQuestion": firstQuestionTextField.text ?? "", + "oneAnswer": firstAnswerTextField.text ?? "", + "twoQuestion": secondQuestionTextField.text ?? "", + "twoAnswer": secondAnswerTextField.text ?? "" + ]) + } else { + backCardCreationDelegate?.backCardCreation(requiredInfo: false) + } } } @@ -103,15 +143,23 @@ extension BackCardCreationCollectionViewCell: UICollectionViewDelegate { extension BackCardCreationCollectionViewCell: UICollectionViewDataSource { func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { - return flavorList.count + return 2 } func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: Const.Xib.requiredCollectionViewCell, for: indexPath) as? RequiredFlavorCollectionViewCell else { return UICollectionViewCell() } - cell.initCell(flavor: flavorList[indexPath.row]) + if collectionView == isMinchoCollectionView { + cell.initCell(flavor: flavorList[indexPath.item]) + } else if collectionView == isSojuCollectionView { + cell.initCell(flavor: flavorList[indexPath.item + 2]) + } else if collectionView == isBoomukCollectionView { + cell.initCell(flavor: flavorList[indexPath.item + 4]) + } else { + cell.initCell(flavor: flavorList[indexPath.item + 6]) + } return cell } } @@ -120,7 +168,7 @@ extension BackCardCreationCollectionViewCell: UICollectionViewDataSource { extension BackCardCreationCollectionViewCell: UICollectionViewDelegateFlowLayout { func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat { - return 12 + return 0 } func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat { return 13 @@ -129,10 +177,10 @@ extension BackCardCreationCollectionViewCell: UICollectionViewDelegateFlowLayout return .zero } func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { - let width = (collectionView.frame.width - 13) / 2 - let height = (collectionView.frame.height - 36) / 4 + let cellWidth = (collectionView.frame.width - 13) / 2 + let cellHeight = (collectionView.frame.height) - return CGSize(width: width, height: height) + return CGSize(width: cellWidth, height: cellHeight) } } diff --git a/NADA-iOS-forRelease/Sources/Cells/CreationCard/BackCardCreationCollectionViewCell.xib b/NADA-iOS-forRelease/Sources/Cells/CreationCard/BackCardCreationCollectionViewCell.xib index e03f70e2..4a064bec 100644 --- a/NADA-iOS-forRelease/Sources/Cells/CreationCard/BackCardCreationCollectionViewCell.xib +++ b/NADA-iOS-forRelease/Sources/Cells/CreationCard/BackCardCreationCollectionViewCell.xib @@ -1,9 +1,9 @@ - + - + @@ -28,14 +28,17 @@ - + + + + @@ -43,16 +46,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + @@ -152,9 +197,12 @@ + + + + - diff --git a/NADA-iOS-forRelease/Sources/Cells/CreationCard/FrontCardCreationCollectionViewCell.swift b/NADA-iOS-forRelease/Sources/Cells/CreationCard/FrontCardCreationCollectionViewCell.swift index 774c3216..6623aac7 100644 --- a/NADA-iOS-forRelease/Sources/Cells/CreationCard/FrontCardCreationCollectionViewCell.swift +++ b/NADA-iOS-forRelease/Sources/Cells/CreationCard/FrontCardCreationCollectionViewCell.swift @@ -12,8 +12,9 @@ class FrontCardCreationCollectionViewCell: UICollectionViewCell { // MARK: - Properties private let backgroundList = ["img", "img", "img", "img", "img", "img"] - private var requiredInfoList = [UITextField]() - private var optionalInfoList = [UITextField]() + private var requiredTextFieldList = [UITextField]() + private var optionalTextFieldList = [UITextField]() + public weak var frontCardCreationDelegate: FrontCardCreationDelegate? // MARK: - @IBOutlet Properties @@ -86,25 +87,27 @@ extension FrontCardCreationCollectionViewCell { linkURLTextField.attributedPlaceholder = NSAttributedString(string: "링크", attributes: [NSAttributedString.Key.foregroundColor: UIColor.hintGray1]) clubNameTextField.attributedPlaceholder = NSAttributedString(string: "동아리 기수 / 파트", attributes: [NSAttributedString.Key.foregroundColor: UIColor.hintGray1]) - _ = requiredInfoList.map { + _ = requiredTextFieldList.map { $0.font = .hint $0.backgroundColor = .inputBlack2 $0.textColor = .white1 $0.layer.cornerRadius = 5 + $0.borderStyle = .none } - _ = optionalInfoList.map { + _ = optionalTextFieldList.map { $0.font = .hint $0.backgroundColor = .inputBlack2 $0.textColor = .white1 $0.layer.cornerRadius = 5 + $0.borderStyle = .none } } private func initUITextFieldList() { - requiredInfoList.append(contentsOf: [cardNameTextField, + requiredTextFieldList.append(contentsOf: [cardNameTextField, userNameTextField, birthTextField, mbtiTextField]) - optionalInfoList.append(contentsOf: [instagramTextField, + optionalTextFieldList.append(contentsOf: [instagramTextField, linkNameTextField, linkURLTextField, clubNameTextField]) @@ -116,8 +119,8 @@ extension FrontCardCreationCollectionViewCell { cardBackgroundSettingCollectionView.register(BackgroundCollectionViewCell.nib(), forCellWithReuseIdentifier: Const.Xib.backgroundCollectionViewCell) } private func textFieldDelegate() { - _ = requiredInfoList.map { $0.delegate = self } - _ = optionalInfoList.map { $0.delegate = self } + _ = requiredTextFieldList.map { $0.delegate = self } + _ = optionalTextFieldList.map { $0.delegate = self } } static func nib() -> UINib { return UINib(nibName: "FrontCardCreationCollectionViewCell", bundle: nil) @@ -126,9 +129,7 @@ extension FrontCardCreationCollectionViewCell { // MARK: - UICollectionViewDelegate -extension FrontCardCreationCollectionViewCell: UICollectionViewDelegate { - -} +extension FrontCardCreationCollectionViewCell: UICollectionViewDelegate { } // MARK: - UICollectionViewDataSource @@ -141,7 +142,7 @@ extension FrontCardCreationCollectionViewCell: UICollectionViewDataSource { guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: Const.Xib.backgroundCollectionViewCell, for: indexPath) as? BackgroundCollectionViewCell else { return UICollectionViewCell() } - cell.initCell(image: backgroundList[indexPath.row]) + cell.initCell(image: backgroundList[indexPath.item]) return cell } @@ -172,9 +173,21 @@ extension FrontCardCreationCollectionViewCell: UITextFieldDelegate { } func textFieldDidEndEditing(_ textField: UITextField) { if cardNameTextField.hasText && userNameTextField.hasText && birthTextField.hasText && mbtiTextField.hasText { - NotificationCenter.default.post(name: .frontCardtextFieldIsEmpty, object: false) + frontCardCreationDelegate?.frontCardCreation(requiredInfo: true) + frontCardCreationDelegate?.frontCardCreation(withRequired: [ + "defaultImage": String(0), + "title": cardNameTextField.text ?? "", + "name": userNameTextField.text ?? "", + "birthDate": birthTextField.text ?? "", + "mbti": mbtiTextField.text ?? "" + ], withOptional: [ + "instagram": instagramTextField.text ?? "", + "linkName": linkNameTextField.text ?? "", + "link": linkURLTextField.text ?? "", + "description": clubNameTextField.text ?? "" + ]) } else { - NotificationCenter.default.post(name: .frontCardtextFieldIsEmpty, object: true) + frontCardCreationDelegate?.frontCardCreation(requiredInfo: false) } textField.borderWidth = 0 } diff --git a/NADA-iOS-forRelease/Sources/Cells/CreationCard/RequiredFlavor/RequiredFlavorCollectionViewCell.swift b/NADA-iOS-forRelease/Sources/Cells/CreationCard/RequiredFlavor/RequiredFlavorCollectionViewCell.swift index ffb29845..777a6296 100644 --- a/NADA-iOS-forRelease/Sources/Cells/CreationCard/RequiredFlavor/RequiredFlavorCollectionViewCell.swift +++ b/NADA-iOS-forRelease/Sources/Cells/CreationCard/RequiredFlavor/RequiredFlavorCollectionViewCell.swift @@ -29,6 +29,8 @@ extension RequiredFlavorCollectionViewCell { flavorLabel.font = .hint flavorLabel.textColor = .hintGray1 + flavorLabel.lineBreakMode = .byTruncatingTail + flavorLabel.textAlignment = .center } func initCell(flavor: String) { flavorLabel.text = flavor @@ -36,4 +38,15 @@ extension RequiredFlavorCollectionViewCell { static func nib() -> UINib { return UINib(nibName: "RequiredFlavorCollectionViewCell", bundle: nil) } + override var isSelected: Bool { + didSet { + if isSelected { + bgView.backgroundColor = .white1 + flavorLabel.textColor = .black1 + } else { + bgView.backgroundColor = .inputBlack2 + flavorLabel.textColor = .hintGray1 + } + } + } } diff --git a/NADA-iOS-forRelease/Sources/Cells/CreationCard/RequiredFlavor/RequiredFlavorCollectionViewCell.xib b/NADA-iOS-forRelease/Sources/Cells/CreationCard/RequiredFlavor/RequiredFlavorCollectionViewCell.xib index 055bb820..d3383f92 100644 --- a/NADA-iOS-forRelease/Sources/Cells/CreationCard/RequiredFlavor/RequiredFlavorCollectionViewCell.xib +++ b/NADA-iOS-forRelease/Sources/Cells/CreationCard/RequiredFlavor/RequiredFlavorCollectionViewCell.xib @@ -1,9 +1,9 @@ - + - + @@ -22,7 +22,7 @@ + + diff --git a/NADA-iOS-forRelease/Sources/NetworkModel/Card/CardCreationRequest.swift b/NADA-iOS-forRelease/Sources/NetworkModel/Card/CardCreationRequest.swift index 475274da..a0fa8baf 100644 --- a/NADA-iOS-forRelease/Sources/NetworkModel/Card/CardCreationRequest.swift +++ b/NADA-iOS-forRelease/Sources/NetworkModel/Card/CardCreationRequest.swift @@ -10,15 +10,34 @@ import Foundation // MARK: - CardCreation struct CardCreationRequest: Codable { let userID: String + let frontCard: FrontCard + let backCard: BackCard + + enum CodingKeys: String, CodingKey { + case userID = "userId" + case frontCard, backCard + } +} + +// MARK: - FrontCard + +struct FrontCard: Codable { let defaultImage: Int let title, name, birthDate, mbti: String let instagram, linkName, link, description: String + + enum CodingKeys: String, CodingKey { + case defaultImage, title, name, birthDate, mbti, instagram, linkName, link, description + } +} + +// MARK: - BackCard + +struct BackCard: Codable { let isMincho, isSoju, isBoomuk, isSauced: Bool let oneQuestion, oneAnswer, twoQuestion, twoAnswer: String enum CodingKeys: String, CodingKey { - case userID = "userId" - case defaultImage, title, name, birthDate, mbti, instagram, linkName, link, description case isMincho, isSoju, isBoomuk, isSauced, oneQuestion, oneAnswer, twoQuestion, twoAnswer } } diff --git a/NADA-iOS-forRelease/Sources/NetworkModel/Group/CardListRequest.swift b/NADA-iOS-forRelease/Sources/NetworkModel/Group/CardListInGroupRequest.swift similarity index 82% rename from NADA-iOS-forRelease/Sources/NetworkModel/Group/CardListRequest.swift rename to NADA-iOS-forRelease/Sources/NetworkModel/Group/CardListInGroupRequest.swift index 41e54539..1252e3a1 100644 --- a/NADA-iOS-forRelease/Sources/NetworkModel/Group/CardListRequest.swift +++ b/NADA-iOS-forRelease/Sources/NetworkModel/Group/CardListInGroupRequest.swift @@ -7,7 +7,7 @@ import Foundation -struct CardListRequest: Codable { +struct CardListInGroupRequest: Codable { var userId: String var groupId: Int var offset: Int diff --git a/NADA-iOS-forRelease/Sources/NetworkService/Card/CardAPI.swift b/NADA-iOS-forRelease/Sources/NetworkService/Card/CardAPI.swift index 673ebdbe..0f3c75bf 100644 --- a/NADA-iOS-forRelease/Sources/NetworkService/Card/CardAPI.swift +++ b/NADA-iOS-forRelease/Sources/NetworkService/Card/CardAPI.swift @@ -14,14 +14,14 @@ public class CardAPI { public init() { } - func getCardDetailFetch(cardID: String, completion: @escaping (NetworkResult) -> Void) { + func cardDetailFetch(cardID: String, completion: @escaping (NetworkResult) -> Void) { cardProvider.request(.cardDetailFetch(cardID: cardID)) { (result) in switch result { case .success(let response): let statusCode = response.statusCode let data = response.data - let networkResult = self.judgeGetCardDetailFetchStatus(by: statusCode, data) + let networkResult = self.judgeCardDetailFetchStatus(by: statusCode, data) completion(networkResult) case .failure(let err): @@ -30,14 +30,14 @@ public class CardAPI { } } - func postCardCreation(request: CardCreationRequest, image: UIImage, completion: @escaping (NetworkResult) -> Void) { + func cardCreation(request: CardCreationRequest, image: UIImage, completion: @escaping (NetworkResult) -> Void) { cardProvider.request(.cardCreation(request: request, image: image)) { (result) in switch result { case .success(let response): let statusCode = response.statusCode let data = response.data - - let networkResult = self.judgeGetCardDetailFetchStatus(by: statusCode, data) + + let networkResult = self.judgeCardCreationStatus(by: statusCode, data) completion(networkResult) case .failure(let err): @@ -47,14 +47,14 @@ public class CardAPI { } } - func getCardListFetch(userID: String, isList: Bool, offset: Int, completion: @escaping (NetworkResult) -> Void) { + func cardListFetch(userID: String, isList: Bool, offset: Int, completion: @escaping (NetworkResult) -> Void) { cardProvider.request(.cardListFetch(userID: userID, isList: isList, offset: offset)) { (result) in switch result { case .success(let response): let statusCode = response.statusCode let data = response.data - let networkResult = self.judgeGetCardListFetchStatus(by: statusCode, data) + let networkResult = self.judgeCardListFetchStatus(by: statusCode, data) completion(networkResult) case .failure(let err): @@ -63,14 +63,14 @@ public class CardAPI { } } - func putCardListEdit(request: CardListEditRequest, completion: @escaping (NetworkResult) -> Void) { + func cardListEdit(request: CardListEditRequest, completion: @escaping (NetworkResult) -> Void) { cardProvider.request(.cardListEdit(request: request)) { (result) in switch result { case .success(let response): let statusCode = response.statusCode let data = response.data - let networkResult = self.judgeGetCardDetailFetchStatus(by: statusCode, data) + let networkResult = self.judgeStatus(by: statusCode, data) completion(networkResult) case .failure(let err): @@ -79,14 +79,14 @@ public class CardAPI { } } - func deleteCard(cardID: String, completion: @escaping (NetworkResult) -> Void) { + func cardDelete(cardID: String, completion: @escaping (NetworkResult) -> Void) { cardProvider.request(.cardDelete(cardID: cardID)) { (result) in switch result { case .success(let response): let statusCode = response.statusCode let data = response.data - let networkResult = self.judgeGetCardDetailFetchStatus(by: statusCode, data) + let networkResult = self.judgeStatus(by: statusCode, data) completion(networkResult) case .failure(let err): @@ -95,7 +95,7 @@ public class CardAPI { } } - private func judgeGetCardDetailFetchStatus(by statusCode: Int, _ data: Data) -> NetworkResult { + private func judgeCardDetailFetchStatus(by statusCode: Int, _ data: Data) -> NetworkResult { let decoder = JSONDecoder() guard let decodedData = try? decoder.decode(GenericResponse.self, from: data) @@ -105,7 +105,7 @@ public class CardAPI { switch statusCode { case 200: - return .success(decodedData.data) + return .success(decodedData.data ?? "None-Data") case 400..<500: return .requestErr(decodedData.msg) case 500: @@ -115,7 +115,7 @@ public class CardAPI { } } - private func judgeGetCardListFetchStatus(by statusCode: Int, _ data: Data) -> NetworkResult { + private func judgeCardListFetchStatus(by statusCode: Int, _ data: Data) -> NetworkResult { let decoder = JSONDecoder() guard let decodedData = try? decoder.decode(GenericResponse.self, from: data) @@ -125,7 +125,44 @@ public class CardAPI { switch statusCode { case 200: - return .success(decodedData.data) + return .success(decodedData.data ?? "None-Data") + case 400..<500: + return .requestErr(decodedData.msg) + case 500: + return .serverErr + default: + return .networkFail + } + } + + private func judgeCardCreationStatus(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 201: + return .success(decodedData.data ?? "None-Data") + case 400..<500: + return .requestErr(decodedData.msg) + case 500: + return .serverErr + default: + return .networkFail + } + } + + private func judgeStatus(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.msg) case 400..<500: return .requestErr(decodedData.msg) case 500: diff --git a/NADA-iOS-forRelease/Sources/NetworkService/Card/CardService.swift b/NADA-iOS-forRelease/Sources/NetworkService/Card/CardService.swift index ec193766..22cf9886 100644 --- a/NADA-iOS-forRelease/Sources/NetworkService/Card/CardService.swift +++ b/NADA-iOS-forRelease/Sources/NetworkService/Card/CardService.swift @@ -39,12 +39,10 @@ extension CardService: TargetType { var method: Moya.Method { switch self { - case .cardDetailFetch: + case .cardDetailFetch, .cardListFetch: return .get case .cardCreation: return .post - case .cardListFetch: - return .get case .cardListEdit: return .put case .cardDelete: @@ -58,7 +56,7 @@ extension CardService: TargetType { var task: Task { switch self { - case .cardDetailFetch: + case .cardDetailFetch, .cardDelete: return .requestPlain case .cardCreation(let request, let image): @@ -66,69 +64,64 @@ extension CardService: TargetType { let userIDData = request.userID.data(using: .utf8) ?? Data() multiPartData.append(MultipartFormData(provider: .data(userIDData), name: "card.userId")) - let defaultImageData = "\(request.defaultImage)".data(using: .utf8) ?? Data() +// let defaultImageData = "\(request.defaultImage)".data(using: .utf8) ?? Data() + let defaultImageData = Int(request.frontCard.defaultImage).description.data(using: .utf8) ?? Data() multiPartData.append(MultipartFormData(provider: .data(defaultImageData), name: "card.defaultImage")) - let titleData = request.title.data(using: .utf8) ?? Data() + let titleData = request.frontCard.title.data(using: .utf8) ?? Data() multiPartData.append(MultipartFormData(provider: .data(titleData), name: "card.title")) - let nameData = request.name.data(using: .utf8) ?? Data() + let nameData = request.frontCard.name.data(using: .utf8) ?? Data() multiPartData.append(MultipartFormData(provider: .data(nameData), name: "card.name")) - let birthDateData = request.birthDate.data(using: .utf8) ?? Data() + let birthDateData = request.frontCard.birthDate.data(using: .utf8) ?? Data() multiPartData.append(MultipartFormData(provider: .data(birthDateData), name: "card.birthDate")) - let mbtiData = request.mbti.data(using: .utf8) ?? Data() + let mbtiData = request.frontCard.mbti.data(using: .utf8) ?? Data() multiPartData.append(MultipartFormData(provider: .data(mbtiData), name: "card.mbti")) - let instagramData = request.instagram.data(using: .utf8) ?? Data() + let instagramData = request.frontCard.instagram.data(using: .utf8) ?? Data() multiPartData.append(MultipartFormData(provider: .data(instagramData), name: "card.instagram")) - let linkNameData = request.linkName.data(using: .utf8) ?? Data() + let linkNameData = request.frontCard.linkName.data(using: .utf8) ?? Data() multiPartData.append(MultipartFormData(provider: .data(linkNameData), name: "card.linkName")) - let linkData = request.link.data(using: .utf8) ?? Data() + let linkData = request.frontCard.link.data(using: .utf8) ?? Data() multiPartData.append(MultipartFormData(provider: .data(linkData), name: "card.link")) - let descriptionData = request.description.data(using: .utf8) ?? Data() + let descriptionData = request.frontCard.description.data(using: .utf8) ?? Data() multiPartData.append(MultipartFormData(provider: .data(descriptionData), name: "card.description")) - let isMinchoData = Bool(request.isMincho).description.data(using: .utf8) ?? Data() + let isMinchoData = Bool(request.backCard.isMincho).description.data(using: .utf8) ?? Data() multiPartData.append(MultipartFormData(provider: .data(isMinchoData), name: "card.isMincho")) - let isSojuData = Bool(request.isSoju).description.data(using: .utf8) ?? Data() + let isSojuData = Bool(request.backCard.isSoju).description.data(using: .utf8) ?? Data() multiPartData.append(MultipartFormData(provider: .data(isSojuData), name: "card.isSoju")) - let isBoomukData = Bool(request.isBoomuk).description.data(using: .utf8) ?? Data() + let isBoomukData = Bool(request.backCard.isBoomuk).description.data(using: .utf8) ?? Data() multiPartData.append(MultipartFormData(provider: .data(isBoomukData), name: "card.isBoomuk")) - let isSaucedData = Bool(request.isSauced).description.data(using: .utf8) ?? Data() + let isSaucedData = Bool(request.backCard.isSauced).description.data(using: .utf8) ?? Data() multiPartData.append(MultipartFormData(provider: .data(isSaucedData), name: "card.isSauced")) - let oneQuestionData = request.oneQuestion.data(using: .utf8) ?? Data() + let oneQuestionData = request.backCard.oneQuestion.data(using: .utf8) ?? Data() multiPartData.append(MultipartFormData(provider: .data(oneQuestionData), name: "card.oneQuestion")) - let oneAnswerData = request.oneAnswer.data(using: .utf8) ?? Data() + let oneAnswerData = request.backCard.oneAnswer.data(using: .utf8) ?? Data() multiPartData.append(MultipartFormData(provider: .data(oneAnswerData), name: "card.oneAnswer")) - let twoQuestionData = request.twoQuestion.data(using: .utf8) ?? Data() + let twoQuestionData = request.backCard.twoQuestion.data(using: .utf8) ?? Data() multiPartData.append(MultipartFormData(provider: .data(twoQuestionData), name: "card.twoQuestion")) - let twoAnswerData = request.twoAnswer.data(using: .utf8) ?? Data() + let twoAnswerData = request.backCard.twoAnswer.data(using: .utf8) ?? Data() multiPartData.append(MultipartFormData(provider: .data(twoAnswerData), name: "card.twoAnswer")) let imageData = MultipartFormData(provider: .data(image.pngData() ?? Data()), name: "image", fileName: "image", mimeType: "image/png") multiPartData.append(imageData) return .uploadMultipart(multiPartData) - case .cardListFetch(let mainListRequest): - return .requestParameters(parameters: ["userId": mainListRequest.userID, - "list": mainListRequest.isList, - "offset": mainListRequest.offset + case .cardListFetch(let userID, let isList, let offset): + return .requestParameters(parameters: ["userId": userID, + "list": isList ?? false, + "offset": offset ?? "" ], encoding: URLEncoding.queryString) case .cardListEdit(let requestModel): return .requestJSONEncodable(requestModel) - case .cardDelete: - return .requestPlain } } var headers: [String: String]? { switch self { - case .cardDetailFetch: + case .cardDetailFetch, .cardListFetch, .cardDelete: return .none case .cardCreation: return ["Content-Type": "multipart/form-data"] - case .cardListFetch: - return ["Content-Type": "application/json"] case .cardListEdit: return ["Content-Type": "application/json"] - case .cardDelete: - return .none } } } diff --git a/NADA-iOS-forRelease/Sources/NetworkService/Group/GroupAPI.swift b/NADA-iOS-forRelease/Sources/NetworkService/Group/GroupAPI.swift index d2fbbbd0..1edd3678 100644 --- a/NADA-iOS-forRelease/Sources/NetworkService/Group/GroupAPI.swift +++ b/NADA-iOS-forRelease/Sources/NetworkService/Group/GroupAPI.swift @@ -15,14 +15,14 @@ public class GroupAPI { public init() { } - func putChangeGroup(request: ChangeGroupRequest, completion: @escaping (NetworkResult) -> Void) { + func changeCardGroup(request: ChangeGroupRequest, completion: @escaping (NetworkResult) -> Void) { groupProvider.request(.changeCardGroup(request: request)) { (result) in switch result { case .success(let response): let statusCode = response.statusCode let data = response.data - - let networkResult = self.judgePutChangeGroupStatus(by: statusCode, data) + + let networkResult = self.judgeStatus(by: statusCode, data) completion(networkResult) case .failure(let err): @@ -31,14 +31,14 @@ public class GroupAPI { } } - func deleteCardInGroupDelete(groupID: Int, cardID: String, completion: @escaping (NetworkResult) -> Void) { - groupProvider.request(.cardInGroupDelete(groupID: groupID, cardID: cardID)) { (result) in + func cardDeleteInGroup(groupID: Int, cardID: String, completion: @escaping (NetworkResult) -> Void) { + groupProvider.request(.cardDeleteInGroup(groupID: groupID, cardID: cardID)) { (result) in switch result { case .success(let response): let statusCode = response.statusCode let data = response.data - - let networkResult = self.judgePutChangeGroupStatus(by: statusCode, data) + + let networkResult = self.judgeStatus(by: statusCode, data) completion(networkResult) case .failure(let err): @@ -47,14 +47,14 @@ public class GroupAPI { } } - func getGroupListFetch(userID: String, completion: @escaping (NetworkResult) -> Void) { + func groupListFetch(userID: String, completion: @escaping (NetworkResult) -> Void) { groupProvider.request(.groupListFetch(userID: userID)) { (result) in switch result { case .success(let response): let statusCode = response.statusCode let data = response.data - let networkResult = self.judgeStatus(by: statusCode, data) + let networkResult = self.judgeGroupListFetchStatus(by: statusCode, data) completion(networkResult) case .failure(let err): @@ -63,7 +63,7 @@ public class GroupAPI { } } - func deleteGroup(groupID: Int, completion: @escaping (NetworkResult) -> Void) { + func groupDelete(groupID: Int, completion: @escaping (NetworkResult) -> Void) { groupProvider.request(.groupDelete(groupID: groupID)) { (result) in switch result { case .success(let response): @@ -79,7 +79,7 @@ public class GroupAPI { } } - func postGroupAdd(groupRequest: GroupAddRequest, completion: @escaping (NetworkResult) -> Void) { + func groupAdd(groupRequest: GroupAddRequest, completion: @escaping (NetworkResult) -> Void) { groupProvider.request(.groupAdd(groupRequest: groupRequest)) { (result) in switch result { case .success(let response): @@ -95,7 +95,7 @@ public class GroupAPI { } } - func putGroupEdit(groupRequest: GroupEditRequest, completion: @escaping (NetworkResult) -> Void) { + func groupEdit(groupRequest: GroupEditRequest, completion: @escaping (NetworkResult) -> Void) { groupProvider.request(.groupEdit(groupRequest: groupRequest)) { (result) in switch result { case .success(let response): @@ -111,7 +111,7 @@ public class GroupAPI { } } - func postCardAddInGroup(cardRequest: CardAddInGroupRequest, completion: @escaping (NetworkResult) -> Void) { + func cardAddInGroup(cardRequest: CardAddInGroupRequest, completion: @escaping (NetworkResult) -> Void) { groupProvider.request(.cardAddInGroup(cardRequest: cardRequest)) { (result) in switch result { case .success(let response): @@ -127,14 +127,14 @@ public class GroupAPI { } } - func getCardListFetch(cardListRequest: CardListRequest, completion: @escaping (NetworkResult) -> Void) { - groupProvider.request(.cardListFetch(cardListRequest: cardListRequest)) { (result) in + func cardListFetchInGroup(cardListInGroupRequest: CardListInGroupRequest, completion: @escaping (NetworkResult) -> Void) { + groupProvider.request(.cardListFetchInGroup(cardListInGroupRequest: cardListInGroupRequest)) { (result) in switch result { case .success(let response): let statusCode = response.statusCode let data = response.data - let networkResult = self.judgeGetCardListStatus(by: statusCode, data) + let networkResult = self.judgeCardListFetchInGroupStatus(by: statusCode, data) completion(networkResult) case .failure(let err): @@ -143,17 +143,17 @@ public class GroupAPI { } } - private func judgeStatus(by statusCode: Int, _ data: Data) -> NetworkResult { - + private func judgeGroupListFetchStatus(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.data) + return .success(decodedData.data ?? "None-Data") case 400..<500: return .requestErr(decodedData.msg) case 500: @@ -163,7 +163,7 @@ public class GroupAPI { } } - private func judgeGetCardListStatus(by statusCode: Int, _ data: Data) -> NetworkResult { + private func judgeCardListFetchInGroupStatus(by statusCode: Int, _ data: Data) -> NetworkResult { let decoder = JSONDecoder() guard let decodedData = try? decoder.decode(GenericResponse.self, from: data) @@ -173,7 +173,7 @@ public class GroupAPI { switch statusCode { case 200: - return .success(decodedData.data) + return .success(decodedData.data ?? "None-Data") case 400..<500: return .requestErr(decodedData.msg) case 500: @@ -183,17 +183,15 @@ public class GroupAPI { } } - private func judgePutChangeGroupStatus(by statusCode: Int, _ data: Data) -> NetworkResult { + private func judgeStatus(by statusCode: Int, _ data: Data) -> NetworkResult { let decoder = JSONDecoder() - guard let decodedData = try? decoder.decode(GenericResponse.self, from: data) - else { - return .pathErr - } + guard let decodedData = try? decoder.decode(GenericResponse.self, from: data) + else { return .pathErr } switch statusCode { case 200: - return .success(decodedData.data) + return .success(decodedData.msg) case 400..<500: return .requestErr(decodedData.msg) case 500: diff --git a/NADA-iOS-forRelease/Sources/NetworkService/Group/GroupService.swift b/NADA-iOS-forRelease/Sources/NetworkService/Group/GroupService.swift index d7f91afc..0d32a0ec 100644 --- a/NADA-iOS-forRelease/Sources/NetworkService/Group/GroupService.swift +++ b/NADA-iOS-forRelease/Sources/NetworkService/Group/GroupService.swift @@ -14,9 +14,9 @@ enum GroupService { case groupAdd(groupRequest: GroupAddRequest) case groupEdit(groupRequest: GroupEditRequest) case cardAddInGroup(cardRequest: CardAddInGroupRequest) - case cardListFetch(cardListRequest: CardListRequest) + case cardListFetchInGroup(cardListInGroupRequest: CardListInGroupRequest) case changeCardGroup(request: ChangeGroupRequest) - case cardInGroupDelete(groupID: Int, cardID: String) + case cardDeleteInGroup(groupID: Int, cardID: String) } extension GroupService: TargetType { @@ -36,33 +36,25 @@ extension GroupService: TargetType { return "/group" case .cardAddInGroup: return "/groups/card" - case .cardListFetch: + case .cardListFetchInGroup: return "/groups/cards" case .changeCardGroup: return "/groups/card" - case .cardInGroupDelete(let groupID, let cardID): + case .cardDeleteInGroup(let groupID, let cardID): return "/group/\(groupID)/\(cardID)" } } var method: Moya.Method { switch self { - case .groupListFetch: + case .groupListFetch, .cardListFetchInGroup: return .get - case .groupDelete: + case .groupDelete, .cardDeleteInGroup: return .delete - case .groupAdd: + case .groupAdd, .cardAddInGroup: return .post - case .groupEdit: + case .groupEdit, .changeCardGroup: return .put - case .cardAddInGroup: - return .post - case .cardListFetch: - return .get - case .changeCardGroup: - return .put - case .cardInGroupDelete: - return .delete } } @@ -73,8 +65,9 @@ extension GroupService: TargetType { var task: Task { switch self { case .groupListFetch(let userID): - return .requestParameters(parameters: ["userId": userID], encoding: URLEncoding.queryString) - case .groupDelete: + return .requestParameters(parameters: ["userId": userID], + encoding: URLEncoding.queryString) + case .groupDelete, .cardDeleteInGroup: return .requestPlain case .groupAdd(let groupRequest): return .requestJSONEncodable(groupRequest) @@ -82,34 +75,20 @@ extension GroupService: TargetType { return .requestJSONEncodable(groupRequest) case .cardAddInGroup(let cardRequest): return .requestJSONEncodable(cardRequest) - case .cardListFetch(let cardListRequest): - return .requestParameters(parameters: ["userId": cardListRequest.userId, - "groupId": cardListRequest.groupId, - "offset": cardListRequest.offset], encoding: URLEncoding.queryString) + case .cardListFetchInGroup(let cardListInGroupRequest): + return .requestParameters(parameters: ["userId": cardListInGroupRequest.userId, + "groupId": cardListInGroupRequest.groupId, + "offset": cardListInGroupRequest.offset], encoding: URLEncoding.queryString) case .changeCardGroup(let requestModel): return .requestJSONEncodable(requestModel) - case .cardInGroupDelete: - return .requestPlain } } var headers: [String: String]? { switch self { - case .groupListFetch: - return ["Content-Type": "application/json"] - case .groupDelete: - return ["Content-Type": "application/json"] - case .groupAdd: - return ["Content-Type": "application/json"] - case .groupEdit: - return ["Content-Type": "application/json"] - case .cardAddInGroup: - return ["Content-Type": "application/json"] - case .cardListFetch: - return ["Content-Type": "application/json"] - case .changeCardGroup: - return ["Content-Type": "application/json"] - case .cardInGroupDelete: + case .groupListFetch, .cardListFetchInGroup, .groupDelete, .cardDeleteInGroup: + return .none + case .groupAdd, .groupEdit, .cardAddInGroup, .changeCardGroup: return ["Content-Type": "application/json"] } } diff --git a/NADA-iOS-forRelease/Sources/NetworkService/User/UserAPI.swift b/NADA-iOS-forRelease/Sources/NetworkService/User/UserAPI.swift index 7b182e7c..ae23edda 100644 --- a/NADA-iOS-forRelease/Sources/NetworkService/User/UserAPI.swift +++ b/NADA-iOS-forRelease/Sources/NetworkService/User/UserAPI.swift @@ -15,14 +15,14 @@ public class UserAPI { public init() { } - func getUserIDFetch(userID: String, completion: @escaping (NetworkResult) -> Void) { + func userIDFetch(userID: String, completion: @escaping (NetworkResult) -> Void) { userProvider.request(.userIDFetch(userID: userID)) { (result) in switch result { case .success(let response): let statusCode = response.statusCode let data = response.data - let networkResult = self.judgeStatus(by: statusCode, data) + let networkResult = self.judgeUserIDFetchStatus(by: statusCode, data) completion(networkResult) case .failure(let err): @@ -31,14 +31,14 @@ public class UserAPI { } } - func getUserTokenFetch(userID: String, completion: @escaping (NetworkResult) -> Void) { + func userTokenFetch(userID: String, completion: @escaping (NetworkResult) -> Void) { userProvider.request(.userTokenFetch(userID: userID)) { (result) in switch result { case .success(let response): let statusCode = response.statusCode let data = response.data - let networkResult = self.judgeGetUserTokenFetchStatus(by: statusCode, data) + let networkResult = self.judgeUserTokenFetchStatus(by: statusCode, data) completion(networkResult) case .failure(let err): @@ -47,14 +47,14 @@ public class UserAPI { } } - func postUserSignUp(request: User, completion: @escaping (NetworkResult) -> Void) { + func userSignUp(request: User, completion: @escaping (NetworkResult) -> Void) { userProvider.request(.userSignUp(request: request)) { (result) in switch result { case .success(let response): let statusCode = response.statusCode let data = response.data - let networkResult = self.judgeStatus(by: statusCode, data) + let networkResult = self.judgeUserIDFetchStatus(by: statusCode, data) completion(networkResult) case .failure(let err): @@ -63,7 +63,7 @@ public class UserAPI { } } - func deleteUser(userID: String, completion: @escaping (NetworkResult) -> Void) { + func userDelete(userID: String, completion: @escaping (NetworkResult) -> Void) { userProvider.request(.userDelete(userID: userID)) { (result) in switch result { case .success(let response): @@ -79,7 +79,7 @@ public class UserAPI { } } - private func judgeStatus(by statusCode: Int, _ data: Data) -> NetworkResult { + private func judgeUserIDFetchStatus(by statusCode: Int, _ data: Data) -> NetworkResult { let decoder = JSONDecoder() guard let decodedData = try? decoder.decode(GenericResponse.self, from: data) @@ -89,7 +89,7 @@ public class UserAPI { switch statusCode { case 200: - return .success(decodedData.data) + return .success(decodedData.data ?? "None-Data") case 400..<500: return .requestErr(decodedData.msg) case 500: @@ -99,7 +99,7 @@ public class UserAPI { } } - private func judgeGetUserTokenFetchStatus(by statusCode: Int, _ data: Data) -> NetworkResult { + private func judgeUserTokenFetchStatus(by statusCode: Int, _ data: Data) -> NetworkResult { let decoder = JSONDecoder() guard let decodedData = try? decoder.decode(GenericResponse.self, from: data) @@ -109,7 +109,24 @@ public class UserAPI { switch statusCode { case 200: - return .success(decodedData.data) + return .success(decodedData.data ?? "None-Data") + case 400..<500: + return .requestErr(decodedData.msg) + case 500: + return .serverErr + default: + return .networkFail + } + } + + private func judgeStatus(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.msg) case 400..<500: return .requestErr(decodedData.msg) case 500: diff --git a/NADA-iOS-forRelease/Sources/NetworkService/User/UserSevice.swift b/NADA-iOS-forRelease/Sources/NetworkService/User/UserSevice.swift index a029ef99..b60f6c80 100644 --- a/NADA-iOS-forRelease/Sources/NetworkService/User/UserSevice.swift +++ b/NADA-iOS-forRelease/Sources/NetworkService/User/UserSevice.swift @@ -35,9 +35,7 @@ extension UserSevice: TargetType { var method: Moya.Method { switch self { - case .userIDFetch: - return .get - case .userTokenFetch: + case .userIDFetch, .userTokenFetch: return .get case .userSignUp: return .post @@ -52,27 +50,19 @@ extension UserSevice: TargetType { var task: Task { switch self { - case .userIDFetch: - return .requestPlain - case .userTokenFetch: + case .userIDFetch, .userTokenFetch, .userDelete: return .requestPlain case .userSignUp(let request): return .requestJSONEncodable(request) - case .userDelete: - return .requestPlain } } var headers: [String: String]? { switch self { - case .userIDFetch: - return ["Content-Type": "application/json"] - case .userTokenFetch: - return ["Content-Type": "application/json"] + case .userIDFetch, .userTokenFetch, .userDelete: + return .none case .userSignUp: return ["Content-Type": "application/json"] - case .userDelete: - return ["Content-Type": "application/json"] } } } diff --git a/NADA-iOS-forRelease/Sources/NetworkService/Util/UtilAPI.swift b/NADA-iOS-forRelease/Sources/NetworkService/Util/UtilAPI.swift index 9b423906..7bcf250e 100644 --- a/NADA-iOS-forRelease/Sources/NetworkService/Util/UtilAPI.swift +++ b/NADA-iOS-forRelease/Sources/NetworkService/Util/UtilAPI.swift @@ -7,95 +7,3 @@ import Foundation import Moya - -//public class UtilAPI { -// -// static let shared = UtilAPI() -// var popoProvider = MoyaProvider(plugins: [MoyaLoggerPlugin()]) -// -// public init() { } -// -// func getTodayFetch(popoID: Int, dayID: Int, completion: @escaping (NetworkResult) -> Void) { -// popoProvider.request(.todayFetch(popoID: popoID, dayID: dayID)) { (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) -// } -// } -// } -// -// func patchTodayPatch(popoID: Int, dayID: Int, contentsID: Int, contents: String, completion: @escaping (NetworkResult) -> Void) { -// popoProvider.request(.todayPatch(popoID: popoID, dayID: dayID, contentsID: contentsID, contents: contents)) { (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) -// } -// } -// } -// -// func postNewPopo(popoId: Int, contents: NewPopo, image: UIImage, completion: @escaping (NetworkResult) -> Void) { -// popoProvider.request(.createTodayPopo(popoId: popoId, contents: contents, image: image)) { (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) -// } -// } -// } -// -// func patchTodayImage(popoId: Int, dayId: Int, image: UIImage, completion: @escaping (NetworkResult) -> Void) { -// popoProvider.request(.patchTodayImage(popoId: popoId, dayId: dayId, image: image)) { (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() -// guard let decodedData = try? decoder.decode(GenericResponse.self, from: data) -// else { -// return .pathErr -// } -// -// switch statusCode { -// case 200: -// return .success(decodedData.data) -// case 400..<500: -// return .requestErr(decodedData.message) -// case 500: -// return .serverErr -// default: -// return .networkFail -// } -// } -//} diff --git a/NADA-iOS-forRelease/Sources/NetworkService/Util/UtilService.swift b/NADA-iOS-forRelease/Sources/NetworkService/Util/UtilService.swift index 2ab40a34..112bb255 100644 --- a/NADA-iOS-forRelease/Sources/NetworkService/Util/UtilService.swift +++ b/NADA-iOS-forRelease/Sources/NetworkService/Util/UtilService.swift @@ -7,106 +7,3 @@ import Foundation import Moya - -//enum UtilService { -// case todayFetch(popoID: Int, dayID: Int) -// case todayPatch(popoID: Int, dayID: Int, contentsID: Int, contents: String) -// -// case createTodayPopo(popoId: Int, contents: NewPopo, image: UIImage) -// case patchTodayImage(popoId: Int, dayId: Int, image: UIImage) -//} -// -//extension UtilService: TargetType { -// var baseURL: URL { -// return URL(string: Const.URL.baseURL)! -// } -// -// var path: String { -// switch self { -// case .todayFetch(let popoID, let dayID): -// return "/\(popoID)/tracker/\(dayID)" -// case .todayPatch(let popoID, let dayID, let contentsID, _): -// return "/\(popoID)/tracker/\(dayID)/contents/\(contentsID)" -// case .createTodayPopo(let popoId, _, _): -// return "/\(popoId)/tracker" -// case .patchTodayImage(let popoId, let dayId, _): -// return "/\(popoId)/tracker/\(dayId)/image" -// } -// } -// -// var method: Moya.Method { -// switch self { -// case .todayFetch: -// return .get -// case .todayPatch: -// return .patch -// case .createTodayPopo(_, _, _): -// return .post -// case .patchTodayImage(_, _, _): -// return .patch -// } -// } -// -// var task: Task { -// switch self { -// case .todayFetch: -// return .requestPlain -// case .todayPatch(_, _, let contentsID, let contents): -// return .requestParameters(parameters: [ -// "id": contentsID, -// "contents": contents -// ], encoding: JSONEncoding.default) -// -// case .createTodayPopo(let popoId, let contents, let image): -// -// var options: [[String: Any]] = [] -// -// var multiPartFormData: [Moya.MultipartFormData] = [] -// -// let idJsondata = "\(popoId)".data(using: String.Encoding.utf8) ?? Data() -// multiPartFormData.append(MultipartFormData(provider: .data(idJsondata), name: "popoId")) -// -// let dateJsondata = contents.date.data(using: String.Encoding.utf8) ?? Data() -// multiPartFormData.append(MultipartFormData(provider: .data(dateJsondata), name: "date")) -// -// for (idx, option) in contents.options.enumerated() { -// -// let optionIdJsondata = "\(option.optionId)".data(using: String.Encoding.utf8) ?? Data() -// multiPartFormData.append(MultipartFormData(provider: .data(optionIdJsondata), name: "options[\(idx)].optionId")) -// -// let optionContentsJsondata = "\(option.contents)".data(using: String.Encoding.utf8) ?? Data() -// multiPartFormData.append(MultipartFormData(provider: .data(optionContentsJsondata), name: "options[\(idx)].contents")) -// -// } -// -// let imageData = image.pngData() -// let imgData = MultipartFormData(provider: .data(imageData!), name: "image", fileName: "image", mimeType: "image/png") -// multiPartFormData.append(imgData) -// -// return .uploadMultipart(multiPartFormData) -// case .patchTodayImage(_, _, let image): -// let imageData = image.pngData() -// let imgData = MultipartFormData(provider: .data(imageData!), name: "image", fileName: "image", mimeType: "image/png") -// return .uploadMultipart([imgData]) -// } -// } -// -// var headers: [String: String]? { -// switch self { -// case .todayFetch: -// return .none -// case .todayPatch: -// return ["Content-Type": "application/json"] -// case .createTodayPopo(_, _, _): -// return [ -// "Content-Type": "multipart/form-data", -// "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjEsImVtYWlsIjoidGVzdEB0ZXN0LmNvbSIsImlhdCI6MTYyOTExMjcyNCwiZXhwIjoxNjMxNzA0NzI0LCJpc3MiOiJmb3J0aWNlIn0.CkrwwZe7sJ9RxLbkbbeIz-w4fs2AkQ-FrERDcZNQI2E" -// ] -// case .patchTodayImage: -// return [ -// "Content-Type": "multipart/form-data", -// "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjEsImVtYWlsIjoidGVzdEB0ZXN0LmNvbSIsImlhdCI6MTYyOTExMjcyNCwiZXhwIjoxNjMxNzA0NzI0LCJpc3MiOiJmb3J0aWNlIn0.CkrwwZe7sJ9RxLbkbbeIz-w4fs2AkQ-FrERDcZNQI2E" -// ] -// } -// } -//} diff --git a/NADA-iOS-forRelease/Sources/Protocols/BackCardCreationDelegate.swift b/NADA-iOS-forRelease/Sources/Protocols/BackCardCreationDelegate.swift new file mode 100644 index 00000000..5d39ac43 --- /dev/null +++ b/NADA-iOS-forRelease/Sources/Protocols/BackCardCreationDelegate.swift @@ -0,0 +1,13 @@ +// +// BackCardCreationDelegate.swift +// NADA-iOS-forRelease +// +// Created by kimhyungyu on 2021/08/08. +// + +import Foundation + +protocol BackCardCreationDelegate: AnyObject { + func backCardCreation(requiredInfo valid: Bool) + func backCardCreation(withRequired requiredInfo: [String: Bool], withOptional optionalInfo: [String: String] ) +} diff --git a/NADA-iOS-forRelease/Sources/Protocols/FrontCardCreationDelegate.swift b/NADA-iOS-forRelease/Sources/Protocols/FrontCardCreationDelegate.swift new file mode 100644 index 00000000..9d6769bc --- /dev/null +++ b/NADA-iOS-forRelease/Sources/Protocols/FrontCardCreationDelegate.swift @@ -0,0 +1,13 @@ +// +// FrontCardDelegate.swift +// NADA-iOS-forRelease +// +// Created by kimhyungyu on 2021/11/09. +// + +import Foundation + +protocol FrontCardCreationDelegate: AnyObject { + func frontCardCreation(requiredInfo valid: Bool) + func frontCardCreation(withRequired requiredInfo: [String: String], withOptional optionalInfo: [String: String] ) +} diff --git a/NADA-iOS-forRelease/Sources/Protocols/TempProtocols.swift b/NADA-iOS-forRelease/Sources/Protocols/TempProtocols.swift deleted file mode 100644 index 518f1df9..00000000 --- a/NADA-iOS-forRelease/Sources/Protocols/TempProtocols.swift +++ /dev/null @@ -1,8 +0,0 @@ -// -// TempProtocols.swift -// NADA-iOS-forRelease -// -// Created by kimhyungyu on 2021/08/08. -// - -import Foundation diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/CardCreation/CardCreationViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/CardCreation/CardCreationViewController.swift index 6fcac666..abaf20a4 100644 --- a/NADA-iOS-forRelease/Sources/ViewControllers/CardCreation/CardCreationViewController.swift +++ b/NADA-iOS-forRelease/Sources/ViewControllers/CardCreation/CardCreationViewController.swift @@ -6,17 +6,40 @@ // import UIKit -import KakaoSDKCommon class CardCreationViewController: UIViewController { // MARK: - Properties + enum ButtonState { + case enable + case disable + } + + var completeButtonIsEnabled: ButtonState = .disable { + didSet { + if completeButtonIsEnabled == .disable { + completeButton.isEnabled = false + if #available(iOS 15.0, *) { + completeButton.setNeedsUpdateConfiguration() + } + } else { + completeButton.isEnabled = true + if #available(iOS 15.0, *) { + completeButton.setNeedsUpdateConfiguration() + } + } + } + } + private var frontCardIsEmpty = true private var backCardIsEmpty = true private var restoreFrameYValue = 0.0 private var currentIndex = 0 private var cardData: Card? + private var cardCreationRequest: CardCreationRequest? + private var frontCard: FrontCard? + private var backCard: BackCard? // MARK: - @IBOutlet Properties @IBOutlet weak var creationTextLabel: UILabel! @@ -34,13 +57,31 @@ class CardCreationViewController: UIViewController { super.viewDidLoad() setUI() registerCell() - setNotification() setTextLabelGesture() // FIXME: 서버통신 테스트 중. 추후 호출 위치 변경. // cardDetailFetchWithAPI(cardID: "cardA") -// let cardCreationRequest = CardCreationRequest(userID: "nada", -// defaultImage: 0, + + // FIXME: group.서버통신 테스트 중. 추후 호출 위치 변경. +// let changeGroupRequest = ChangeGroupRequest(cardID: "cardA", +// userID: "nada2", +// groupID: 3, +// newGroupID: 2) +// changeGroupWithAPI(request: changeGroupRequest) + + // FIXME: group.서버통신 테스트 중. 추후 호출 위치 변경. +// cardDeleteInGroupWithAPI(groupID: 3, cardID: "cardA") + } + + // MARK: - @IBAction Properties + + @IBAction func dismissToPreviousView(_ sender: Any) { + self.dismiss(animated: true, completion: nil) + } + @IBAction func pushToCardCompletionView(_ sender: Any) { + // TODO: - CardCompletionView 화면전환 +// cardCreationRequest = CardCreationRequest(userID: "nada", +//defaultImage: 0, // title: "명함 이름", // name: "개빡쳐하는 오야옹~", // birthDate: "1999/05/12", @@ -57,25 +98,14 @@ class CardCreationViewController: UIViewController { // oneAnswer: "모든 정보 다 넣음", // twoQuestion: "홀리몰리", // twoAnswer: "루삥뽕") +// guard let frontCard = frontCard, let backCard = backCard else { +// return +// } +// cardCreationRequest = CardCreationRequest(userID: "", frontCard: frontCard, backCard: backCard) +// guard let cardCreationRequest = cardCreationRequest else { +// return +// } // cardCreationWithAPI(request: cardCreationRequest, image: UIImage(systemName: "circle")!) - - // FIXME: group.서버통신 테스트 중. 추후 호출 위치 변경. -// let changeGroupRequest = ChangeGroupRequest(cardID: "cardA", -// userID: "nada2", -// groupID: 3, -// newGroupID: 2) -// changeGroupWithAPI(request: changeGroupRequest) - -// cardInGroupDeleteWithAPI(groupID: 3, cardID: "cardA") - } - - // MARK: - @IBAction Properties - - @IBAction func dismissToPreviousView(_ sender: Any) { - self.dismiss(animated: true, completion: nil) - } - @IBAction func pushToCardCompletionView(_ sender: Any) { - // CardCompletionView 화면전환 } } @@ -103,12 +133,37 @@ extension CardCreationViewController { closeButton.setImage(UIImage(named: "closeBlack"), for: .normal) closeButton.setTitle("", for: .normal) - completeButton.setTitle("완료", for: .normal) completeButton.titleLabel?.font = .btn - completeButton.setTitleColor(.hintGray1, for: .normal) - completeButton.backgroundColor = .inputBlack2 completeButton.layer.cornerRadius = 10 - completeButton.isUserInteractionEnabled = false + completeButton.isEnabled = false + + // MARK: - #available(iOS 15.0, *) + if #available(iOS 15.0, *) { + let config = UIButton.Configuration.filled() + completeButton.configuration = config + + let configHandler: UIButton.ConfigurationUpdateHandler = { button in + switch button.state { + case .disabled: + button.configuration?.title = "완료" + button.configuration?.baseBackgroundColor = .inputBlack2 + button.configuration?.baseForegroundColor = .hintGray1 + default: + button.configuration?.title = "완료" + button.configuration?.baseBackgroundColor = .mainBlue + button.configuration?.baseForegroundColor = .white1 + } + } + completeButton.configurationUpdateHandler = configHandler + } else { + completeButton.setTitle("완료", for: .normal) + completeButton.setTitleColor(.white1, for: .normal) + // TODO: - 뷰 확정되면 이미지로 background 세팅 + // completeButton.setBackgroundImage(, for: .normal) + + completeButton.setTitleColor(.hintGray1, for: .disabled) + // completeButton.setBackgroundImage(, for: .disabled) + } let cardCreationCollectionViewlayout = cardCreationCollectionView.collectionViewLayout as? UICollectionViewFlowLayout cardCreationCollectionViewlayout?.scrollDirection = .horizontal @@ -123,10 +178,6 @@ extension CardCreationViewController { cardCreationCollectionView.register(FrontCardCreationCollectionViewCell.nib(), forCellWithReuseIdentifier: Const.Xib.frontCardCreationCollectionViewCell) cardCreationCollectionView.register(BackCardCreationCollectionViewCell.nib(), forCellWithReuseIdentifier: Const.Xib.backCardCreationCollectionViewCell) } - private func setNotification() { - NotificationCenter.default.addObserver(self, selector: #selector(setFrontCardIsEmpty(_:)), name: .frontCardtextFieldIsEmpty, object: nil) - NotificationCenter.default.addObserver(self, selector: #selector(setbackCardIsEmpty(_:)), name: .backCardtextFieldIsEmpty, object: nil) - } private func setTextLabelGesture() { let tapFrontTextLabelGesture = UITapGestureRecognizer(target: self, action: #selector(dragToFront)) frontTextLabel.addGestureRecognizer(tapFrontTextLabelGesture) @@ -135,40 +186,9 @@ extension CardCreationViewController { backTextLabel.addGestureRecognizer(tapBackTextLabelGesture) backTextLabel.isUserInteractionEnabled = true } - @objc - private func setFrontCardIsEmpty(_ notification: Notification) { - if let isEmpty = notification.object as? Bool { - frontCardIsEmpty = isEmpty - } -// if frontCardIsEmpty == true && backCardIsEmpty == true { - if frontCardIsEmpty == true { - // TODO: - 버튼설정 -// completeButton.backgroundColor = .inputBlack2 -// completeButton.setTitleColor(.hintGray1, for: .normal) -// completeButton.isUserInteractionEnabled = false - } else { -// completeButton.backgroundColor = .mainBlue -// completeButton.setTitleColor(.white1, for: .normal) -// completeButton.isUserInteractionEnabled = true - } - } - @objc - func setbackCardIsEmpty(_ notification: Notification) { - if let isEmpty = notification.object as? Bool { - backCardIsEmpty = isEmpty - } - // if frontCardIsEmpty == true && backCardIsEmpty == true { - if backCardIsEmpty == true { - // TODO: - 버튼설정 - // completeButton.backgroundColor = .inputBlack2 - // completeButton.setTitleColor(.hintGray1, for: .normal) - // completeButton.isUserInteractionEnabled = false - } else { - // completeButton.backgroundColor = .mainBlue - // completeButton.setTitleColor(.white1, for: .normal) - // completeButton.isUserInteractionEnabled = true - } - } + + // MARK: - @objc Methods + @objc private func dragToBack() { let indexPath = IndexPath(item: 1, section: 0) @@ -201,69 +221,70 @@ extension CardCreationViewController { extension CardCreationViewController { func cardDetailFetchWithAPI(cardID: String) { - CardAPI.shared.getCardDetailFetch(cardID: cardID) { response in + CardAPI.shared.cardDetailFetch(cardID: cardID) { response in switch response { case .success(let data): if let card = data as? Card { self.cardData = card } case .requestErr(let message): - print("getCardDetailFetchWithAPI - requestErr: \(message)") + print("cardDetailFetchWithAPI - requestErr: \(message)") case .pathErr: - print("getCardDetailFetchWithAPI - pathErr") + print("cardDetailFetchWithAPI - pathErr") case .serverErr: - print("getCardDetailFetchWithAPI - serverErr") + print("cardDetailFetchWithAPI - serverErr") case .networkFail: - print("getCardDetailFetchWithAPI - networkFail") + print("cardDetailFetchWithAPI - networkFail") } } } func cardCreationWithAPI(request: CardCreationRequest, image: UIImage) { - CardAPI.shared.postCardCreation(request: request, image: image) { response in + CardAPI.shared.cardCreation(request: request, image: image) { response in switch response { case .success: - print("postCardCreationWithAPI - success") + print("cardCreationWithAPI - success") case .requestErr(let message): - print("postCardCreationWithAPI - requestErr: \(message)") + print("cardCreationWithAPI - requestErr: \(message)") case .pathErr: - print("postCardCreationWithAPI - pathErr") + print("cardCreationWithAPI - pathErr") case .serverErr: - print("postCardCreationWithAPI - serverErr") + print("cardCreationWithAPI - serverErr") case .networkFail: - print("postCardCreationWithAPI - networkFail") + print("cardCreationWithAPI - networkFail") } } } // TODO: - group 서버통신. 위치변경. func changeGroupWithAPI(request: ChangeGroupRequest) { - GroupAPI.shared.putChangeGroup(request: request) { response in + GroupAPI.shared.changeCardGroup(request: request) { response in switch response { case .success: - print("postCardCreationWithAPI - success") + print("changeGroupWithAPI - success") case .requestErr(let message): - print("postCardCreationWithAPI - requestErr: \(message)") + print("changeGroupWithAPI - requestErr: \(message)") case .pathErr: - print("postCardCreationWithAPI - pathErr") + print("changeGroupWithAPI - pathErr") case .serverErr: - print("postCardCreationWithAPI - serverErr") + print("changeGroupWithAPI - serverErr") case .networkFail: - print("postCardCreationWithAPI - networkFail") + print("changeGroupWithAPI - networkFail") } } } - func cardInGroupDeleteWithAPI(groupID: Int, cardID: String) { - GroupAPI.shared.deleteCardInGroupDelete(groupID: groupID, cardID: cardID) { response in + // TODO: - group 서버통신. 위치변경. + func cardDeleteInGroupWithAPI(groupID: Int, cardID: String) { + GroupAPI.shared.cardDeleteInGroup(groupID: groupID, cardID: cardID) { response in switch response { case .success: - print("postCardCreationWithAPI - success") + print("cardDeleteInGroupWithAPI - success") case .requestErr(let message): - print("postCardCreationWithAPI - requestErr: \(message)") + print("cardDeleteInGroupWithAPI - requestErr: \(message)") case .pathErr: - print("postCardCreationWithAPI - pathErr") + print("cardDeleteInGroupWithAPI - pathErr") case .serverErr: - print("postCardCreationWithAPI - serverErr") + print("cardDeleteInGroupWithAPI - serverErr") case .networkFail: - print("postCardCreationWithAPI - networkFail") + print("cardDeleteInGroupWithAPI - networkFail") } } @@ -302,15 +323,17 @@ extension CardCreationViewController: UICollectionViewDataSource { func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { if collectionView == cardCreationCollectionView { - if indexPath.row == 0 { + if indexPath.item == 0 { guard let frontCreationCell = collectionView.dequeueReusableCell(withReuseIdentifier: Const.Xib.frontCardCreationCollectionViewCell, for: indexPath) as? FrontCardCreationCollectionViewCell else { return UICollectionViewCell() } + frontCreationCell.frontCardCreationDelegate = self return frontCreationCell - } else if indexPath.row == 1 { + } else if indexPath.item == 1 { guard let backCreationCell = collectionView.dequeueReusableCell(withReuseIdentifier: Const.Xib.backCardCreationCollectionViewCell, for: indexPath) as? BackCardCreationCollectionViewCell else { return UICollectionViewCell() } + backCreationCell.backCardCreationDelegate = self return backCreationCell } } @@ -326,16 +349,59 @@ extension CardCreationViewController: UICollectionViewDelegateFlowLayout { let width = collectionView.frame.width return CGSize(width: width, height: height) } - func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets { return .zero } - func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat { return 0 } - func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat { return 0 } } + +extension CardCreationViewController: FrontCardCreationDelegate { + func frontCardCreation(requiredInfo valid: Bool) { + frontCardIsEmpty = !valid + if frontCardIsEmpty == false && backCardIsEmpty == false { + completeButtonIsEnabled = .enable + } else { + completeButtonIsEnabled = .disable + } + } + + func frontCardCreation(withRequired requiredInfo: [String: String], withOptional optionalInfo: [String: String]) { + frontCard = FrontCard(defaultImage: Int(requiredInfo["defaultImage"] ?? "0") ?? 0, + title: requiredInfo["title"] ?? "", + name: requiredInfo["name"] ?? "", + birthDate: requiredInfo["birthDate"] ?? "", + mbti: requiredInfo["mbti"] ?? "", + instagram: optionalInfo["instagram"] ?? "", + linkName: optionalInfo["linkName"] ?? "", + link: optionalInfo["link"] ?? "", + description: optionalInfo["description"] ?? "") + } +} + +extension CardCreationViewController: BackCardCreationDelegate { + func backCardCreation(requiredInfo valid: Bool) { + func checkBackRequiredInfo(_ valid: Bool) { + backCardIsEmpty = !valid + if frontCardIsEmpty == false && backCardIsEmpty == false { + completeButtonIsEnabled = .enable + } else { + completeButtonIsEnabled = .disable + } + } + } + func backCardCreation(withRequired requiredInfo: [String: Bool], withOptional optionalInfo: [String: String]) { + backCard = BackCard(isMincho: requiredInfo["isMincho"] ?? false, + isSoju: requiredInfo["isSoju"] ?? false, + isBoomuk: requiredInfo["isBoomuk"] ?? false, + isSauced: requiredInfo["isSauced"] ?? false, + oneQuestion: optionalInfo["oneQuestion"] ?? "", + oneAnswer: optionalInfo["oneAnswer"] ?? "", + twoQuestion: optionalInfo["twoQuestion"] ?? "", + twoAnswer: optionalInfo["twoAnswer"] ?? "") + } +} diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/CardList/CardListViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/CardList/CardListViewController.swift index bff074b9..2e23ce9e 100644 --- a/NADA-iOS-forRelease/Sources/ViewControllers/CardList/CardListViewController.swift +++ b/NADA-iOS-forRelease/Sources/ViewControllers/CardList/CardListViewController.swift @@ -32,7 +32,7 @@ class CardListViewController: UIViewController { cardListTableView.dataSource = self // FIXME: - 카드 리스트 조회 서버 테스트 - getCardListFetchWithAPI(userID: "nada", isList: true, offset: 0) +// cardListFetchWithAPI(userID: "nada", isList: true, offset: 0) } override func viewWillAppear(_ animated: Bool) { @@ -115,8 +115,8 @@ extension CardListViewController: UITableViewDelegate { // MARK: - Network extension CardListViewController { - func getCardListFetchWithAPI(userID: String, isList: Bool, offset: Int) { - CardAPI.shared.getCardListFetch(userID: userID, isList: isList, offset: offset) { response in + func cardListFetchWithAPI(userID: String, isList: Bool, offset: Int) { + CardAPI.shared.cardListFetch(userID: userID, isList: isList, offset: offset) { response in switch response { case .success(let data): if let card = data as? CardListRequest { @@ -134,8 +134,8 @@ extension CardListViewController { } } - func putCardListEditWithAPI(request: CardListEditRequest) { - CardAPI.shared.putCardListEdit(request: request) { response in + func cardListEditWithAPI(request: CardListEditRequest) { + CardAPI.shared.cardListEdit(request: request) { response in switch response { case .success(let data): print(data) @@ -152,7 +152,7 @@ extension CardListViewController { } func deleteCardWithAPI(cardID: String) { - CardAPI.shared.deleteCard(cardID: cardID) { response in + CardAPI.shared.cardDelete(cardID: cardID) { response in switch response { case .success(let data): print(data) diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift index 810e616e..420ab4fd 100644 --- a/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift +++ b/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift @@ -13,19 +13,19 @@ class GroupViewController: UIViewController { super.viewDidLoad() // 그룹 리스트 조회 서버 테스트 -// getGroupListFetchWithAPI(userID: "nada") - // 그룹 삭제 서버 테스트 -// deleteGroupWithAPI(groupID: 1) - // 그룹 추가 서버 테스트 -// postGroupAddWithAPI(groupRequest: GroupAddRequest(userId: "nada", groupName: "나다나다")) - // 그룹 수정 서버 테스트 -// putGroupEditWithAPI(groupRequest: GroupEditRequest(groupId: 5, groupName: "수정나다")) - // 그룹 속 명함 추가 테스트 -// postCardAddInGroupWithAPI(cardRequest: CardAddInGroupRequest(cardId: "cardA", userId: "nada", groupId: 1)) - // 그룹 속 명함 조회 테스트 -// getCardListWithAPI(cardListRequest: CardListRequest(userId: "nada2", groupId: 3, offset: 0)) - // 명함 검색 테스트 -// getCardDetailFetchWithAPI(cardID: "cardA") +// groupListFetchWithAPI(userID: "nada") +// 그룹 삭제 서버 테스트 +// groupDeleteWithAPI(groupID: 1) +// 그룹 추가 서버 테스트 +// groupAddWithAPI(groupRequest: GroupAddRequest(userId: "nada", groupName: "나다나다")) +// 그룹 수정 서버 테스트 +// groupEditWithAPI(groupRequest: GroupEditRequest(groupId: 5, groupName: "수정나다")) +// 그룹 속 명함 추가 테스트 +// cardAddInGroupWithAPI(cardRequest: CardAddInGroupRequest(cardId: "cardA", userId: "nada", groupId: 1)) +// 그룹 속 명함 조회 테스트 +// cardListInGroupWithAPI(cardListInGroupRequest: CardListInGroupRequest(userId: "nada2", groupId: 3, offset: 0)) +// 명함 검색 테스트 +// cardDetailFetchWithAPI(cardID: "cardA") } @@ -34,8 +34,8 @@ class GroupViewController: UIViewController { // MARK: - Network extension GroupViewController { - func getGroupListFetchWithAPI(userID: String) { - GroupAPI.shared.getGroupListFetch(userID: userID) { response in + func groupListFetchWithAPI(userID: String) { + GroupAPI.shared.groupListFetch(userID: userID) { response in switch response { case .success(let data): if let group = data as? Groups { @@ -43,19 +43,19 @@ extension GroupViewController { // 그룹 리스트 조회 서버통신 성공했을때 } case .requestErr(let message): - print("getGroupListFetchWithAPI - requestErr", message) + print("groupListFetchWithAPI - requestErr: \(message)") case .pathErr: - print("getGroupListFetchWithAPI - pathErr") + print("groupListFetchWithAPI - pathErr") case .serverErr: - print("getGroupListFetchWithAPI - serverErr") + print("groupListFetchWithAPI - serverErr") case .networkFail: - print("getGroupListFetchWithAPI - networkFail") + print("groupListFetchWithAPI - networkFail") } } } - func deleteGroupWithAPI(groupID: Int) { - GroupAPI.shared.deleteGroup(groupID: groupID) { response in + func groupDeleteWithAPI(groupID: Int) { + GroupAPI.shared.groupDelete(groupID: groupID) { response in switch response { case .success(let data): if let group = data as? Groups { @@ -63,19 +63,19 @@ extension GroupViewController { // 그룹 삭제 서버 통신 성공했을 떄 } case .requestErr(let message): - print("deleteGroupWithAPI - requestErr", message) + print("groupDeleteWithAPI - requestErr: \(message)") case .pathErr: - print("deleteGroupWithAPI - pathErr") + print("groupDeleteWithAPI - pathErr") case .serverErr: - print("deleteGroupWithAPI - serverErr") + print("groupDeleteWithAPI - serverErr") case .networkFail: - print("deleteGroupWithAPI - networkFail") + print("groupDeleteWithAPI - networkFail") } } } - func postGroupAddWithAPI(groupRequest: GroupAddRequest) { - GroupAPI.shared.postGroupAdd(groupRequest: groupRequest) { response in + func groupAddWithAPI(groupRequest: GroupAddRequest) { + GroupAPI.shared.groupAdd(groupRequest: groupRequest) { response in switch response { case .success(let data): if let group = data as? Groups { @@ -83,19 +83,19 @@ extension GroupViewController { // 그룹 추가 서버 통신 성공했을 떄 } case .requestErr(let message): - print("postGroupAddWithAPI - requestErr", message) + print("groupAddWithAPI - requestErr: \(message)") case .pathErr: - print("postGroupAddWithAPI - pathErr") + print("groupAddWithAPI - pathErr") case .serverErr: - print("postGroupAddWithAPI - serverErr") + print("groupAddWithAPI - serverErr") case .networkFail: - print("postGroupAddWithAPI - networkFail") + print("groupAddWithAPI - networkFail") } } } - func putGroupEditWithAPI(groupRequest: GroupEditRequest) { - GroupAPI.shared.putGroupEdit(groupRequest: groupRequest) { response in + func groupEditWithAPI(groupRequest: GroupEditRequest) { + GroupAPI.shared.groupEdit(groupRequest: groupRequest) { response in switch response { case .success(let data): if let group = data as? Groups { @@ -103,19 +103,19 @@ extension GroupViewController { // 그룹 추가 서버 통신 성공했을 떄 } case .requestErr(let message): - print("putGroupEditWithAPI - requestErr", message) + print("groupEditWithAPI - requestErr: \(message)") case .pathErr: - print("putGroupEditWithAPI - pathErr") + print("groupEditWithAPI - pathErr") case .serverErr: - print("putGroupEditWithAPI - serverErr") + print("groupEditWithAPI - serverErr") case .networkFail: - print("putGroupEditWithAPI - networkFail") + print("groupEditWithAPI - networkFail") } } } - func postCardAddInGroupWithAPI(cardRequest: CardAddInGroupRequest) { - GroupAPI.shared.postCardAddInGroup(cardRequest: cardRequest) { response in + func cardAddInGroupWithAPI(cardRequest: CardAddInGroupRequest) { + GroupAPI.shared.cardAddInGroup(cardRequest: cardRequest) { response in switch response { case .success(let data): if let group = data as? Groups { @@ -123,19 +123,19 @@ extension GroupViewController { // 그룹 추가 서버 통신 성공했을 떄 } case .requestErr(let message): - print("postCardAddInGroupWithAPI - requestErr", message) + print("cardAddInGroupWithAPI - requestErr: \(message)") case .pathErr: - print("postCardAddInGroupWithAPI - pathErr") + print("cardAddInGroupWithAPI - pathErr") case .serverErr: - print("postCardAddInGroupWithAPI - serverErr") + print("cardAddInGroupWithAPI - serverErr") case .networkFail: - print("postCardAddInGroupWithAPI - networkFail") + print("cardAddInGroupWithAPI - networkFail") } } } - func getCardListWithAPI(cardListRequest: CardListRequest) { - GroupAPI.shared.getCardListFetch(cardListRequest: cardListRequest) { response in + func cardListInGroupWithAPI(cardListInGroupRequest: CardListInGroupRequest) { + GroupAPI.shared.cardListFetchInGroup(cardListInGroupRequest: cardListInGroupRequest) { response in switch response { case .success(let data): if let cards = data as? CardsInGroupResponse { @@ -144,19 +144,19 @@ extension GroupViewController { print(cards) } case .requestErr(let message): - print("postCardAddInGroupWithAPI - requestErr", message) + print("cardListInGroupWithAPI - requestErr: \(message)") case .pathErr: - print("postCardAddInGroupWithAPI - pathErr") + print("cardListInGroupWithAPI - pathErr") case .serverErr: - print("postCardAddInGroupWithAPI - serverErr") + print("cardListInGroupWithAPI - serverErr") case .networkFail: - print("postCardAddInGroupWithAPI - networkFail") + print("cardListInGroupWithAPI - networkFail") } } } - func getCardDetailFetchWithAPI(cardID: String) { - CardAPI.shared.getCardDetailFetch(cardID: cardID) { response in + func cardDetailFetchWithAPI(cardID: String) { + CardAPI.shared.cardDetailFetch(cardID: cardID) { response in switch response { case .success(let data): if let card = data as? Card { @@ -164,13 +164,13 @@ extension GroupViewController { //통신 성공 } case .requestErr(let message): - print("getCardDetailFetchWithAPI - requestErr", message) + print("cardDetailFetchWithAPI - requestErr: \(message)") case .pathErr: - print("getCardDetailFetchWithAPI - pathErr") + print("cardDetailFetchWithAPI - pathErr") case .serverErr: - print("getCardDetailFetchWithAPI - serverErr") + print("cardDetailFetchWithAPI - serverErr") case .networkFail: - print("getCardDetailFetchWithAPI - networkFail") + print("cardDetailFetchWithAPI - networkFail") } } } diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/Login/LoginViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/Login/LoginViewController.swift index a3843792..a2e1067f 100644 --- a/NADA-iOS-forRelease/Sources/ViewControllers/Login/LoginViewController.swift +++ b/NADA-iOS-forRelease/Sources/ViewControllers/Login/LoginViewController.swift @@ -35,7 +35,7 @@ class LoginViewController: UIViewController { // MARK: - Network extension LoginViewController { func getUserIDFetchWithAPI(userID: String) { - UserAPI.shared.getUserIDFetch(userID: userID) { response in + UserAPI.shared.userIDFetch(userID: userID) { response in switch response { case .success(let data): print(data) @@ -52,7 +52,7 @@ extension LoginViewController { } func getUserTokenFetchWithAPI(userID: String) { - UserAPI.shared.getUserTokenFetch(userID: userID) { response in + UserAPI.shared.userTokenFetch(userID: userID) { response in switch response { case .success(let data): print(data) @@ -69,7 +69,7 @@ extension LoginViewController { } func postUserSignUpWithAPI(request: User) { - UserAPI.shared.postUserSignUp(request: request) { response in + UserAPI.shared.userSignUp(request: request) { response in switch response { case .success: print("postUserSignUpWithAPI - success") @@ -87,7 +87,7 @@ extension LoginViewController { // FIXME: - 계정 탈퇴 네트워크 함수 추후 위치 수정 func deleteUserWithAPI(userID: String) { - UserAPI.shared.deleteUser(userID: userID) { response in + UserAPI.shared.userDelete(userID: userID) { response in switch response { case .success: print("deleteUserWithAPI - success") diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/Main/FrontViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/Main/FrontViewController.swift index 0851d800..ac7b896b 100644 --- a/NADA-iOS-forRelease/Sources/ViewControllers/Main/FrontViewController.swift +++ b/NADA-iOS-forRelease/Sources/ViewControllers/Main/FrontViewController.swift @@ -58,7 +58,7 @@ class FrontViewController: UIViewController { setBackList() // TODO: - 서버 테스트 - getCardListFetchWithAPI(userID: "nada", isList: false, offset: 0) +// cardListFetchWithAPI(userID: "nada", isList: false, offset: 0) } override func viewWillAppear(_ animated: Bool) { @@ -204,21 +204,21 @@ extension FrontViewController: VerticalCardSwiperDatasource { // MARK: - Network extension FrontViewController { - func getCardListFetchWithAPI(userID: String, isList: Bool, offset: Int) { - CardAPI.shared.getCardListFetch(userID: userID, isList: isList, offset: offset) { response in + func cardListFetchWithAPI(userID: String, isList: Bool, offset: Int) { + CardAPI.shared.cardListFetch(userID: userID, isList: isList, offset: offset) { response in switch response { case .success(let data): if let card = data as? CardListRequest { print(card) } case .requestErr(let message): - print("getCardListFetchWithAPI - requestErr", message) + print("cardListFetchWithAPI - requestErr: \(message)") case .pathErr: - print("getCardListFetchWithAPI - pathErr") + print("cardListFetchWithAPI - pathErr") case .serverErr: - print("getCardListFetchWithAPI - serverErr") + print("cardListFetchWithAPI - serverErr") case .networkFail: - print("getCardListFetchWithAPI - networkFail") + print("cardListFetchWithAPI - networkFail") } } }