Manos Chorianopoulos

Added SDK initialization checks, Safe unwrapping, Error Logging and isSDKInitialized method

......@@ -7,7 +7,7 @@
<key>Pods-SwiftWarplyFramework.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
<integer>1</integer>
</dict>
</dict>
</dict>
......
......@@ -7,7 +7,7 @@
<key>SwiftWarplyFramework.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>1</integer>
<integer>0</integer>
</dict>
</dict>
</dict>
......
......@@ -2116,14 +2116,14 @@ public class swiftApi {
let instanceOfMyApi = MyApi()
let campaignInfo = instanceOfMyApi.provideInfoForCampaign()
let finalUrl = (campaign.index_url ?? "")
// + "?web_id=" + (campaignInfo?["web_id"] as! String)
// + "&app_uuid=" + (campaignInfo?["app_uuid"] as! String)
// + "&api_key=" + (campaignInfo?["api_key"] as! String)
// + "?web_id=" + (campaignInfo?["web_id"] as? String ?? "")
// + "&app_uuid=" + (campaignInfo?["app_uuid"] as? String ?? "")
// + "&api_key=" + (campaignInfo?["api_key"] as? String ?? "")
// + "&session_uuid=" + (campaign.session_uuid ?? "")
// + "&access_token=" + (campaignInfo?["access_token"] as! String)
// + "&refresh_token=" + (campaignInfo?["refresh_token"] as! String)
// + "&client_id=" + (campaignInfo?["client_id"] as! String)
// + "&client_secret=" + (campaignInfo?["client_secret"] as! String);
// + "&access_token=" + (campaignInfo?["access_token"] as? String ?? "")
// + "&refresh_token=" + (campaignInfo?["refresh_token"] as? String ?? "")
// + "&client_id=" + (campaignInfo?["client_id"] as? String ?? "")
// + "&client_secret=" + (campaignInfo?["client_secret"] as? String ?? "");
print("constructCampaignUrl url: " + finalUrl)
return finalUrl
......@@ -2251,25 +2251,37 @@ public class swiftApi {
let campaignInfo = instanceOfMyApi.provideInfoForCampaign()
let jsonObject: [String: String] = [
"web_id": (campaignInfo?["web_id"] as! String),
"app_uuid": (campaignInfo?["app_uuid"] as! String),
"api_key": (campaignInfo?["api_key"] as! String),
"web_id": (campaignInfo?["web_id"] as? String ?? ""),
"app_uuid": (campaignInfo?["app_uuid"] as? String ?? ""),
"api_key": (campaignInfo?["api_key"] as? String ?? ""),
"session_uuid": (campaign.session_uuid ?? ""),
"access_token": (campaignInfo?["access_token"] as! String),
"refresh_token": (campaignInfo?["refresh_token"] as! String),
"client_id": (campaignInfo?["client_id"] as! String),
"client_secret": (campaignInfo?["client_secret"] as! String),
"access_token": (campaignInfo?["access_token"] as? String ?? ""),
"refresh_token": (campaignInfo?["refresh_token"] as? String ?? ""),
"client_id": (campaignInfo?["client_id"] as? String ?? ""),
"client_secret": (campaignInfo?["client_secret"] as? String ?? ""),
"lan": swiftApi().getApplicationLocale(),
"dark": (swiftApi().getIsDarkModeEnabled() ? "true" : "false")
]
let encoder = JSONEncoder()
encoder.outputFormatting = .prettyPrinted
let data = try! encoder.encode(jsonObject)
let stringData = String(data: data, encoding: .utf8) ?? ""
// let encoder = JSONEncoder()
// encoder.outputFormatting = .prettyPrinted
// let data = try! encoder.encode(jsonObject)
// let stringData = String(data: data, encoding: .utf8) ?? ""
print("constructCampaignParams: " + stringData)
return stringData
// print("constructCampaignParams: " + stringData)
// return stringData
do {
let encoder = JSONEncoder()
encoder.outputFormatting = .prettyPrinted
let data = try encoder.encode(jsonObject)
let stringData = String(data: data, encoding: .utf8) ?? ""
print("constructCampaignParams: " + stringData)
return stringData
} catch {
print("Error encoding campaign params: \(error)")
return "{}"
}
// do {
// let data = try JSONSerialization.data(withJSONObject: jsonObject, options: .prettyPrinted)
......@@ -2289,26 +2301,38 @@ public class swiftApi {
let campaignInfo = instanceOfMyApi.provideInfoForCampaign()
let jsonObject: [String: String] = [
"web_id": (campaignInfo?["web_id"] as! String),
"app_uuid": (campaignInfo?["app_uuid"] as! String),
"api_key": (campaignInfo?["api_key"] as! String),
"web_id": (campaignInfo?["web_id"] as? String ?? ""),
"app_uuid": (campaignInfo?["app_uuid"] as? String ?? ""),
"api_key": (campaignInfo?["api_key"] as? String ?? ""),
"session_uuid": (campaign.session_uuid ?? ""),
"access_token": (campaignInfo?["access_token"] as! String),
"refresh_token": (campaignInfo?["refresh_token"] as! String),
"client_id": (campaignInfo?["client_id"] as! String),
"client_secret": (campaignInfo?["client_secret"] as! String),
"access_token": (campaignInfo?["access_token"] as? String ?? ""),
"refresh_token": (campaignInfo?["refresh_token"] as? String ?? ""),
"client_id": (campaignInfo?["client_id"] as? String ?? ""),
"client_secret": (campaignInfo?["client_secret"] as? String ?? ""),
"map": (isMap ? "true" : "false"),
"lan": swiftApi().getApplicationLocale(),
"dark": (swiftApi().getIsDarkModeEnabled() ? "true" : "false")
]
let encoder = JSONEncoder()
encoder.outputFormatting = .prettyPrinted
let data = try! encoder.encode(jsonObject)
let stringData = String(data: data, encoding: .utf8) ?? ""
// let encoder = JSONEncoder()
// encoder.outputFormatting = .prettyPrinted
// let data = try! encoder.encode(jsonObject)
// let stringData = String(data: data, encoding: .utf8) ?? ""
// print("constructCampaignParams: " + stringData)
// return stringData
print("constructCampaignParams: " + stringData)
return stringData
do {
let encoder = JSONEncoder()
encoder.outputFormatting = .prettyPrinted
let data = try encoder.encode(jsonObject)
let stringData = String(data: data, encoding: .utf8) ?? ""
print("constructCampaignParams: " + stringData)
return stringData
} catch {
print("Error encoding campaign params: \(error)")
return "{}"
}
// do {
// let data = try JSONSerialization.data(withJSONObject: jsonObject, options: .prettyPrinted)
......@@ -2328,26 +2352,38 @@ public class swiftApi {
let campaignInfo = instanceOfMyApi.provideInfoForCampaign()
let jsonObject: [String: String] = [
"web_id": (campaignInfo?["web_id"] as! String),
"app_uuid": (campaignInfo?["app_uuid"] as! String),
"api_key": (campaignInfo?["api_key"] as! String),
"web_id": (campaignInfo?["web_id"] as? String ?? ""),
"app_uuid": (campaignInfo?["app_uuid"] as? String ?? ""),
"api_key": (campaignInfo?["api_key"] as? String ?? ""),
"session_uuid": (campaign.session_uuid ?? ""),
"access_token": (campaignInfo?["access_token"] as! String),
"refresh_token": (campaignInfo?["refresh_token"] as! String),
"client_id": (campaignInfo?["client_id"] as! String),
"client_secret": (campaignInfo?["client_secret"] as! String),
"access_token": (campaignInfo?["access_token"] as? String ?? ""),
"refresh_token": (campaignInfo?["refresh_token"] as? String ?? ""),
"client_id": (campaignInfo?["client_id"] as? String ?? ""),
"client_secret": (campaignInfo?["client_secret"] as? String ?? ""),
"from_widget": (from_widget ? "true" : "false"),
"lan": swiftApi().getApplicationLocale(),
"dark": (swiftApi().getIsDarkModeEnabled() ? "true" : "false")
]
let encoder = JSONEncoder()
encoder.outputFormatting = .prettyPrinted
let data = try! encoder.encode(jsonObject)
let stringData = String(data: data, encoding: .utf8) ?? ""
// let encoder = JSONEncoder()
// encoder.outputFormatting = .prettyPrinted
// let data = try! encoder.encode(jsonObject)
// let stringData = String(data: data, encoding: .utf8) ?? ""
print("constructCampaignParams: " + stringData)
return stringData
// print("constructCampaignParams: " + stringData)
// return stringData
do {
let encoder = JSONEncoder()
encoder.outputFormatting = .prettyPrinted
let data = try encoder.encode(jsonObject)
let stringData = String(data: data, encoding: .utf8) ?? ""
print("constructCampaignParams: " + stringData)
return stringData
} catch {
print("Error encoding campaign params: \(error)")
return "{}"
}
// do {
// let data = try JSONSerialization.data(withJSONObject: jsonObject, options: .prettyPrinted)
......@@ -2414,13 +2450,25 @@ public class swiftApi {
"ZONE": (campaign._zone)
]
let encoder = JSONEncoder()
encoder.outputFormatting = .prettyPrinted
let data = try! encoder.encode(jsonObject)
let stringData = String(data: data, encoding: .utf8) ?? ""
// let encoder = JSONEncoder()
// encoder.outputFormatting = .prettyPrinted
// let data = try! encoder.encode(jsonObject)
// let stringData = String(data: data, encoding: .utf8) ?? ""
print("constructCcmsParams: " + stringData)
return stringData
// print("constructCcmsParams: " + stringData)
// return stringData
do {
let encoder = JSONEncoder()
encoder.outputFormatting = .prettyPrinted
let data = try encoder.encode(jsonObject)
let stringData = String(data: data, encoding: .utf8) ?? ""
print("constructCcmsParams: " + stringData)
return stringData
} catch {
print("Error encoding ccms params: \(error)")
return "{}"
}
break;
}
}
......@@ -2478,13 +2526,25 @@ public class swiftApi {
"ZONE": (ccmsCampaign._zone)
]
let encoder = JSONEncoder()
encoder.outputFormatting = .prettyPrinted
let data = try! encoder.encode(jsonObject)
let stringData = String(data: data, encoding: .utf8) ?? ""
// let encoder = JSONEncoder()
// encoder.outputFormatting = .prettyPrinted
// let data = try! encoder.encode(jsonObject)
// let stringData = String(data: data, encoding: .utf8) ?? ""
print("constructCcmsParams: " + stringData)
return stringData
// print("constructCcmsParams: " + stringData)
// return stringData
do {
let encoder = JSONEncoder()
encoder.outputFormatting = .prettyPrinted
let data = try encoder.encode(jsonObject)
let stringData = String(data: data, encoding: .utf8) ?? ""
print("constructCcmsParams: " + stringData)
return stringData
} catch {
print("Error encoding ccms params: \(error)")
return "{}"
}
}
......@@ -4055,42 +4115,21 @@ public class swiftApi {
}
public func openSupermarketsMap(_ controller: UIViewController) -> Void {
let status = swiftApi().getNetworkStatus()
if (status == -1 || status == 0) {
swiftApi().showDialog(controller, "Δεν υπάρχει σύνδεση","Αυτή τη στιγμή βρίσκεσαι εκτός σύνδεσης. Παρακαλούμε βεβαιώσου ότι είσαι συνδεδεμένος στο διαδίκτυο και προσπάθησε ξανά.")
} else {
let tempCampaign = CampaignItemModel()
let storyboard = UIStoryboard(name: "Main", bundle: Bundle(for: MyEmptyClass.self))
let vc = storyboard.instantiateViewController(withIdentifier: "CampaignViewController") as! SwiftWarplyFramework.CampaignViewController
let url = swiftApi().getMarketPassMapUrl()
let params = swiftApi().constructCampaignParams(campaign: tempCampaign, isMap: true)
vc.campaignUrl = url
vc.params = params
vc.showHeader = false
if (controller.navigationController != nil) {
vc.isPresented = false
controller.navigationController?.pushViewController(vc, animated: true)
} else {
vc.isPresented = true
vc.modalPresentationStyle = .fullScreen
controller.present(vc, animated: true, completion: nil)
}
}
}
let instanceOfMyApi = MyApi()
let isInitialised = instanceOfMyApi.sdkInitialised();
if (isInitialised == true) {
public func openSuperMarketsFlow(_ controller: UIViewController) -> Void {
let status = swiftApi().getNetworkStatus()
if (status == -1 || status == 0) {
swiftApi().showDialog(controller, "Δεν υπάρχει σύνδεση","Αυτή τη στιγμή βρίσκεσαι εκτός σύνδεσης. Παρακαλούμε βεβαιώσου ότι είσαι συνδεδεμένος στο διαδίκτυο και προσπάθησε ξανά.")
let status = swiftApi().getNetworkStatus()
if (status == -1 || status == 0) {
swiftApi().showDialog(controller, "Δεν υπάρχει σύνδεση","Αυτή τη στιγμή βρίσκεσαι εκτός σύνδεσης. Παρακαλούμε βεβαιώσου ότι είσαι συνδεδεμένος στο διαδίκτυο και προσπάθησε ξανά.")
} else {
if let superMarketCampaign = swiftApi().getSupermarketCampaign() {
} else {
let tempCampaign = CampaignItemModel()
let storyboard = UIStoryboard(name: "Main", bundle: Bundle(for: MyEmptyClass.self))
let vc = storyboard.instantiateViewController(withIdentifier: "CampaignViewController") as! SwiftWarplyFramework.CampaignViewController
let url = swiftApi().constructCampaignUrl(superMarketCampaign)
let params = swiftApi().constructCampaignParams(superMarketCampaign)
let url = swiftApi().getMarketPassMapUrl()
let params = swiftApi().constructCampaignParams(campaign: tempCampaign, isMap: true)
vc.campaignUrl = url
vc.params = params
vc.showHeader = false
......@@ -4104,6 +4143,43 @@ public class swiftApi {
controller.present(vc, animated: true, completion: nil)
}
}
} else {
print("Warply SDK is not initialised. Please initialise it before calling it's methods.")
}
}
public func openSuperMarketsFlow(_ controller: UIViewController) -> Void {
let instanceOfMyApi = MyApi()
let isInitialised = instanceOfMyApi.sdkInitialised();
if (isInitialised == true) {
let status = swiftApi().getNetworkStatus()
if (status == -1 || status == 0) {
swiftApi().showDialog(controller, "Δεν υπάρχει σύνδεση","Αυτή τη στιγμή βρίσκεσαι εκτός σύνδεσης. Παρακαλούμε βεβαιώσου ότι είσαι συνδεδεμένος στο διαδίκτυο και προσπάθησε ξανά.")
} else {
if let superMarketCampaign = swiftApi().getSupermarketCampaign() {
let storyboard = UIStoryboard(name: "Main", bundle: Bundle(for: MyEmptyClass.self))
let vc = storyboard.instantiateViewController(withIdentifier: "CampaignViewController") as! SwiftWarplyFramework.CampaignViewController
let url = swiftApi().constructCampaignUrl(superMarketCampaign)
let params = swiftApi().constructCampaignParams(superMarketCampaign)
vc.campaignUrl = url
vc.params = params
vc.showHeader = false
if (controller.navigationController != nil) {
vc.isPresented = false
controller.navigationController?.pushViewController(vc, animated: true)
} else {
vc.isPresented = true
vc.modalPresentationStyle = .fullScreen
controller.present(vc, animated: true, completion: nil)
}
}
}
} else {
print("Warply SDK is not initialised. Please initialise it before calling it's methods.")
}
}
......@@ -4431,4 +4507,11 @@ public class swiftApi {
}
}
public func isSDKInitialized() -> Bool {
let instanceOfMyApi = MyApi()
let isInitialised = instanceOfMyApi.sdkInitialised();
return isInitialised
}
}
......