From 67fc35010f807cd94e1eadb412e4ee817255f312 Mon Sep 17 00:00:00 2001 From: Toy Date: Tue, 12 Dec 2023 17:52:35 +0900 Subject: [PATCH 1/8] =?UTF-8?q?refactor:=20Network=20=EB=A0=88=EC=9D=B4?= =?UTF-8?q?=EC=96=B4=20endpoint=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + BoxOffice.xcodeproj/project.pbxproj | 16 +++++++++ .../UserInterfaceState.xcuserstate | Bin 103002 -> 0 bytes BoxOffice/Controllers/ViewController.swift | 11 +++--- BoxOffice/Error/URLError.swift | 21 +++++++++++ BoxOffice/Error/excuteError.swift | 7 ++-- BoxOffice/Network/API.swift | 8 ++--- BoxOffice/Network/Endpoint.swift | 33 ++++++++++++++++++ BoxOffice/Network/HTTPHeaderField.swift | 21 +++++++++++ BoxOffice/Network/HTTPMethod.swift | 10 ++++++ BoxOffice/Network/NetworkManager.swift | 20 ++++------- 11 files changed, 121 insertions(+), 27 deletions(-) delete mode 100644 BoxOffice.xcodeproj/project.xcworkspace/xcuserdata/kimwoohyeon.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 BoxOffice/Error/URLError.swift create mode 100644 BoxOffice/Network/Endpoint.swift create mode 100644 BoxOffice/Network/HTTPHeaderField.swift create mode 100644 BoxOffice/Network/HTTPMethod.swift diff --git a/.gitignore b/.gitignore index 65d299249..4dd74878e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .DS_Store .DS_Store +BoxOffice.xcodeproj/project.xcworkspace/xcuserdata/kimwoohyeon.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/BoxOffice.xcodeproj/project.pbxproj b/BoxOffice.xcodeproj/project.pbxproj index d4142d7fb..e3a3c3997 100644 --- a/BoxOffice.xcodeproj/project.pbxproj +++ b/BoxOffice.xcodeproj/project.pbxproj @@ -12,6 +12,10 @@ 3C6A18D22B18790400E1DBC2 /* Movie.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C6A18D12B18790400E1DBC2 /* Movie.swift */; }; 3C6A18D42B18832E00E1DBC2 /* MovieURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C6A18D32B18832E00E1DBC2 /* MovieURL.swift */; }; 3CB861712B21E824003113C1 /* DateGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CB861702B21E824003113C1 /* DateGenerator.swift */; }; + 3CFF21642B28551C006B7A36 /* URLError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CFF21632B28551C006B7A36 /* URLError.swift */; }; + 3CFF21662B285567006B7A36 /* Endpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CFF21652B285567006B7A36 /* Endpoint.swift */; }; + 3CFF21682B28558A006B7A36 /* HTTPHeaderField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CFF21672B28558A006B7A36 /* HTTPHeaderField.swift */; }; + 3CFF216A2B2855A7006B7A36 /* HTTPMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CFF21692B2855A7006B7A36 /* HTTPMethod.swift */; }; 63DF20EF2970E1A0005DF7D1 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63DF20EE2970E1A0005DF7D1 /* AppDelegate.swift */; }; 63DF20F12970E1A0005DF7D1 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63DF20F02970E1A0005DF7D1 /* SceneDelegate.swift */; }; 63DF20F32970E1A0005DF7D1 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63DF20F22970E1A0005DF7D1 /* ViewController.swift */; }; @@ -41,6 +45,10 @@ 3C6A18D12B18790400E1DBC2 /* Movie.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Movie.swift; sourceTree = ""; }; 3C6A18D32B18832E00E1DBC2 /* MovieURL.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MovieURL.swift; sourceTree = ""; }; 3CB861702B21E824003113C1 /* DateGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateGenerator.swift; sourceTree = ""; }; + 3CFF21632B28551C006B7A36 /* URLError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = URLError.swift; sourceTree = ""; }; + 3CFF21652B285567006B7A36 /* Endpoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Endpoint.swift; sourceTree = ""; }; + 3CFF21672B28558A006B7A36 /* HTTPHeaderField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HTTPHeaderField.swift; sourceTree = ""; }; + 3CFF21692B2855A7006B7A36 /* HTTPMethod.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HTTPMethod.swift; sourceTree = ""; }; 63DF20EB2970E1A0005DF7D1 /* BoxOffice.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = BoxOffice.app; sourceTree = BUILT_PRODUCTS_DIR; }; 63DF20EE2970E1A0005DF7D1 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 63DF20F02970E1A0005DF7D1 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; @@ -96,6 +104,9 @@ 92882BDE2B171A7F007AEA40 /* NetworkManager.swift */, 3C6A18D32B18832E00E1DBC2 /* MovieURL.swift */, 926CEE4D2B1C5787002B3FFE /* Key.swift */, + 3CFF21652B285567006B7A36 /* Endpoint.swift */, + 3CFF21672B28558A006B7A36 /* HTTPHeaderField.swift */, + 3CFF21692B2855A7006B7A36 /* HTTPMethod.swift */, 92AC83F72B21C30400D10264 /* API.swift */, 3CB861702B21E824003113C1 /* DateGenerator.swift */, ); @@ -106,6 +117,7 @@ isa = PBXGroup; children = ( 9239D0462B148D400008DE9F /* excuteError.swift */, + 3CFF21632B28551C006B7A36 /* URLError.swift */, ); path = Error; sourceTree = ""; @@ -272,9 +284,13 @@ files = ( 3CB861712B21E824003113C1 /* DateGenerator.swift in Sources */, 92AC83F82B21C30400D10264 /* API.swift in Sources */, + 3CFF21642B28551C006B7A36 /* URLError.swift in Sources */, + 3CFF21662B285567006B7A36 /* Endpoint.swift in Sources */, 9239D0472B148D400008DE9F /* excuteError.swift in Sources */, 926CEE4E2B1C5787002B3FFE /* Key.swift in Sources */, 3C6A18D42B18832E00E1DBC2 /* MovieURL.swift in Sources */, + 3CFF21682B28558A006B7A36 /* HTTPHeaderField.swift in Sources */, + 3CFF216A2B2855A7006B7A36 /* HTTPMethod.swift in Sources */, 63DF20F32970E1A0005DF7D1 /* ViewController.swift in Sources */, 63DF20EF2970E1A0005DF7D1 /* AppDelegate.swift in Sources */, 92882BDF2B171A7F007AEA40 /* NetworkManager.swift in Sources */, diff --git a/BoxOffice.xcodeproj/project.xcworkspace/xcuserdata/kimwoohyeon.xcuserdatad/UserInterfaceState.xcuserstate b/BoxOffice.xcodeproj/project.xcworkspace/xcuserdata/kimwoohyeon.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index f79cd39dcac18defe4b99ac333a4f59520f9e60a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103002 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

(hq?L0bq^z`WO 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 N{m=jZXK2jB{{alz4eS5_ diff --git a/BoxOffice/Controllers/ViewController.swift b/BoxOffice/Controllers/ViewController.swift index 12586a7b2..9b3d07bdb 100644 --- a/BoxOffice/Controllers/ViewController.swift +++ b/BoxOffice/Controllers/ViewController.swift @@ -26,11 +26,13 @@ class ViewController: UIViewController { let apiKey = Key.movieDataApiKey var movieCode = "" + + let endpoint = Endpoint(api: dailyBoxOfficeAPI, queryItems: dailyBoxOfficeAPIAdditionalQueryItems, httpMethod: .get, httpHeaderField: .contentType, mime: .json) let group = DispatchGroup() group.enter() - networkManager.executeRequest(api: dailyBoxOfficeAPI, apiKey: apiKey, queryItems: dailyBoxOfficeAPIAdditionalQueryItems, type: BoxOffice.self, complitionHandler: { result in + networkManager.executeRequest(endponit: endpoint, type: BoxOffice.self) { result in defer {group.leave()} switch result { @@ -41,7 +43,7 @@ class ViewController: UIViewController { case .failure(let error): print("\(error)에러발생") } - }) + } group.notify(queue: .main) { @@ -51,12 +53,13 @@ class ViewController: UIViewController { URLQueryItem(name: "movieCd", value: movieCode) ] - self.networkManager.executeRequest(api: movieDetailAPI, apiKey: apiKey, queryItems: movieDetailAPIAdditionalQueryItems, type: Movie.self) { result in + let endpoint = Endpoint(api: movieDetailAPI, queryItems: movieDetailAPIAdditionalQueryItems, httpMethod: .get, httpHeaderField: .contentType, mime: .json) + + self.networkManager.executeRequest(endponit: endpoint, type: Movie.self) { result in switch result { case .success(let safeData): let data = safeData.infomationResult.movieInfomation print(data) - case .failure(let error): print("\(error)에러발생") } diff --git a/BoxOffice/Error/URLError.swift b/BoxOffice/Error/URLError.swift new file mode 100644 index 000000000..545ee56a8 --- /dev/null +++ b/BoxOffice/Error/URLError.swift @@ -0,0 +1,21 @@ +// +// URLError.swift +// BoxOffice +// +// Created by Toy, Morgan on 12/12/23. +// + +import Foundation + +enum URLError: Error { + case invalidURL +} + +extension URLError: LocalizedError { + var errorDescription: String? { + switch self { + case .invalidURL: + return "유효하지 않은 URL" + } + } +} diff --git a/BoxOffice/Error/excuteError.swift b/BoxOffice/Error/excuteError.swift index 860790a30..3c9c1feeb 100644 --- a/BoxOffice/Error/excuteError.swift +++ b/BoxOffice/Error/excuteError.swift @@ -7,19 +7,16 @@ import Foundation -enum ExecuteRequestError: Error { - case invalidURL +enum NetworkManagerError: Error { case urlSessionError case responseError case invalidData case decodeError } -extension ExecuteRequestError: LocalizedError { +extension NetworkManagerError: LocalizedError { var errorDescription: String? { switch self { - case .invalidURL: - return "유효하지 않은 URL" case .urlSessionError: return "URLSession에 대한" case .responseError: diff --git a/BoxOffice/Network/API.swift b/BoxOffice/Network/API.swift index 1b0d052ab..a3de293bc 100644 --- a/BoxOffice/Network/API.swift +++ b/BoxOffice/Network/API.swift @@ -2,15 +2,15 @@ // API.swift // BoxOffice // -// Created by hyunMac on 12/7/23. +// Created by Toy, Morgan on 12/7/23. // import Foundation struct API { - let schema: String - let host: String - let path: String + private let schema: String + private let host: String + private let path: String init(schema: String, host: String, path: String) { self.schema = schema diff --git a/BoxOffice/Network/Endpoint.swift b/BoxOffice/Network/Endpoint.swift new file mode 100644 index 000000000..c7e61885e --- /dev/null +++ b/BoxOffice/Network/Endpoint.swift @@ -0,0 +1,33 @@ +// +// Endpoint.swift +// BoxOffice +// +// Created by Toy, Morgan on 12/12/23. +// +import Foundation + +struct Endpoint { + private let api: API + private let queryItems:[URLQueryItem] + private let httpMethod: HTTPMethod + private let httpHeaderField: HTTPHeaderField + private let mime: MIME + + init(api: API, queryItems: [URLQueryItem], httpMethod: HTTPMethod, httpHeaderField: HTTPHeaderField, mime: MIME) { + self.api = api + self.queryItems = queryItems + self.httpMethod = httpMethod + self.httpHeaderField = httpHeaderField + self.mime = mime + } + + func asURLRequest() throws -> URLRequest { + guard let url = api.getURL(apikey: Key.movieDataApiKey, queryItems: queryItems) else { throw URLError.invalidURL } + + var request = URLRequest(url: url) + request.httpMethod = httpMethod.rawValue + request.addValue(mime.rawValue, forHTTPHeaderField: httpHeaderField.rawValue) + + return request + } +} diff --git a/BoxOffice/Network/HTTPHeaderField.swift b/BoxOffice/Network/HTTPHeaderField.swift new file mode 100644 index 000000000..62dca7fec --- /dev/null +++ b/BoxOffice/Network/HTTPHeaderField.swift @@ -0,0 +1,21 @@ +// +// HTTPHeaderField.swift +// BoxOffice +// +// Created by Toy, Morgan on 12/12/23. +// +enum HTTPHeaderField: String { + case contentType = "Content-Type" + case contentEncoding = "Content-Encoding" + case contentLanguage = "Content-Language" +} + +enum MIME: String { + case html = "text/html" + case json = "application/json" + case iamge = "image" + case gzip + case deflate + case identity + +} diff --git a/BoxOffice/Network/HTTPMethod.swift b/BoxOffice/Network/HTTPMethod.swift new file mode 100644 index 000000000..dc1c55d0b --- /dev/null +++ b/BoxOffice/Network/HTTPMethod.swift @@ -0,0 +1,10 @@ +// +// HTTPMethod.swift +// BoxOffice +// +// Created by Toy, Morgan on 12/12/23. +// +enum HTTPMethod: String { + case get = "GET" + case post = "POST" +} diff --git a/BoxOffice/Network/NetworkManager.swift b/BoxOffice/Network/NetworkManager.swift index 33433afba..4b8b7fcf2 100644 --- a/BoxOffice/Network/NetworkManager.swift +++ b/BoxOffice/Network/NetworkManager.swift @@ -8,30 +8,22 @@ import Foundation struct NetworkManager { - func executeRequest(api: API, apiKey: String, queryItems:[URLQueryItem], type: T.Type, complitionHandler: @escaping (Result) -> Void) { - - guard let url = api.getURL(apikey: apiKey, queryItems: queryItems) else { - complitionHandler(.failure(ExecuteRequestError.invalidURL)) - return - } - - var request = URLRequest(url: url) - request.httpMethod = "GET" - request.addValue("application/json", forHTTPHeaderField: "Content-Type") + func executeRequest(endponit: Endpoint, type: T.Type, complitionHandler: @escaping (Result) -> Void) { + guard let request = try? endponit.asURLRequest() else { return } let task = URLSession.shared.dataTask(with: request) { (data, response, error) in guard error == nil else { - complitionHandler(.failure(ExecuteRequestError.urlSessionError)) + complitionHandler(.failure(NetworkManagerError.urlSessionError)) return } guard let httpResponse = response as? HTTPURLResponse, (200...299).contains(httpResponse.statusCode) else { - complitionHandler(.failure(ExecuteRequestError.responseError)) + complitionHandler(.failure(NetworkManagerError.responseError)) return } guard let data = data else { - complitionHandler(.failure(ExecuteRequestError.invalidData)) + complitionHandler(.failure(NetworkManagerError.invalidData)) return } @@ -40,7 +32,7 @@ struct NetworkManager { let safeData = try decoder.decode(T.self, from: data) complitionHandler(.success(safeData)) } catch { - complitionHandler(.failure(ExecuteRequestError.decodeError)) + complitionHandler(.failure(NetworkManagerError.decodeError)) } } task.resume() From 7a244aa1ac66f3b4007e7215a7108791d66925dd Mon Sep 17 00:00:00 2001 From: Toy Date: Thu, 14 Dec 2023 16:05:59 +0900 Subject: [PATCH 2/8] =?UTF-8?q?refactor:=20network=20=EB=A0=88=EC=9D=B4?= =?UTF-8?q?=EC=96=B4=20=EB=A1=9C=EC=A7=81=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BoxOffice.xcodeproj/project.pbxproj | 28 +++++++++++++------ BoxOffice/Controllers/ViewController.swift | 20 +++++++++++-- ...eError.swift => NetworkManagerError.swift} | 2 +- BoxOffice/Network/BoxOfficeEndpoint.swift | 18 ++++++++++++ BoxOffice/Network/Endpoint.swift | 2 +- .../Network/{ => HTTP}/HTTPHeaderField.swift | 0 BoxOffice/Network/{ => HTTP}/HTTPMethod.swift | 0 7 files changed, 57 insertions(+), 13 deletions(-) rename BoxOffice/Error/{excuteError.swift => NetworkManagerError.swift} (95%) create mode 100644 BoxOffice/Network/BoxOfficeEndpoint.swift rename BoxOffice/Network/{ => HTTP}/HTTPHeaderField.swift (100%) rename BoxOffice/Network/{ => HTTP}/HTTPMethod.swift (100%) diff --git a/BoxOffice.xcodeproj/project.pbxproj b/BoxOffice.xcodeproj/project.pbxproj index e3a3c3997..06d1778d5 100644 --- a/BoxOffice.xcodeproj/project.pbxproj +++ b/BoxOffice.xcodeproj/project.pbxproj @@ -11,6 +11,7 @@ 3C4D67212B15848900B8926A /* BoxOffice.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C4D67202B15848900B8926A /* BoxOffice.swift */; }; 3C6A18D22B18790400E1DBC2 /* Movie.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C6A18D12B18790400E1DBC2 /* Movie.swift */; }; 3C6A18D42B18832E00E1DBC2 /* MovieURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C6A18D32B18832E00E1DBC2 /* MovieURL.swift */; }; + 3C8280862B29AE7C0083DD64 /* BoxOfficeEndpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C8280852B29AE7C0083DD64 /* BoxOfficeEndpoint.swift */; }; 3CB861712B21E824003113C1 /* DateGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CB861702B21E824003113C1 /* DateGenerator.swift */; }; 3CFF21642B28551C006B7A36 /* URLError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CFF21632B28551C006B7A36 /* URLError.swift */; }; 3CFF21662B285567006B7A36 /* Endpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CFF21652B285567006B7A36 /* Endpoint.swift */; }; @@ -22,7 +23,7 @@ 63DF20F62970E1A0005DF7D1 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 63DF20F42970E1A0005DF7D1 /* Main.storyboard */; }; 63DF20F82970E1A1005DF7D1 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 63DF20F72970E1A1005DF7D1 /* Assets.xcassets */; }; 63DF20FB2970E1A1005DF7D1 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 63DF20F92970E1A1005DF7D1 /* LaunchScreen.storyboard */; }; - 9239D0472B148D400008DE9F /* excuteError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9239D0462B148D400008DE9F /* excuteError.swift */; }; + 9239D0472B148D400008DE9F /* NetworkManagerError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9239D0462B148D400008DE9F /* NetworkManagerError.swift */; }; 926CEE4E2B1C5787002B3FFE /* Key.swift in Sources */ = {isa = PBXBuildFile; fileRef = 926CEE4D2B1C5787002B3FFE /* Key.swift */; }; 92882BDF2B171A7F007AEA40 /* NetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92882BDE2B171A7F007AEA40 /* NetworkManager.swift */; }; 92AC83F82B21C30400D10264 /* API.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92AC83F72B21C30400D10264 /* API.swift */; }; @@ -44,6 +45,7 @@ 3C4D67202B15848900B8926A /* BoxOffice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BoxOffice.swift; sourceTree = ""; }; 3C6A18D12B18790400E1DBC2 /* Movie.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Movie.swift; sourceTree = ""; }; 3C6A18D32B18832E00E1DBC2 /* MovieURL.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MovieURL.swift; sourceTree = ""; }; + 3C8280852B29AE7C0083DD64 /* BoxOfficeEndpoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BoxOfficeEndpoint.swift; sourceTree = ""; }; 3CB861702B21E824003113C1 /* DateGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateGenerator.swift; sourceTree = ""; }; 3CFF21632B28551C006B7A36 /* URLError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = URLError.swift; sourceTree = ""; }; 3CFF21652B285567006B7A36 /* Endpoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Endpoint.swift; sourceTree = ""; }; @@ -57,7 +59,7 @@ 63DF20F72970E1A1005DF7D1 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 63DF20FA2970E1A1005DF7D1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 63DF20FC2970E1A1005DF7D1 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 9239D0462B148D400008DE9F /* excuteError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = excuteError.swift; sourceTree = ""; }; + 9239D0462B148D400008DE9F /* NetworkManagerError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkManagerError.swift; sourceTree = ""; }; 926CEE4D2B1C5787002B3FFE /* Key.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Key.swift; sourceTree = ""; }; 92882BDE2B171A7F007AEA40 /* NetworkManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkManager.swift; sourceTree = ""; }; 92AC83F72B21C30400D10264 /* API.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = API.swift; sourceTree = ""; }; @@ -98,17 +100,26 @@ path = MovieDataDecoerTests; sourceTree = ""; }; + 3C8280842B29AD2A0083DD64 /* HTTP */ = { + isa = PBXGroup; + children = ( + 3CFF21672B28558A006B7A36 /* HTTPHeaderField.swift */, + 3CFF21692B2855A7006B7A36 /* HTTPMethod.swift */, + ); + path = HTTP; + sourceTree = ""; + }; 3CD5DDAD2B171CF30013E5C0 /* Network */ = { isa = PBXGroup; children = ( + 3C8280852B29AE7C0083DD64 /* BoxOfficeEndpoint.swift */, 92882BDE2B171A7F007AEA40 /* NetworkManager.swift */, - 3C6A18D32B18832E00E1DBC2 /* MovieURL.swift */, - 926CEE4D2B1C5787002B3FFE /* Key.swift */, 3CFF21652B285567006B7A36 /* Endpoint.swift */, - 3CFF21672B28558A006B7A36 /* HTTPHeaderField.swift */, - 3CFF21692B2855A7006B7A36 /* HTTPMethod.swift */, 92AC83F72B21C30400D10264 /* API.swift */, + 3C8280842B29AD2A0083DD64 /* HTTP */, 3CB861702B21E824003113C1 /* DateGenerator.swift */, + 3C6A18D32B18832E00E1DBC2 /* MovieURL.swift */, + 926CEE4D2B1C5787002B3FFE /* Key.swift */, ); path = Network; sourceTree = ""; @@ -116,7 +127,7 @@ 3CD5DDAE2B1722810013E5C0 /* Error */ = { isa = PBXGroup; children = ( - 9239D0462B148D400008DE9F /* excuteError.swift */, + 9239D0462B148D400008DE9F /* NetworkManagerError.swift */, 3CFF21632B28551C006B7A36 /* URLError.swift */, ); path = Error; @@ -283,10 +294,11 @@ buildActionMask = 2147483647; files = ( 3CB861712B21E824003113C1 /* DateGenerator.swift in Sources */, + 3C8280862B29AE7C0083DD64 /* BoxOfficeEndpoint.swift in Sources */, 92AC83F82B21C30400D10264 /* API.swift in Sources */, 3CFF21642B28551C006B7A36 /* URLError.swift in Sources */, 3CFF21662B285567006B7A36 /* Endpoint.swift in Sources */, - 9239D0472B148D400008DE9F /* excuteError.swift in Sources */, + 9239D0472B148D400008DE9F /* NetworkManagerError.swift in Sources */, 926CEE4E2B1C5787002B3FFE /* Key.swift in Sources */, 3C6A18D42B18832E00E1DBC2 /* MovieURL.swift in Sources */, 3CFF21682B28558A006B7A36 /* HTTPHeaderField.swift in Sources */, diff --git a/BoxOffice/Controllers/ViewController.swift b/BoxOffice/Controllers/ViewController.swift index 9b3d07bdb..0fcd444d0 100644 --- a/BoxOffice/Controllers/ViewController.swift +++ b/BoxOffice/Controllers/ViewController.swift @@ -10,10 +10,26 @@ import UIKit class ViewController: UIViewController { private var networkManager = NetworkManager() + var data = BoxOfficeEndpoint() override func viewDidLoad() { super.viewDidLoad() - networkTest() +// networkTest() + test123() + } + + func test123() { + let endpoint = data.getBoxOfficeEndpoint + + networkManager.executeRequest(endponit: endpoint, type: BoxOffice.self) { result in + switch result { + case .success(let safeData): + let data = safeData.boxOfficeResult.dailyBoxOfficeList + data.forEach { dump($0) } + case .failure(let error): + print("\(error)에러발생") + } + } } func networkTest() { @@ -23,8 +39,6 @@ class ViewController: UIViewController { URLQueryItem(name: "targetDt", value: DateGenerator.fetchTodayDate()) ] - let apiKey = Key.movieDataApiKey - var movieCode = "" let endpoint = Endpoint(api: dailyBoxOfficeAPI, queryItems: dailyBoxOfficeAPIAdditionalQueryItems, httpMethod: .get, httpHeaderField: .contentType, mime: .json) diff --git a/BoxOffice/Error/excuteError.swift b/BoxOffice/Error/NetworkManagerError.swift similarity index 95% rename from BoxOffice/Error/excuteError.swift rename to BoxOffice/Error/NetworkManagerError.swift index 3c9c1feeb..0b876772a 100644 --- a/BoxOffice/Error/excuteError.swift +++ b/BoxOffice/Error/NetworkManagerError.swift @@ -1,5 +1,5 @@ // -// DecodingError.swift +// NetworkManagerError.swift // BoxOffice // // Created by Toy, Morgan on 11/27/23. diff --git a/BoxOffice/Network/BoxOfficeEndpoint.swift b/BoxOffice/Network/BoxOfficeEndpoint.swift new file mode 100644 index 000000000..cc0d34dfc --- /dev/null +++ b/BoxOffice/Network/BoxOfficeEndpoint.swift @@ -0,0 +1,18 @@ +// +// DataManager.swift +// BoxOffice +// +// Created by 김우현 on 12/13/23. +// + +import Foundation + +struct BoxOfficeEndpoint { + private let networkManager = NetworkManager() + private let boxofficeAPI = API(schema: MovieURL.schema, host: MovieURL.movieHost, path: MovieURL.boxofficePath) + private let boxOfficeAPIAdditionalQueryItems = [ URLQueryItem(name: "targetDt", value: DateGenerator.fetchTodayDate()) ] + + var getBoxOfficeEndpoint: Endpoint { + Endpoint(api: boxofficeAPI, queryItems: boxOfficeAPIAdditionalQueryItems, httpMethod: .get, httpHeaderField: .contentType) + } +} diff --git a/BoxOffice/Network/Endpoint.swift b/BoxOffice/Network/Endpoint.swift index c7e61885e..ec404a333 100644 --- a/BoxOffice/Network/Endpoint.swift +++ b/BoxOffice/Network/Endpoint.swift @@ -13,7 +13,7 @@ struct Endpoint { private let httpHeaderField: HTTPHeaderField private let mime: MIME - init(api: API, queryItems: [URLQueryItem], httpMethod: HTTPMethod, httpHeaderField: HTTPHeaderField, mime: MIME) { + init(api: API, queryItems: [URLQueryItem], httpMethod: HTTPMethod, httpHeaderField: HTTPHeaderField, mime: MIME = MIME.json) { self.api = api self.queryItems = queryItems self.httpMethod = httpMethod diff --git a/BoxOffice/Network/HTTPHeaderField.swift b/BoxOffice/Network/HTTP/HTTPHeaderField.swift similarity index 100% rename from BoxOffice/Network/HTTPHeaderField.swift rename to BoxOffice/Network/HTTP/HTTPHeaderField.swift diff --git a/BoxOffice/Network/HTTPMethod.swift b/BoxOffice/Network/HTTP/HTTPMethod.swift similarity index 100% rename from BoxOffice/Network/HTTPMethod.swift rename to BoxOffice/Network/HTTP/HTTPMethod.swift From b1d1442c6f101fa9cc3865eb73b660f16e52afcc Mon Sep 17 00:00:00 2001 From: Morgan Date: Thu, 14 Dec 2023 16:35:55 +0900 Subject: [PATCH 3/8] =?UTF-8?q?feat:=20=EC=97=94=ED=8A=B8=ED=8F=AC?= =?UTF-8?q?=EC=9D=B8=ED=8A=B8=20=EC=95=88=EC=97=90=EC=84=9C=20=EB=84=A4?= =?UTF-8?q?=ED=8A=B8=EC=9B=8C=ED=82=B9=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UserInterfaceState.xcuserstate | Bin 110019 -> 59160 bytes BoxOffice/Controllers/ViewController.swift | 13 ++------- BoxOffice/Network/BoxOfficeEndpoint.swift | 26 ++++++++++++++++-- 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/BoxOffice.xcodeproj/project.xcworkspace/xcuserdata/hyunmac.xcuserdatad/UserInterfaceState.xcuserstate b/BoxOffice.xcodeproj/project.xcworkspace/xcuserdata/hyunmac.xcuserdatad/UserInterfaceState.xcuserstate index b0e3aa6a53aec90d437c6f1447fb24b4d6d83513..d7a71aaed933a9f1014f3106483c99a205c9eebb 100644 GIT binary patch literal 59160 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 literal 110019 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 uA-_K(RQ@#fw)_S3QLcybRlLUs!T Void){ + let endpoint = Endpoint(api: boxofficeAPI, queryItems: boxOfficeAPIAdditionalQueryItems, httpMethod: .get, httpHeaderField: .contentType) + + networkManager.executeRequest(endponit: endpoint, type: BoxOffice.self) { result in + switch result { + case .success(let safeData): + let data = safeData.boxOfficeResult.dailyBoxOfficeList + complitionHandler(data) + case .failure(let error): + print("\(error)에러발생") + } + } } } + +// +//networkManager.executeRequest(endponit: endpoint, type: BoxOffice.self) { result in +// switch result { +// case .success(let safeData): +// let data = safeData.boxOfficeResult.dailyBoxOfficeList +// data.forEach { dump($0) } +// case .failure(let error): +// print("\(error)에러발생") +// } +//} From f604fef7ab1a537846418d6a098ceaaec9fbbb72 Mon Sep 17 00:00:00 2001 From: Toy Date: Thu, 14 Dec 2023 17:04:05 +0900 Subject: [PATCH 4/8] =?UTF-8?q?refactor:=20network=20=EB=A0=88=EC=9D=B4?= =?UTF-8?q?=EC=96=B4=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BoxOffice.xcodeproj/project.pbxproj | 4 ++ BoxOffice/Controllers/ViewController.swift | 62 ++++------------------ BoxOffice/Network/BoxOfficeEndpoint.swift | 22 +++----- BoxOffice/Network/MovieDetailData.swift | 34 ++++++++++++ 4 files changed, 53 insertions(+), 69 deletions(-) create mode 100644 BoxOffice/Network/MovieDetailData.swift diff --git a/BoxOffice.xcodeproj/project.pbxproj b/BoxOffice.xcodeproj/project.pbxproj index 06d1778d5..c39ea88e2 100644 --- a/BoxOffice.xcodeproj/project.pbxproj +++ b/BoxOffice.xcodeproj/project.pbxproj @@ -12,6 +12,7 @@ 3C6A18D22B18790400E1DBC2 /* Movie.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C6A18D12B18790400E1DBC2 /* Movie.swift */; }; 3C6A18D42B18832E00E1DBC2 /* MovieURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C6A18D32B18832E00E1DBC2 /* MovieURL.swift */; }; 3C8280862B29AE7C0083DD64 /* BoxOfficeEndpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C8280852B29AE7C0083DD64 /* BoxOfficeEndpoint.swift */; }; + 3CAFE2012B2AE9FC006DF36E /* MovieDetailData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CAFE2002B2AE9FC006DF36E /* MovieDetailData.swift */; }; 3CB861712B21E824003113C1 /* DateGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CB861702B21E824003113C1 /* DateGenerator.swift */; }; 3CFF21642B28551C006B7A36 /* URLError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CFF21632B28551C006B7A36 /* URLError.swift */; }; 3CFF21662B285567006B7A36 /* Endpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CFF21652B285567006B7A36 /* Endpoint.swift */; }; @@ -46,6 +47,7 @@ 3C6A18D12B18790400E1DBC2 /* Movie.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Movie.swift; sourceTree = ""; }; 3C6A18D32B18832E00E1DBC2 /* MovieURL.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MovieURL.swift; sourceTree = ""; }; 3C8280852B29AE7C0083DD64 /* BoxOfficeEndpoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BoxOfficeEndpoint.swift; sourceTree = ""; }; + 3CAFE2002B2AE9FC006DF36E /* MovieDetailData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MovieDetailData.swift; sourceTree = ""; }; 3CB861702B21E824003113C1 /* DateGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateGenerator.swift; sourceTree = ""; }; 3CFF21632B28551C006B7A36 /* URLError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = URLError.swift; sourceTree = ""; }; 3CFF21652B285567006B7A36 /* Endpoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Endpoint.swift; sourceTree = ""; }; @@ -113,6 +115,7 @@ isa = PBXGroup; children = ( 3C8280852B29AE7C0083DD64 /* BoxOfficeEndpoint.swift */, + 3CAFE2002B2AE9FC006DF36E /* MovieDetailData.swift */, 92882BDE2B171A7F007AEA40 /* NetworkManager.swift */, 3CFF21652B285567006B7A36 /* Endpoint.swift */, 92AC83F72B21C30400D10264 /* API.swift */, @@ -300,6 +303,7 @@ 3CFF21662B285567006B7A36 /* Endpoint.swift in Sources */, 9239D0472B148D400008DE9F /* NetworkManagerError.swift in Sources */, 926CEE4E2B1C5787002B3FFE /* Key.swift in Sources */, + 3CAFE2012B2AE9FC006DF36E /* MovieDetailData.swift in Sources */, 3C6A18D42B18832E00E1DBC2 /* MovieURL.swift in Sources */, 3CFF21682B28558A006B7A36 /* HTTPHeaderField.swift in Sources */, 3CFF216A2B2855A7006B7A36 /* HTTPMethod.swift in Sources */, diff --git a/BoxOffice/Controllers/ViewController.swift b/BoxOffice/Controllers/ViewController.swift index 0cb6c77bf..15306ecb6 100644 --- a/BoxOffice/Controllers/ViewController.swift +++ b/BoxOffice/Controllers/ViewController.swift @@ -8,69 +8,25 @@ import UIKit class ViewController: UIViewController { - private var networkManager = NetworkManager() - var data = BoxOfficeEndpoint() + var data = BoxOfficeData() + var detail = MovieDetailData(value: "20190324") override func viewDidLoad() { super.viewDidLoad() -// networkTest() - test123() + boxOfiiceData() + movieDetailData() } - func test123() { - data.getBoxOfficeEndpoint { result in + func boxOfiiceData() { + data.getBoxOfficeData { result in result.forEach { dump($0) } } } - - func networkTest() { - let dailyBoxOfficeAPI = API(schema: MovieURL.schema, host: MovieURL.movieHost, path: MovieURL.boxofficePath) - - let dailyBoxOfficeAPIAdditionalQueryItems: [URLQueryItem] = [ - URLQueryItem(name: "targetDt", value: DateGenerator.fetchTodayDate()) - ] - - var movieCode = "" - - let endpoint = Endpoint(api: dailyBoxOfficeAPI, queryItems: dailyBoxOfficeAPIAdditionalQueryItems, httpMethod: .get, httpHeaderField: .contentType, mime: .json) - - let group = DispatchGroup() - - group.enter() - networkManager.executeRequest(endponit: endpoint, type: BoxOffice.self) { result in - defer {group.leave()} - - switch result { - case .success(let safeData): - let data = safeData.boxOfficeResult.dailyBoxOfficeList - data.forEach {dump($0)} - movieCode = data[0].movieCode - case .failure(let error): - print("\(error)에러발생") - } - } - - - group.notify(queue: .main) { - let movieDetailAPI = API(schema: MovieURL.schema, host: MovieURL.movieHost, path: MovieURL.movieDetailPath) - - let movieDetailAPIAdditionalQueryItems: [URLQueryItem] = [ - URLQueryItem(name: "movieCd", value: movieCode) - ] - - let endpoint = Endpoint(api: movieDetailAPI, queryItems: movieDetailAPIAdditionalQueryItems, httpMethod: .get, httpHeaderField: .contentType, mime: .json) - - self.networkManager.executeRequest(endponit: endpoint, type: Movie.self) { result in - switch result { - case .success(let safeData): - let data = safeData.infomationResult.movieInfomation - print(data) - case .failure(let error): - print("\(error)에러발생") - } - } + func movieDetailData() { + detail.getMovieDetailData { movie in + dump(movie) } } } diff --git a/BoxOffice/Network/BoxOfficeEndpoint.swift b/BoxOffice/Network/BoxOfficeEndpoint.swift index cceaa45e2..98d08a13d 100644 --- a/BoxOffice/Network/BoxOfficeEndpoint.swift +++ b/BoxOffice/Network/BoxOfficeEndpoint.swift @@ -7,16 +7,17 @@ import Foundation -struct BoxOfficeEndpoint { +struct BoxOfficeData { private let networkManager = NetworkManager() private let boxofficeAPI = API(schema: MovieURL.schema, host: MovieURL.movieHost, path: MovieURL.boxofficePath) private let boxOfficeAPIAdditionalQueryItems = [ URLQueryItem(name: "targetDt", value: DateGenerator.fetchTodayDate()) ] + private var getEndpoint: Endpoint { + Endpoint(api: boxofficeAPI, queryItems: boxOfficeAPIAdditionalQueryItems, httpMethod: .get, httpHeaderField: .contentType) + } - func getBoxOfficeEndpoint(complitionHandler: @escaping ([DailyBoxOfficeItem]) -> Void){ - let endpoint = Endpoint(api: boxofficeAPI, queryItems: boxOfficeAPIAdditionalQueryItems, httpMethod: .get, httpHeaderField: .contentType) - - networkManager.executeRequest(endponit: endpoint, type: BoxOffice.self) { result in + func getBoxOfficeData(complitionHandler: @escaping ([DailyBoxOfficeItem]) -> Void) { + networkManager.executeRequest(endponit: getEndpoint, type: BoxOffice.self) { result in switch result { case .success(let safeData): let data = safeData.boxOfficeResult.dailyBoxOfficeList @@ -27,14 +28,3 @@ struct BoxOfficeEndpoint { } } } - -// -//networkManager.executeRequest(endponit: endpoint, type: BoxOffice.self) { result in -// switch result { -// case .success(let safeData): -// let data = safeData.boxOfficeResult.dailyBoxOfficeList -// data.forEach { dump($0) } -// case .failure(let error): -// print("\(error)에러발생") -// } -//} diff --git a/BoxOffice/Network/MovieDetailData.swift b/BoxOffice/Network/MovieDetailData.swift new file mode 100644 index 000000000..a901b0335 --- /dev/null +++ b/BoxOffice/Network/MovieDetailData.swift @@ -0,0 +1,34 @@ +// +// MovieDetailData.swift +// BoxOffice +// +// Created by 김우현 on 12/14/23. +// + +import Foundation + +struct MovieDetailData { + private let networkManager = NetworkManager() + private let movieDetailAPI = API(schema: MovieURL.schema, host: MovieURL.movieHost, path: MovieURL.movieDetailPath) + private var movieDetailAPIAdditionalQueryItems: [URLQueryItem] + + private var getEndpoint: Endpoint { + Endpoint(api: movieDetailAPI, queryItems: movieDetailAPIAdditionalQueryItems, httpMethod: .get, httpHeaderField: .contentType) + } + + init(value: String) { + movieDetailAPIAdditionalQueryItems = [ URLQueryItem(name: "movieCd", value: value) ] + } + + func getMovieDetailData(complitionHandler: @escaping (MovieInfomation) -> Void) { + networkManager.executeRequest(endponit: getEndpoint, type: Movie.self) { result in + switch result { + case .success(let safeData): + let data = safeData.infomationResult.movieInfomation + complitionHandler(data) + case .failure(let error): + print("\(error)에러발생") + } + } + } +} From 292a114f881b7884780d06ec9a807242535484fe Mon Sep 17 00:00:00 2001 From: Morgan Date: Thu, 14 Dec 2023 17:13:48 +0900 Subject: [PATCH 5/8] =?UTF-8?q?feat:=20=EA=B7=B8=EB=A3=B9=EC=A0=95?= =?UTF-8?q?=EB=A6=AC,=20=EB=84=A4=EC=9D=B4=EB=B0=8D=EC=88=98=EC=A0=95,=20H?= =?UTF-8?q?TTP=ED=97=A4=EB=8D=94=20=EB=A9=94=EC=84=9C=EB=93=9C=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BoxOffice.xcodeproj/project.pbxproj | 46 ++++++++++-------- .../UserInterfaceState.xcuserstate | Bin 59160 -> 77298 bytes BoxOffice/Controllers/ViewController.swift | 9 ++-- .../BoxOfficeData.swift} | 2 +- .../Network/{ => Data}/MovieDetailData.swift | 2 +- BoxOffice/Network/DateGenerator.swift | 2 +- BoxOffice/Network/HTTP/HTTPHeaderField.swift | 8 ++- BoxOffice/Network/HTTP/HTTPMethod.swift | 2 + BoxOffice/Network/{ => NameSpace}/Key.swift | 0 .../Network/{ => NameSpace}/MovieURL.swift | 0 .../MovieDataDecoerTests.swift | 45 ----------------- 11 files changed, 37 insertions(+), 79 deletions(-) rename BoxOffice/Network/{BoxOfficeEndpoint.swift => Data/BoxOfficeData.swift} (96%) rename BoxOffice/Network/{ => Data}/MovieDetailData.swift (96%) rename BoxOffice/Network/{ => NameSpace}/Key.swift (100%) rename BoxOffice/Network/{ => NameSpace}/MovieURL.swift (100%) delete mode 100644 MovieDataDecoerTests/MovieDataDecoerTests.swift diff --git a/BoxOffice.xcodeproj/project.pbxproj b/BoxOffice.xcodeproj/project.pbxproj index c39ea88e2..82a3be95d 100644 --- a/BoxOffice.xcodeproj/project.pbxproj +++ b/BoxOffice.xcodeproj/project.pbxproj @@ -7,11 +7,10 @@ objects = { /* Begin PBXBuildFile section */ - 3C3E80152B148FBC002AF4A2 /* MovieDataDecoerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C3E80142B148FBC002AF4A2 /* MovieDataDecoerTests.swift */; }; 3C4D67212B15848900B8926A /* BoxOffice.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C4D67202B15848900B8926A /* BoxOffice.swift */; }; 3C6A18D22B18790400E1DBC2 /* Movie.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C6A18D12B18790400E1DBC2 /* Movie.swift */; }; 3C6A18D42B18832E00E1DBC2 /* MovieURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C6A18D32B18832E00E1DBC2 /* MovieURL.swift */; }; - 3C8280862B29AE7C0083DD64 /* BoxOfficeEndpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C8280852B29AE7C0083DD64 /* BoxOfficeEndpoint.swift */; }; + 3C8280862B29AE7C0083DD64 /* BoxOfficeData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C8280852B29AE7C0083DD64 /* BoxOfficeData.swift */; }; 3CAFE2012B2AE9FC006DF36E /* MovieDetailData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CAFE2002B2AE9FC006DF36E /* MovieDetailData.swift */; }; 3CB861712B21E824003113C1 /* DateGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CB861702B21E824003113C1 /* DateGenerator.swift */; }; 3CFF21642B28551C006B7A36 /* URLError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CFF21632B28551C006B7A36 /* URLError.swift */; }; @@ -42,11 +41,10 @@ /* Begin PBXFileReference section */ 3C3E80122B148FBC002AF4A2 /* MovieDataDecoerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MovieDataDecoerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 3C3E80142B148FBC002AF4A2 /* MovieDataDecoerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MovieDataDecoerTests.swift; sourceTree = ""; }; 3C4D67202B15848900B8926A /* BoxOffice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BoxOffice.swift; sourceTree = ""; }; 3C6A18D12B18790400E1DBC2 /* Movie.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Movie.swift; sourceTree = ""; }; 3C6A18D32B18832E00E1DBC2 /* MovieURL.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MovieURL.swift; sourceTree = ""; }; - 3C8280852B29AE7C0083DD64 /* BoxOfficeEndpoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BoxOfficeEndpoint.swift; sourceTree = ""; }; + 3C8280852B29AE7C0083DD64 /* BoxOfficeData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BoxOfficeData.swift; sourceTree = ""; }; 3CAFE2002B2AE9FC006DF36E /* MovieDetailData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MovieDetailData.swift; sourceTree = ""; }; 3CB861702B21E824003113C1 /* DateGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateGenerator.swift; sourceTree = ""; }; 3CFF21632B28551C006B7A36 /* URLError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = URLError.swift; sourceTree = ""; }; @@ -94,14 +92,6 @@ path = Model; sourceTree = ""; }; - 3C3E80132B148FBC002AF4A2 /* MovieDataDecoerTests */ = { - isa = PBXGroup; - children = ( - 3C3E80142B148FBC002AF4A2 /* MovieDataDecoerTests.swift */, - ); - path = MovieDataDecoerTests; - sourceTree = ""; - }; 3C8280842B29AD2A0083DD64 /* HTTP */ = { isa = PBXGroup; children = ( @@ -114,15 +104,13 @@ 3CD5DDAD2B171CF30013E5C0 /* Network */ = { isa = PBXGroup; children = ( - 3C8280852B29AE7C0083DD64 /* BoxOfficeEndpoint.swift */, - 3CAFE2002B2AE9FC006DF36E /* MovieDetailData.swift */, + 928029CD2B2AEFBA007D604E /* NameSpace */, + 928029CC2B2AEF94007D604E /* Data */, + 3C8280842B29AD2A0083DD64 /* HTTP */, + 3CB861702B21E824003113C1 /* DateGenerator.swift */, 92882BDE2B171A7F007AEA40 /* NetworkManager.swift */, 3CFF21652B285567006B7A36 /* Endpoint.swift */, 92AC83F72B21C30400D10264 /* API.swift */, - 3C8280842B29AD2A0083DD64 /* HTTP */, - 3CB861702B21E824003113C1 /* DateGenerator.swift */, - 3C6A18D32B18832E00E1DBC2 /* MovieURL.swift */, - 926CEE4D2B1C5787002B3FFE /* Key.swift */, ); path = Network; sourceTree = ""; @@ -159,7 +147,6 @@ isa = PBXGroup; children = ( 63DF20ED2970E1A0005DF7D1 /* BoxOffice */, - 3C3E80132B148FBC002AF4A2 /* MovieDataDecoerTests */, 63DF20EC2970E1A0005DF7D1 /* Products */, ); sourceTree = ""; @@ -187,6 +174,24 @@ path = BoxOffice; sourceTree = ""; }; + 928029CC2B2AEF94007D604E /* Data */ = { + isa = PBXGroup; + children = ( + 3C8280852B29AE7C0083DD64 /* BoxOfficeData.swift */, + 3CAFE2002B2AE9FC006DF36E /* MovieDetailData.swift */, + ); + path = Data; + sourceTree = ""; + }; + 928029CD2B2AEFBA007D604E /* NameSpace */ = { + isa = PBXGroup; + children = ( + 3C6A18D32B18832E00E1DBC2 /* MovieURL.swift */, + 926CEE4D2B1C5787002B3FFE /* Key.swift */, + ); + path = NameSpace; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -288,7 +293,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 3C3E80152B148FBC002AF4A2 /* MovieDataDecoerTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -297,7 +301,7 @@ buildActionMask = 2147483647; files = ( 3CB861712B21E824003113C1 /* DateGenerator.swift in Sources */, - 3C8280862B29AE7C0083DD64 /* BoxOfficeEndpoint.swift in Sources */, + 3C8280862B29AE7C0083DD64 /* BoxOfficeData.swift in Sources */, 92AC83F82B21C30400D10264 /* API.swift in Sources */, 3CFF21642B28551C006B7A36 /* URLError.swift in Sources */, 3CFF21662B285567006B7A36 /* Endpoint.swift in Sources */, diff --git a/BoxOffice.xcodeproj/project.xcworkspace/xcuserdata/hyunmac.xcuserdatad/UserInterfaceState.xcuserstate b/BoxOffice.xcodeproj/project.xcworkspace/xcuserdata/hyunmac.xcuserdatad/UserInterfaceState.xcuserstate index d7a71aaed933a9f1014f3106483c99a205c9eebb..cfa80d34417665ff7cd1982b9e9fcb73ab94e279 100644 GIT binary patch literal 77298 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 literal 59160 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 diff --git a/BoxOffice/Controllers/ViewController.swift b/BoxOffice/Controllers/ViewController.swift index 15306ecb6..5bada031f 100644 --- a/BoxOffice/Controllers/ViewController.swift +++ b/BoxOffice/Controllers/ViewController.swift @@ -8,9 +8,8 @@ import UIKit class ViewController: UIViewController { - private var networkManager = NetworkManager() - var data = BoxOfficeData() - var detail = MovieDetailData(value: "20190324") + private let data = BoxOfficeData() + private let detail = MovieDetailData(value: "20190324") override func viewDidLoad() { super.viewDidLoad() @@ -18,13 +17,13 @@ class ViewController: UIViewController { movieDetailData() } - func boxOfiiceData() { + private func boxOfiiceData() { data.getBoxOfficeData { result in result.forEach { dump($0) } } } - func movieDetailData() { + private func movieDetailData() { detail.getMovieDetailData { movie in dump(movie) } diff --git a/BoxOffice/Network/BoxOfficeEndpoint.swift b/BoxOffice/Network/Data/BoxOfficeData.swift similarity index 96% rename from BoxOffice/Network/BoxOfficeEndpoint.swift rename to BoxOffice/Network/Data/BoxOfficeData.swift index 98d08a13d..7ef3edcd4 100644 --- a/BoxOffice/Network/BoxOfficeEndpoint.swift +++ b/BoxOffice/Network/Data/BoxOfficeData.swift @@ -2,7 +2,7 @@ // DataManager.swift // BoxOffice // -// Created by 김우현 on 12/13/23. +// Created by Toy, Morgan on 12/13/23. // import Foundation diff --git a/BoxOffice/Network/MovieDetailData.swift b/BoxOffice/Network/Data/MovieDetailData.swift similarity index 96% rename from BoxOffice/Network/MovieDetailData.swift rename to BoxOffice/Network/Data/MovieDetailData.swift index a901b0335..d3a38c291 100644 --- a/BoxOffice/Network/MovieDetailData.swift +++ b/BoxOffice/Network/Data/MovieDetailData.swift @@ -2,7 +2,7 @@ // MovieDetailData.swift // BoxOffice // -// Created by 김우현 on 12/14/23. +// Created by Toy, Morgan on 12/14/23. // import Foundation diff --git a/BoxOffice/Network/DateGenerator.swift b/BoxOffice/Network/DateGenerator.swift index 37abcef17..1fe2e3010 100644 --- a/BoxOffice/Network/DateGenerator.swift +++ b/BoxOffice/Network/DateGenerator.swift @@ -2,7 +2,7 @@ // DateGenerator.swift // BoxOffice // -// Created by on 12/7/23. +// Created by Toy, Morgan on 12/7/23. // import Foundation diff --git a/BoxOffice/Network/HTTP/HTTPHeaderField.swift b/BoxOffice/Network/HTTP/HTTPHeaderField.swift index 62dca7fec..58e1dda0f 100644 --- a/BoxOffice/Network/HTTP/HTTPHeaderField.swift +++ b/BoxOffice/Network/HTTP/HTTPHeaderField.swift @@ -13,9 +13,7 @@ enum HTTPHeaderField: String { enum MIME: String { case html = "text/html" case json = "application/json" - case iamge = "image" - case gzip - case deflate - case identity - + case iamgeGif = "image/gif" + case imageJpeg = "image/jpeg" + case gzip = "application/gzip" } diff --git a/BoxOffice/Network/HTTP/HTTPMethod.swift b/BoxOffice/Network/HTTP/HTTPMethod.swift index dc1c55d0b..015fc49bf 100644 --- a/BoxOffice/Network/HTTP/HTTPMethod.swift +++ b/BoxOffice/Network/HTTP/HTTPMethod.swift @@ -7,4 +7,6 @@ enum HTTPMethod: String { case get = "GET" case post = "POST" + case put = "PUT" + case delete = "DELETE" } diff --git a/BoxOffice/Network/Key.swift b/BoxOffice/Network/NameSpace/Key.swift similarity index 100% rename from BoxOffice/Network/Key.swift rename to BoxOffice/Network/NameSpace/Key.swift diff --git a/BoxOffice/Network/MovieURL.swift b/BoxOffice/Network/NameSpace/MovieURL.swift similarity index 100% rename from BoxOffice/Network/MovieURL.swift rename to BoxOffice/Network/NameSpace/MovieURL.swift diff --git a/MovieDataDecoerTests/MovieDataDecoerTests.swift b/MovieDataDecoerTests/MovieDataDecoerTests.swift deleted file mode 100644 index 0ccce9a38..000000000 --- a/MovieDataDecoerTests/MovieDataDecoerTests.swift +++ /dev/null @@ -1,45 +0,0 @@ -// -// MovieDataDecoerTests.swift -// MovieDataDecoerTests -// -// Created by Morgan, Toy on 11/27/23. -// - -//import XCTest -//@testable import BoxOffice -// -//final class MovieDataDecoerTests: XCTestCase { -// private var sut: BoxOffice! -// -// override func setUpWithError() throws { -// try super.setUpWithError() -// sut = try DataDecoder.decodeAssetData(assetName: "box_office_sample", decoder: JSONDecoder()) -// } -// -// override func tearDownWithError() throws { -// try super.tearDownWithError() -// sut = nil -// } -// -// func test_box_office_sample_디코딩후_boxofficeType은_일별_박스오피스를_반환한다() { -// // given -// let result = sut.boxOfficeResult.boxOfficeType -// print(result) -// // when -// let boxofficeType = "일별 박스오피스" -// -// // then -// XCTAssertEqual(result, boxofficeType) -// } -// -// func test_box_office_sample_디코딩후_dailyBoxOfficeList의_0번째요소의_movieName가_경관의_피_를반환한다() { -// // given -// let result = sut.boxOfficeResult.dailyBoxOfficeList[0].movieName -// -// // when -// let movieName = "경관의 피" -// -// // then -// XCTAssertEqual(result, movieName) -// } -//} From 7d2071e3c43b4cccc854166f0816d849bf39e737 Mon Sep 17 00:00:00 2001 From: Morgan Date: Thu, 14 Dec 2023 18:02:42 +0900 Subject: [PATCH 6/8] =?UTF-8?q?feat:=20encoding=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UserInterfaceState.xcuserstate | Bin 77298 -> 92720 bytes BoxOffice/Network/Data/MovieDetailData.swift | 9 ++++++ BoxOffice/Network/Endpoint.swift | 13 +++++++- BoxOffice/Network/NetworkManager.swift | 30 ++++++++++++++++-- 4 files changed, 49 insertions(+), 3 deletions(-) diff --git a/BoxOffice.xcodeproj/project.xcworkspace/xcuserdata/hyunmac.xcuserdatad/UserInterfaceState.xcuserstate b/BoxOffice.xcodeproj/project.xcworkspace/xcuserdata/hyunmac.xcuserdatad/UserInterfaceState.xcuserstate index cfa80d34417665ff7cd1982b9e9fcb73ab94e279..84a7911a969eb46d76f7d46251f5440c53101375 100644 GIT binary patch literal 92720 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 diff --git a/BoxOffice/Network/Data/MovieDetailData.swift b/BoxOffice/Network/Data/MovieDetailData.swift index d3a38c291..99e4c6ec7 100644 --- a/BoxOffice/Network/Data/MovieDetailData.swift +++ b/BoxOffice/Network/Data/MovieDetailData.swift @@ -7,6 +7,15 @@ import Foundation +//endpoint +// +//api: API, +//queryItems:[URLQueryItem], +//var request = URLRequest(url: url) +//request.httpMethod = "GET" +//request.addValue("application/json", forHTTPHeaderField: "Content-Type") +//json + struct MovieDetailData { private let networkManager = NetworkManager() private let movieDetailAPI = API(schema: MovieURL.schema, host: MovieURL.movieHost, path: MovieURL.movieDetailPath) diff --git a/BoxOffice/Network/Endpoint.swift b/BoxOffice/Network/Endpoint.swift index ec404a333..a56f30393 100644 --- a/BoxOffice/Network/Endpoint.swift +++ b/BoxOffice/Network/Endpoint.swift @@ -21,7 +21,7 @@ struct Endpoint { self.mime = mime } - func asURLRequest() throws -> URLRequest { + func asURLGetRequest() throws -> URLRequest { guard let url = api.getURL(apikey: Key.movieDataApiKey, queryItems: queryItems) else { throw URLError.invalidURL } var request = URLRequest(url: url) @@ -30,4 +30,15 @@ struct Endpoint { return request } + + func asURLPostRequset(data: Data) throws -> URLRequest { + guard let url = api.getURL(apikey: Key.movieDataApiKey, queryItems: queryItems) else { throw URLError.invalidURL } + + var request = URLRequest(url: url) + request.httpMethod = httpMethod.rawValue + request.addValue(mime.rawValue, forHTTPHeaderField: httpHeaderField.rawValue) + request.httpBody = data + + return request + } } diff --git a/BoxOffice/Network/NetworkManager.swift b/BoxOffice/Network/NetworkManager.swift index 4b8b7fcf2..9d3ce1365 100644 --- a/BoxOffice/Network/NetworkManager.swift +++ b/BoxOffice/Network/NetworkManager.swift @@ -9,7 +9,7 @@ import Foundation struct NetworkManager { func executeRequest(endponit: Endpoint, type: T.Type, complitionHandler: @escaping (Result) -> Void) { - guard let request = try? endponit.asURLRequest() else { return } + guard let request = try? endponit.asURLGetRequest() else { return } let task = URLSession.shared.dataTask(with: request) { (data, response, error) in guard error == nil else { @@ -29,7 +29,7 @@ struct NetworkManager { do { let decoder = JSONDecoder() - let safeData = try decoder.decode(T.self, from: data) + let safeData = try decoder.decode(type.self, from: data) complitionHandler(.success(safeData)) } catch { complitionHandler(.failure(NetworkManagerError.decodeError)) @@ -37,4 +37,30 @@ struct NetworkManager { } task.resume() } + + func sendRequest(endponit: Endpoint, value: T) { + let encoder = JSONEncoder() + + guard let jsonData = try? encoder.encode(value), let request = try? endponit.asURLPostRequset(data: jsonData) else { return } + + let task = URLSession.shared.dataTask(with: request) { (data, response, error) in + guard error == nil else { + print(NetworkManagerError.urlSessionError) + return + } + + guard let httpResponse = response as? HTTPURLResponse, (200...299).contains(httpResponse.statusCode) else { + print(NetworkManagerError.responseError) + return + } + + guard let data = data else { + print(NetworkManagerError.invalidData) + return + } + + print(data) + } + task.resume() + } } From 79ea6ba08b943088bcc9807270f8bd3e2602044d Mon Sep 17 00:00:00 2001 From: Morgan Date: Mon, 18 Dec 2023 20:18:10 +0900 Subject: [PATCH 7/8] =?UTF-8?q?feat:=20error=EC=B2=98=EB=A6=AC=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UserInterfaceState.xcuserstate | Bin 92720 -> 92814 bytes BoxOffice/Network/NetworkManager.swift | 15 ++++++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/BoxOffice.xcodeproj/project.xcworkspace/xcuserdata/hyunmac.xcuserdatad/UserInterfaceState.xcuserstate b/BoxOffice.xcodeproj/project.xcworkspace/xcuserdata/hyunmac.xcuserdatad/UserInterfaceState.xcuserstate index 84a7911a969eb46d76f7d46251f5440c53101375..e6d5aa66af51ce9ee62d47d879162c2fba87183f 100644 GIT binary patch literal 92814 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: Endpoint, value: T) { + func sendRequest(endponit: Endpoint, value: T, complitionHandler: @escaping (Result) -> Void) { let encoder = JSONEncoder() guard let jsonData = try? encoder.encode(value), let request = try? endponit.asURLPostRequset(data: jsonData) else { return } let task = URLSession.shared.dataTask(with: request) { (data, response, error) in guard error == nil else { - print(NetworkManagerError.urlSessionError) + complitionHandler(.failure(NetworkManagerError.urlSessionError)) return } guard let httpResponse = response as? HTTPURLResponse, (200...299).contains(httpResponse.statusCode) else { - print(NetworkManagerError.responseError) + complitionHandler(.failure(NetworkManagerError.responseError)) return } guard let data = data else { - print(NetworkManagerError.invalidData) + complitionHandler(.failure(NetworkManagerError.invalidData)) + return + } + + guard let successData = data as? T else { + complitionHandler(.failure(NetworkManagerError.invalidData)) return } - print(data) + complitionHandler(.success(successData)) } task.resume() } From 68e116d7180fe1a62f5859c7a8842dfb489a7667 Mon Sep 17 00:00:00 2001 From: Toy Date: Mon, 18 Dec 2023 21:06:01 +0900 Subject: [PATCH 8/8] =?UTF-8?q?refactor:=20asURLRequest=20=EB=A9=94?= =?UTF-8?q?=EC=84=9C=EB=93=9C=20=EB=84=A4=EC=9D=B4=EB=B0=8D=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BoxOffice/Network/Endpoint.swift | 2 +- BoxOffice/Network/NetworkManager.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/BoxOffice/Network/Endpoint.swift b/BoxOffice/Network/Endpoint.swift index a56f30393..9d90f33fe 100644 --- a/BoxOffice/Network/Endpoint.swift +++ b/BoxOffice/Network/Endpoint.swift @@ -31,7 +31,7 @@ struct Endpoint { return request } - func asURLPostRequset(data: Data) throws -> URLRequest { + func asURLPostRequest(data: Data) throws -> URLRequest { guard let url = api.getURL(apikey: Key.movieDataApiKey, queryItems: queryItems) else { throw URLError.invalidURL } var request = URLRequest(url: url) diff --git a/BoxOffice/Network/NetworkManager.swift b/BoxOffice/Network/NetworkManager.swift index cb9c2fd8c..ee7abc0f8 100644 --- a/BoxOffice/Network/NetworkManager.swift +++ b/BoxOffice/Network/NetworkManager.swift @@ -41,7 +41,7 @@ struct NetworkManager { func sendRequest(endponit: Endpoint, value: T, complitionHandler: @escaping (Result) -> Void) { let encoder = JSONEncoder() - guard let jsonData = try? encoder.encode(value), let request = try? endponit.asURLPostRequset(data: jsonData) else { return } + guard let jsonData = try? encoder.encode(value), let request = try? endponit.asURLPostRequest(data: jsonData) else { return } let task = URLSession.shared.dataTask(with: request) { (data, response, error) in guard error == nil else {