diff --git a/REES46/Classes/Model/SearchResponse.swift b/REES46/Classes/Model/SearchResponse.swift index 3814f52b..d5576758 100644 --- a/REES46/Classes/Model/SearchResponse.swift +++ b/REES46/Classes/Model/SearchResponse.swift @@ -130,6 +130,8 @@ public struct SearchResponse { public var brands: [String]? public var priceRange: PriceRange? public var redirect: Redirect? + public var searchQuery: String + public var searchQueryOriginal: String init(json: [String: Any]) { let cats = json["categories"] as? [[String: Any]] ?? [] @@ -190,6 +192,9 @@ public struct SearchResponse { if let redirectJSON = json["search_query_redirects"] as? [String: Any] { self.redirect = Redirect(json: redirectJSON) } + + searchQuery = json["search_query"] as? String ?? "" + searchQueryOriginal = json["search_query_original"] as? String ?? "" } } diff --git a/REES46/Classes/Sdk/impl/SimplePersonalizationSDK.swift b/REES46/Classes/Sdk/impl/SimplePersonalizationSDK.swift index 9f7318ae..3408ada7 100644 --- a/REES46/Classes/Sdk/impl/SimplePersonalizationSDK.swift +++ b/REES46/Classes/Sdk/impl/SimplePersonalizationSDK.swift @@ -321,6 +321,7 @@ class SimplePersonalizationSDK: PersonalizationSDK { email: String?, timeOut: Double?, disableClarification: Bool?, + correction: Bool?, completion: @escaping (Result) -> Void ) { searchService.search( @@ -346,6 +347,7 @@ class SimplePersonalizationSDK: PersonalizationSDK { email:email, timeOut:timeOut, disableClarification:disableClarification, + correction:correction, completion: completion ) } diff --git a/REES46/Classes/Sdk/protocol/PersonalizationSDK.protocol.swift b/REES46/Classes/Sdk/protocol/PersonalizationSDK.protocol.swift index b1ddf7f7..7e96a1e5 100644 --- a/REES46/Classes/Sdk/protocol/PersonalizationSDK.protocol.swift +++ b/REES46/Classes/Sdk/protocol/PersonalizationSDK.protocol.swift @@ -50,7 +50,7 @@ public protocol PersonalizationSDK { func setPushTokenNotification(token: String, isFirebaseNotification: Bool, completion: @escaping(Result) -> Void) func review(rate: Int, channel: String, category: String, orderId: String?, comment: String?, completion: @escaping(Result) -> Void) func searchBlank(completion: @escaping(Result) -> Void) - func search(query: String, limit: Int?, offset: Int?, categoryLimit: Int?,brandLimit: Int?, categories: [Int]?, extended: String?, sortBy: String?, sortDir: String?, locations: String?, excludedMerchants: [String]?, excludedBrands: [String]?, brands: String?, filters: [String: Any]?, priceMin: Double?, priceMax: Double?, colors: [String]?, fashionSizes: [String]?, exclude: String?, email: String?, timeOut: Double?, disableClarification: Bool?, completion: @escaping(Result) -> Void) + func search(query: String, limit: Int?, offset: Int?, categoryLimit: Int?,brandLimit: Int?, categories: [Int]?, extended: String?, sortBy: String?, sortDir: String?, locations: String?, excludedMerchants: [String]?, excludedBrands: [String]?, brands: String?, filters: [String: Any]?, priceMin: Double?, priceMax: Double?, colors: [String]?, fashionSizes: [String]?, exclude: String?, email: String?, timeOut: Double?, disableClarification: Bool?, correction: Bool?, completion: @escaping(Result) -> Void) func notificationClicked(type: String, code: String, completion: @escaping (Result) -> Void) func notificationDelivered(type: String, code: String, completion: @escaping (Result) -> Void) func notificationReceived(type: String, code: String, completion: @escaping (Result) -> Void) @@ -133,6 +133,7 @@ public extension PersonalizationSDK { email: String? = nil, timeOut: Double? = nil, disableClarification: Bool? = nil, + correction: Bool? = nil, completion: @escaping(Result) -> Void ) { search( @@ -158,6 +159,7 @@ public extension PersonalizationSDK { email:email, timeOut:timeOut, disableClarification:disableClarification, + correction:correction, completion: completion ) } diff --git a/REES46/Classes/Search/Service/impl/SearchServiceImpl.swift b/REES46/Classes/Search/Service/impl/SearchServiceImpl.swift index 6ce1b6c1..7026aa19 100644 --- a/REES46/Classes/Search/Service/impl/SearchServiceImpl.swift +++ b/REES46/Classes/Search/Service/impl/SearchServiceImpl.swift @@ -52,7 +52,8 @@ class SearchServiceImpl: SearchServiceProtocol { fashionSizes: [String]?, exclude: String?, email: String?, - disableClarification: Bool? + disableClarification: Bool?, + correction: Bool? ) -> [String: String] { var params: [String: String] = [ @@ -85,6 +86,7 @@ class SearchServiceImpl: SearchServiceProtocol { "exclude": exclude, "email": email, "no_clarification": disableClarification == true ? "1" : nil, + "correction": correction == true ? "1" : nil, "filters": { guard let filters = filters, let jsonData = try? JSONSerialization.data(withJSONObject: filters, options: []), @@ -143,6 +145,7 @@ class SearchServiceImpl: SearchServiceProtocol { email: String?, timeOut: Double?, disableClarification: Bool?, + correction: Bool?, completion: @escaping (Result) -> Void ) { guard let sdk = sdk.checkInitialization(completion: completion) else { return } @@ -169,7 +172,8 @@ class SearchServiceImpl: SearchServiceProtocol { fashionSizes: fashionSizes, exclude: exclude, email: email, - disableClarification: disableClarification + disableClarification: disableClarification, + correction: correction ) self.configureSession(timeOut: timeOut) diff --git a/REES46/Classes/Search/Service/protocol/SearchServiceProtocol.swift b/REES46/Classes/Search/Service/protocol/SearchServiceProtocol.swift index cc7c64d2..89fc206b 100644 --- a/REES46/Classes/Search/Service/protocol/SearchServiceProtocol.swift +++ b/REES46/Classes/Search/Service/protocol/SearchServiceProtocol.swift @@ -29,6 +29,7 @@ protocol SearchServiceProtocol{ email: String?, timeOut: Double?, disableClarification: Bool?, + correction: Bool?, completion: @escaping (Result) -> Void )