Skip to content
Snippets Groups Projects
Commit 26b749b7 authored by Dariusz Rybicki's avatar Dariusz Rybicki
Browse files

Implement contacts text filtering with GRDB

parent 1f57dbb1
No related branches found
No related tags found
1 merge request!27Contacts text search
...@@ -39,6 +39,17 @@ extension Contact: FetchableRecord, PersistableRecord { ...@@ -39,6 +39,17 @@ extension Contact: FetchableRecord, PersistableRecord {
break break
} }
if let text = query.text {
let columns = [Column.username, Column.email, Column.phone, Column.nickname]
let escape = #"\"#
let escapedText = text.replacingOccurrences(of: "%", with: "\(escape)%")
let pattern = "%\(escapedText)%"
request = request.filter(columns
.map { $0.like(pattern, escape: escape) }
.joined(operator: .or)
)
}
if let authStatus = query.authStatus { if let authStatus = query.authStatus {
request = request.filter(Set(authStatus.map(\.rawValue)).contains(Column.authStatus)) request = request.filter(Set(authStatus.map(\.rawValue)).contains(Column.authStatus))
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment