Skip to content

Commit

Permalink
Fix issue with syncing previously empty tiles
Browse files Browse the repository at this point in the history
Handle nil lastModifiedAfter values from SDK.  No changes to the SDK.
  • Loading branch information
stauffer-garmin committed Jun 11, 2021
1 parent c62ed5a commit 88fb7d6
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,16 @@ class ActiveCaptainAPIClient {
sendRequest(.post, components)
}

func syncMarkers(tileX:Int, tileY:Int, lastModifiedAfter:String) -> Promise<String> {
func syncMarkers(tileX:Int, tileY:Int, lastModifiedAfter:String?) -> Promise<String> {
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)
Expand All @@ -103,10 +109,16 @@ class ActiveCaptainAPIClient {
}
}

func syncReviews(tileX:Int, tileY:Int, lastModifiedAfter:String) -> Promise<String> {
func syncReviews(tileX:Int, tileY:Int, lastModifiedAfter:String?) -> Promise<String> {
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)
Expand Down
12 changes: 2 additions & 10 deletions ActiveCaptainSample/ActiveCaptainSample/ActiveCaptainManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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<SyncResult> in
let resultCount = Int(self.database.processSyncMarkersResponse(withJson: syncResponse, tileX: Int32(tileCoordinate.tileX), tileY: Int32(tileCoordinate.tileY)))

Expand Down Expand Up @@ -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<SyncResult> in
let resultCount = Int(self.database.processSyncReviewsResponse(withJson: syncResponse, tileX: Int32(tileCoordinate.tileX), tileY: Int32(tileCoordinate.tileY)))

Expand Down

0 comments on commit 88fb7d6

Please sign in to comment.