From c1d7c3622306188ce6d2f7f50216229af33f8759 Mon Sep 17 00:00:00 2001 From: James Wolfe Date: Thu, 14 Jan 2021 15:58:03 +0000 Subject: [PATCH] Added getaddress.io to api sources --- .../UserInterfaceState.xcuserstate | Bin 31186 -> 37031 bytes AtlasKit.podspec | 2 +- Sources/AtlasKit/AtlasKit.swift | 76 +++++++++++++++++- Sources/AtlasKit/AtlasKitDatasource.swift | 3 + 4 files changed, 77 insertions(+), 4 deletions(-) diff --git a/.swiftpm/xcode/package.xcworkspace/xcuserdata/jameswolfe.xcuserdatad/UserInterfaceState.xcuserstate b/.swiftpm/xcode/package.xcworkspace/xcuserdata/jameswolfe.xcuserdatad/UserInterfaceState.xcuserstate index 48b5a59d5e6bfccb2ea5b5bf10706cfc895a5de4..2a4c7bc94e65c14fb3cee26039b47ac677e4d71e 100644 GIT binary patch literal 37031 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 QK5zSoQXIb>_nM^t1KP4|&;S4c diff --git a/AtlasKit.podspec b/AtlasKit.podspec index 389daf3..d050ea2 100644 --- a/AtlasKit.podspec +++ b/AtlasKit.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "AtlasKit" - spec.version = "0.1.4" + spec.version = "0.1.5" spec.license = "MIT" spec.summary = "A swift library for quickly integrating a location search in your app." spec.homepage = "https://github.com/appoly/AtlasKit" diff --git a/Sources/AtlasKit/AtlasKit.swift b/Sources/AtlasKit/AtlasKit.swift index 88d3fe4..7f37bbd 100644 --- a/Sources/AtlasKit/AtlasKit.swift +++ b/Sources/AtlasKit/AtlasKit.swift @@ -63,6 +63,8 @@ public class AtlasKit { performMapKitSearch(term, completion: completion) case .google: performGooglePlacesSearch(term, completion: completion) + case .getAddress: + performGetAddressSearch(term, completion: completion) } } @@ -111,9 +113,9 @@ public class AtlasKit { let request = sessionManager.request(URL(string: "https://maps.googleapis.com/maps/api/place/findplacefromtext/json")!, method: .get, - parameters: parameters, - encoding: URLEncoding.methodDependent, - headers: nil) + parameters: parameters, + encoding: URLEncoding.methodDependent, + headers: nil) request.validate(statusCode: 200..<300).responseJSON { [weak self] (response) in switch response.result { @@ -136,12 +138,70 @@ public class AtlasKit { } + private func performGetAddressSearch(_ postcode: String, completion: @escaping ([AtlasKitPlace]?, AtlasKitError?) -> Void) { + let parameters = [ + "api-key": datasource.apiKey! + ] + + let request = sessionManager.request(URL(string: "https://api.getaddress.io/find/\(postcode)")!, + method: .get, + parameters: parameters, + encoding: URLEncoding.methodDependent, + headers: nil) + + request.validate(statusCode: 200..<300).responseJSON { [weak self] (response) in + switch response.result { + case .failure(_): + completion(nil, .generic) + case .success(let value): + guard let json = value as? [String: Any] else { + completion(nil, .generic) + return + } + + guard let data = json["addresses"] as? [String] else { + completion(nil, .generic) + return + } + + guard let latitude = json["latitude"] as? Double else { + completion(nil, .generic) + return + } + + guard let longitude = json["longitude"] as? Double else { + completion(nil, .generic) + return + } + + completion(self?.formatResults(data, postcode: postcode.capitalized.removingAllWhitespaces, latitude: latitude, longitude: longitude), nil) + } + } + } + + // MARK: - Utilities private func formatResults(_ items: [MKPlacemark]) -> [AtlasKitPlace] { return items.map({ AtlasKitPlace(streetAddress: $0.postalAddress!.street, city: $0.postalAddress!.city, postcode: $0.postalAddress!.postalCode, state: $0.postalAddress!.state, country: $0.postalAddress!.country, location: $0.coordinate) }) } + + + private func formatResults(_ items: [String], postcode: String, latitude: Double, longitude: Double) -> [AtlasKitPlace] { + return items.map({ + let components = $0.split(separator: ",") + let address1 = components.indices.contains(0) ? components[0] : "" + let address2 = components.indices.contains(1) ? components[1] : "" + let address3 = components.indices.contains(2) ? components[2] : "" + let address4 = components.indices.contains(3) ? components[3] : "" + let address = ([address1, address2, address3, address4].filter({ !$0.isEmpty }).map({ String($0) }).joined(separator: ", ")) + let city = components.indices.contains(5) ? components[5] : "" + let county = components.indices.contains(6) ? components[6] : "" + + return AtlasKitPlace(streetAddress: address, city: String(city), postcode: postcode, state: String(county), country: "United Kingdom", location: CLLocationCoordinate2D(latitude: latitude, longitude: longitude)) + }) + } private func formatResults(_ items: [[String: Any]]) -> [AtlasKitPlace] { @@ -165,3 +225,13 @@ public class AtlasKit { } } + + + +extension String { + + var removingAllWhitespaces: Self { + filter { !$0.isWhitespace } + } + +} diff --git a/Sources/AtlasKit/AtlasKitDatasource.swift b/Sources/AtlasKit/AtlasKitDatasource.swift index cc6b0c7..6562e52 100644 --- a/Sources/AtlasKit/AtlasKitDatasource.swift +++ b/Sources/AtlasKit/AtlasKitDatasource.swift @@ -15,6 +15,7 @@ import Foundation public enum AtlasKitDataSource { case google(key: String) case apple + case getAddress(key: String) } @@ -23,6 +24,8 @@ extension AtlasKitDataSource { switch self { case .google(let key): return key + case .getAddress(let key): + return key case .apple: return nil }