diff --git a/ActiveCaptainSample/ActiveCaptainSample/ActiveCaptainAPIClient.swift b/ActiveCaptainSample/ActiveCaptainSample/ActiveCaptainAPIClient.swift index 5dcc1a7..0548b14 100644 --- a/ActiveCaptainSample/ActiveCaptainSample/ActiveCaptainAPIClient.swift +++ b/ActiveCaptainSample/ActiveCaptainSample/ActiveCaptainAPIClient.swift @@ -91,10 +91,16 @@ class ActiveCaptainAPIClient { sendRequest(.post, components) } - func syncMarkers(tileX:Int, tileY:Int, lastModifiedAfter:String) -> Promise { + func syncMarkers(tileX:Int, tileY:Int, lastModifiedAfter:String?) -> Promise { var components = URLComponents(string:ActiveCaptainConfiguration.apiBaseURL)! components.path += "/api/v2/points-of-interest/sync" - components.queryItems = [URLQueryItem(name:"tileX", value:String(tileX)), URLQueryItem(name:"tileY", value:String(tileY)), URLQueryItem(name:"lastModifiedAfter", value:lastModifiedAfter)] + var queryItems = [URLQueryItem(name:"tileX", value:String(tileX)), URLQueryItem(name:"tileY", value:String(tileY))] + + if let lastModifiedAfter = lastModifiedAfter { + queryItems.append(URLQueryItem(name:"lastModifiedAfter", value:lastModifiedAfter)) + } + + components.queryItems = queryItems return firstly { sendRequest(.get, components) @@ -103,10 +109,16 @@ class ActiveCaptainAPIClient { } } - func syncReviews(tileX:Int, tileY:Int, lastModifiedAfter:String) -> Promise { + func syncReviews(tileX:Int, tileY:Int, lastModifiedAfter:String?) -> Promise { var components = URLComponents(string:ActiveCaptainConfiguration.apiBaseURL)! components.path += "/api/v2/reviews/sync" - components.queryItems = [URLQueryItem(name:"tileX", value:String(tileX)), URLQueryItem(name:"tileY", value:String(tileY)), URLQueryItem(name:"lastModifiedAfter", value:lastModifiedAfter)] + var queryItems = [URLQueryItem(name:"tileX", value:String(tileX)), URLQueryItem(name:"tileY", value:String(tileY))] + + if let lastModifiedAfter = lastModifiedAfter { + queryItems.append(URLQueryItem(name:"lastModifiedAfter", value:lastModifiedAfter)) + } + + components.queryItems = queryItems return firstly { sendRequest(.get, components) diff --git a/ActiveCaptainSample/ActiveCaptainSample/ActiveCaptainManager.swift b/ActiveCaptainSample/ActiveCaptainSample/ActiveCaptainManager.swift index 706193b..3b9b1c0 100644 --- a/ActiveCaptainSample/ActiveCaptainSample/ActiveCaptainManager.swift +++ b/ActiveCaptainSample/ActiveCaptainSample/ActiveCaptainManager.swift @@ -333,14 +333,10 @@ final class ActiveCaptainManager { var lastModifiedAfter = lastModifiedAfter if lastModifiedAfter == nil { lastModifiedAfter = database.getTileLastModified(withTileX: Int32(tileCoordinate.tileX), tileY: Int32(tileCoordinate.tileY))?.markerLastUpdate - - if lastModifiedAfter == nil { - return Promise.value(SyncResult.fail) - } } return firstly { - ActiveCaptainAPIClient().syncMarkers(tileX: tileCoordinate.tileX, tileY: tileCoordinate.tileY, lastModifiedAfter: lastModifiedAfter!) + ActiveCaptainAPIClient().syncMarkers(tileX: tileCoordinate.tileX, tileY: tileCoordinate.tileY, lastModifiedAfter: lastModifiedAfter) }.then { (syncResponse: String) -> Promise in let resultCount = Int(self.database.processSyncMarkersResponse(withJson: syncResponse, tileX: Int32(tileCoordinate.tileX), tileY: Int32(tileCoordinate.tileY))) @@ -374,14 +370,10 @@ final class ActiveCaptainManager { var lastModifiedAfter = lastModifiedAfter if lastModifiedAfter == nil { lastModifiedAfter = database.getTileLastModified(withTileX: Int32(tileCoordinate.tileX), tileY: Int32(tileCoordinate.tileY))?.reviewLastUpdate - - if lastModifiedAfter == nil { - return Promise.value(SyncResult.fail) - } } return firstly { - ActiveCaptainAPIClient().syncReviews(tileX: tileCoordinate.tileX, tileY: tileCoordinate.tileY, lastModifiedAfter: lastModifiedAfter!) + ActiveCaptainAPIClient().syncReviews(tileX: tileCoordinate.tileX, tileY: tileCoordinate.tileY, lastModifiedAfter: lastModifiedAfter) }.then { (syncResponse: String) -> Promise in let resultCount = Int(self.database.processSyncReviewsResponse(withJson: syncResponse, tileX: Int32(tileCoordinate.tileX), tileY: Int32(tileCoordinate.tileY)))