diff --git a/RecorDream-iOS/RecorDream-iOS/Source/Presentation/Concept/Create/Record/ViewControllers/RecordViewController.swift b/RecorDream-iOS/RecorDream-iOS/Source/Presentation/Concept/Create/Record/ViewControllers/RecordViewController.swift index b276dd8..ac6c80a 100644 --- a/RecorDream-iOS/RecorDream-iOS/Source/Presentation/Concept/Create/Record/ViewControllers/RecordViewController.swift +++ b/RecorDream-iOS/RecorDream-iOS/Source/Presentation/Concept/Create/Record/ViewControllers/RecordViewController.swift @@ -36,6 +36,7 @@ enum CreateRecordConst { static var dreamColorNum: Int? static var isTouchedIndex: [Int] = [] static var genreIndex: [Int] = [] + } class RecordViewController: BaseViewController { @@ -319,34 +320,31 @@ class RecordViewController: BaseViewController { } @objc func saveButtonDidTap() { + print("saveButtonDidTap") if let title = titleTextField.text { if !title.isEmpty && !title.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty { // MARK: - 저장 가능 상태 + print("hoihihihihi") guard let title = titleTextField.text, let content = contentTextView.text, let note = noteTextView.text else { return } let date: String = CreateRecordConst.todayDate.toString() - print("---------------") - print(title) - print(content) - print(note) - print(CreateRecordConst.emotionNum) - print(CreateRecordConst.dreamColorNum) - print(CreateRecordConst.isTouchedIndex) - print(note) - print("---------------") - let record = CreateRecord(title: title, date: date, content: content, emotion: CreateRecordConst.emotionNum, dreamColor: CreateRecordConst.dreamColorNum, genre: CreateRecordConst.isTouchedIndex, note: note, voice: "62cdb868c3032f2b7af76531", writer: "62c9cf068094605c781a2fb9") - guard let emotionNum = CreateRecordConst.emotionNum, - let dreamNum = CreateRecordConst.dreamColorNum, - let id = recordDetailData?._id else { return } + print("record: \(record)") - let recordPut = PatchRecord(title: title, date: date, content: content, emotion: emotionNum, dreamColor: dreamNum, genre: CreateRecordConst.isTouchedIndex, note: note) - - isCreateView ? postRecord(record: record) : putRecord(record: recordPut, id: id) +// guard let emotionNum = CreateRecordConst.emotionNum, +// let dreamNum = CreateRecordConst.dreamColorNum, +// let id = recordDetailData?._id else { return } +// +// let recordPut = PatchRecord(title: title, date: date, content: content, emotion: emotionNum, dreamColor: dreamNum, genre: CreateRecordConst.isTouchedIndex, note: note) +// print("recordPut: \(recordPut)") +// +// print("isCreateView: \(isCreateView)") +// isCreateView ? postRecord(record: record) : putRecord(record: recordPut, id: id) + postRecord(record: record) } else { // MARK: - 저장 불가능 상태 UIView.animate(withDuration: 1.25, delay: 0.01, options: .curveEaseIn, animations: { @@ -360,15 +358,11 @@ class RecordViewController: BaseViewController { func setTitleTextField() { if let title = titleTextField.text { - print("title : \(title)") - print(title.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty) if !title.isEmpty && !title.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty { // MARK: - 저장 가능 상태 - print("저장 가능 상태") saveButton.setImage(UIImage(named: ImageList.icnSaveOn.name), for: .normal) } else { // MARK: - 저장 불가능 상태 - print("저장 불가능 상태") saveButton.setImage(UIImage(named: ImageList.icnSaveOff.name), for: .normal) } } @@ -584,8 +578,6 @@ extension RecordViewController: UICollectionViewDataSource, UICollectionViewDele if collectionView == emotionCollectionView { guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: RecordBarCollectionViewCell.reuseIdentifier, for: indexPath) as? RecordBarCollectionViewCell else { return UICollectionViewCell() } if !isCreateView { -// cell.isSelected = false - print("isSelected - ") if indexPath.item == CreateRecordConst.emotionNum { print("안녕") cell.updateRecordBarImage(reset: false) @@ -593,7 +585,6 @@ extension RecordViewController: UICollectionViewDataSource, UICollectionViewDele } else { print("isisisisisisisis") } -// cell.recordBarImageView.alpha = 1 cell.setRecordBarImage(imageName: Constant.Emotion.IntType(indexPath.item + 1).title) return cell } else if collectionView == dreamColorCollectionView { @@ -657,14 +648,29 @@ extension UILabel { } extension RecordViewController { +// func postRecord(record: CreateRecord) { +// Task { +// do { +// let recordData = try await createManager.postRequest(record: record) +// } catch { +// print("실패") +// } +// } +// } +// +// private func requestUserInformation() { +// MyPageService.shared.getUserInformation(completionHandler: { [weak self] data in +// guard let data = data as? UserInformationModel else { return } +// self?.userInformation = data +// }) +// } +// func postRecord(record: CreateRecord) { - Task { - do { - try await createManager.postRequest(record: record) - } catch { - print("실패") - } - } + createManager.postRequest(record: record, completionHandler: { [weak self] data in + guard let data = data as? DreamBaseModel else { return } + print("postRecord") + print(data) + }) } func putRecord(record: PatchRecord, id: String) { diff --git a/RecorDream-iOS/RecorDream-iOS/Source/Presentation/TabBar/TabBarController.swift b/RecorDream-iOS/RecorDream-iOS/Source/Presentation/TabBar/TabBarController.swift index ef1e809..9ca97a2 100644 --- a/RecorDream-iOS/RecorDream-iOS/Source/Presentation/TabBar/TabBarController.swift +++ b/RecorDream-iOS/RecorDream-iOS/Source/Presentation/TabBar/TabBarController.swift @@ -59,7 +59,7 @@ extension TabBarController: Presentable { private func presentRecordView() { let recordViewController = RecordViewController() navigationController?.pushViewController(recordViewController, animated: false) - recordViewController.isCreateView = false + recordViewController.isCreateView = true } private func setTabBarItems() { diff --git a/RecorDream-iOS/RecorDream-iOS/Source/Service/DTO/Network/Manager/Concept/Create/CreateAPIManager.swift b/RecorDream-iOS/RecorDream-iOS/Source/Service/DTO/Network/Manager/Concept/Create/CreateAPIManager.swift index 1fb4c86..11a2e06 100644 --- a/RecorDream-iOS/RecorDream-iOS/Source/Service/DTO/Network/Manager/Concept/Create/CreateAPIManager.swift +++ b/RecorDream-iOS/RecorDream-iOS/Source/Service/DTO/Network/Manager/Concept/Create/CreateAPIManager.swift @@ -9,7 +9,8 @@ import Foundation protocol CreateRequestable: AnyObject { func request(_ request: NetworkRequest) async throws -> [Record] - func postRequest(record: CreateRecord) +// func postRequest(record: CreateRecord) async throws -> DreamBaseModel + func postRequest(record: CreateRecord, completionHandler: @escaping (Any) -> Void) func putRequset(record: PatchRecord, id: String) } @@ -24,7 +25,6 @@ final class CreateAPIManager: CreateRequestable { guard let httpResponse = response as? HTTPURLResponse, (200..<500) ~= httpResponse.statusCode else { throw APIError.serverError } - print("httpResponse.statusCode: \(httpResponse.statusCode)") let decodedData = try JSONDecoder().decode(Record.self, from: data) @@ -35,8 +35,44 @@ final class CreateAPIManager: CreateRequestable { } } - func postRequest(record: CreateRecord) { +// func postRequest(record: CreateRecord) async throws -> DreamBaseModel { +// let url = URL(string: "http://13.125.138.47:8000/record") +// var request = URLRequest(url: url!) +// request.httpMethod = "POST" +// +// guard let uploadData = try? JSONEncoder().encode(record) +// else { throw APIError.urlEncodingError } +// request.addValue("application/json", forHTTPHeaderField: "Content-Type") +// request.addValue("1", forHTTPHeaderField: "userId") +// +// let task = URLSession.shared.uploadTask(with: request, from: uploadData) { data, response, error in +// if let data = data, +// let response = response as? HTTPURLResponse, +// (200..<500) ~= response.statusCode { +// print("response: \(response.statusCode)") +// +// guard let responseData = try? JSONDecoder().decode(DreamBaseModel.self, from: data) else { +// print("json decode error") +// throw APIError.clientError(message: "client error") +// } +// if responseData.success { +// print(responseData.success) +// return [responseData] +// } else { +// print("실패") +// throw APIError.clientError(message: decodedData.message) +// } +// } else { +// print("Error") +// throw APIError.clientError(message: decodedData.message) +// } +// } +// task.resume() +// } + + func postRequest(record: CreateRecord, completionHandler: @escaping (Any) -> Void) { let url = URL(string: "http://13.125.138.47:8000/record") + print(url) var request = URLRequest(url: url!) request.httpMethod = "POST" @@ -46,11 +82,10 @@ final class CreateAPIManager: CreateRequestable { request.addValue("1", forHTTPHeaderField: "userId") let task = URLSession.shared.uploadTask(with: request, from: uploadData) { data, response, error in - if let data = data, let response = response as? HTTPURLResponse, (200..<500) ~= response.statusCode { - print("response: \(response.statusCode)") + print("response - post: \(response.statusCode)") guard let responseData = try? JSONDecoder().decode(DreamBaseModel.self, from: data) else { print("json decode error") @@ -58,6 +93,7 @@ final class CreateAPIManager: CreateRequestable { } if responseData.success { print(responseData.success) + completionHandler(responseData) } else { print("실패") }