Skip to content

Commit 86bc9e5

Browse files
authored
refactor(postgrest): deprecate URLQueryRepresentable in favor of PostgrestFilterValue (#670)
1 parent 6f3fbd6 commit 86bc9e5

File tree

6 files changed

+196
-183
lines changed

6 files changed

+196
-183
lines changed

Sources/PostgREST/Deprecated.swift

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,23 +86,23 @@ extension PostgrestFilterBuilder {
8686
@available(*, deprecated, renamed: "like(_:pattern:)")
8787
public func like(
8888
_ column: String,
89-
value: any URLQueryRepresentable
89+
value: any PostgrestFilterValue
9090
) -> PostgrestFilterBuilder {
9191
like(column, pattern: value)
9292
}
9393

9494
@available(*, deprecated, renamed: "in(_:values:)")
9595
public func `in`(
9696
_ column: String,
97-
value: [any URLQueryRepresentable]
97+
value: [any PostgrestFilterValue]
9898
) -> PostgrestFilterBuilder {
9999
`in`(column, values: value)
100100
}
101101

102102
@available(*, deprecated, message: "Use textSearch(_:query:config:type) with .plain type.")
103103
public func plfts(
104104
_ column: String,
105-
query: any URLQueryRepresentable,
105+
query: any PostgrestFilterValue,
106106
config: String? = nil
107107
) -> PostgrestFilterBuilder {
108108
textSearch(column, query: query, config: config, type: .plain)
@@ -111,7 +111,7 @@ extension PostgrestFilterBuilder {
111111
@available(*, deprecated, message: "Use textSearch(_:query:config:type) with .phrase type.")
112112
public func phfts(
113113
_ column: String,
114-
query: any URLQueryRepresentable,
114+
query: any PostgrestFilterValue,
115115
config: String? = nil
116116
) -> PostgrestFilterBuilder {
117117
textSearch(column, query: query, config: config, type: .phrase)
@@ -120,7 +120,7 @@ extension PostgrestFilterBuilder {
120120
@available(*, deprecated, message: "Use textSearch(_:query:config:type) with .websearch type.")
121121
public func wfts(
122122
_ column: String,
123-
query: any URLQueryRepresentable,
123+
query: any PostgrestFilterValue,
124124
config: String? = nil
125125
) -> PostgrestFilterBuilder {
126126
textSearch(column, query: query, config: config, type: .websearch)
@@ -129,8 +129,15 @@ extension PostgrestFilterBuilder {
129129
@available(*, deprecated, renamed: "ilike(_:pattern:)")
130130
public func ilike(
131131
_ column: String,
132-
value: any URLQueryRepresentable
132+
value: any PostgrestFilterValue
133133
) -> PostgrestFilterBuilder {
134134
ilike(column, pattern: value)
135135
}
136136
}
137+
138+
@available(
139+
*,
140+
deprecated,
141+
renamed: "PostgrestFilterValue"
142+
)
143+
public typealias URLQueryRepresentable = PostgrestFilterValue

Sources/PostgREST/PostgrestFilterBuilder.swift

Lines changed: 53 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
1212
public func not(
1313
_ column: String,
1414
operator op: Operator,
15-
value: any URLQueryRepresentable
15+
value: any PostgrestFilterValue
1616
) -> PostgrestFilterBuilder {
17-
let queryValue = value.queryValue
17+
let queryValue = value.rawValue
1818

1919
mutableState.withValue {
2020
$0.request.query.append(
@@ -28,11 +28,11 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
2828
}
2929

3030
public func or(
31-
_ filters: any URLQueryRepresentable,
31+
_ filters: any PostgrestFilterValue,
3232
referencedTable: String? = nil
3333
) -> PostgrestFilterBuilder {
3434
let key = referencedTable.map { "\($0).or" } ?? "or"
35-
let queryValue = filters.queryValue
35+
let queryValue = filters.rawValue
3636
mutableState.withValue {
3737
$0.request.query.append(URLQueryItem(name: key, value: "(\(queryValue))"))
3838
}
@@ -48,9 +48,9 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
4848
/// - value: The value to filter with
4949
public func eq(
5050
_ column: String,
51-
value: any URLQueryRepresentable
51+
value: any PostgrestFilterValue
5252
) -> PostgrestFilterBuilder {
53-
let queryValue = value.queryValue
53+
let queryValue = value.rawValue
5454
mutableState.withValue {
5555
$0.request.query.append(URLQueryItem(name: column, value: "eq.\(queryValue)"))
5656
}
@@ -64,9 +64,9 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
6464
/// - value: The value to filter with
6565
public func neq(
6666
_ column: String,
67-
value: any URLQueryRepresentable
67+
value: any PostgrestFilterValue
6868
) -> PostgrestFilterBuilder {
69-
let queryValue = value.queryValue
69+
let queryValue = value.rawValue
7070
mutableState.withValue {
7171
$0.request.query.append(URLQueryItem(name: column, value: "neq.\(queryValue)"))
7272
}
@@ -80,9 +80,9 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
8080
/// - value: The value to filter with
8181
public func gt(
8282
_ column: String,
83-
value: any URLQueryRepresentable
83+
value: any PostgrestFilterValue
8484
) -> PostgrestFilterBuilder {
85-
let queryValue = value.queryValue
85+
let queryValue = value.rawValue
8686
mutableState.withValue {
8787
$0.request.query.append(URLQueryItem(name: column, value: "gt.\(queryValue)"))
8888
}
@@ -96,9 +96,9 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
9696
/// - value: The value to filter with
9797
public func gte(
9898
_ column: String,
99-
value: any URLQueryRepresentable
99+
value: any PostgrestFilterValue
100100
) -> PostgrestFilterBuilder {
101-
let queryValue = value.queryValue
101+
let queryValue = value.rawValue
102102
mutableState.withValue {
103103
$0.request.query.append(URLQueryItem(name: column, value: "gte.\(queryValue)"))
104104
}
@@ -112,9 +112,9 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
112112
/// - value: The value to filter with
113113
public func lt(
114114
_ column: String,
115-
value: any URLQueryRepresentable
115+
value: any PostgrestFilterValue
116116
) -> PostgrestFilterBuilder {
117-
let queryValue = value.queryValue
117+
let queryValue = value.rawValue
118118
mutableState.withValue {
119119
$0.request.query.append(URLQueryItem(name: column, value: "lt.\(queryValue)"))
120120
}
@@ -128,9 +128,9 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
128128
/// - value: The value to filter with
129129
public func lte(
130130
_ column: String,
131-
value: any URLQueryRepresentable
131+
value: any PostgrestFilterValue
132132
) -> PostgrestFilterBuilder {
133-
let queryValue = value.queryValue
133+
let queryValue = value.rawValue
134134
mutableState.withValue {
135135
$0.request.query.append(URLQueryItem(name: column, value: "lte.\(queryValue)"))
136136
}
@@ -144,9 +144,9 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
144144
/// - pattern: The pattern to match with
145145
public func like(
146146
_ column: String,
147-
pattern: any URLQueryRepresentable
147+
pattern: any PostgrestFilterValue
148148
) -> PostgrestFilterBuilder {
149-
let queryValue = pattern.queryValue
149+
let queryValue = pattern.rawValue
150150
mutableState.withValue {
151151
$0.request.query.append(URLQueryItem(name: column, value: "like.\(queryValue)"))
152152
}
@@ -159,9 +159,9 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
159159
/// - patterns: The patterns to match with
160160
public func likeAllOf(
161161
_ column: String,
162-
patterns: [some URLQueryRepresentable]
162+
patterns: [some PostgrestFilterValue]
163163
) -> PostgrestFilterBuilder {
164-
let queryValue = patterns.queryValue
164+
let queryValue = patterns.rawValue
165165
mutableState.withValue {
166166
$0.request.query.append(URLQueryItem(name: column, value: "like(all).\(queryValue)"))
167167
}
@@ -174,9 +174,9 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
174174
/// - patterns: The patterns to match with
175175
public func likeAnyOf(
176176
_ column: String,
177-
patterns: [some URLQueryRepresentable]
177+
patterns: [some PostgrestFilterValue]
178178
) -> PostgrestFilterBuilder {
179-
let queryValue = patterns.queryValue
179+
let queryValue = patterns.rawValue
180180
mutableState.withValue {
181181
$0.request.query.append(URLQueryItem(name: column, value: "like(any).\(queryValue)"))
182182
}
@@ -190,9 +190,9 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
190190
/// - pattern: The pattern to match with
191191
public func ilike(
192192
_ column: String,
193-
pattern: any URLQueryRepresentable
193+
pattern: any PostgrestFilterValue
194194
) -> PostgrestFilterBuilder {
195-
let queryValue = pattern.queryValue
195+
let queryValue = pattern.rawValue
196196
mutableState.withValue {
197197
$0.request.query.append(URLQueryItem(name: column, value: "ilike.\(queryValue)"))
198198
}
@@ -205,9 +205,9 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
205205
/// - patterns: The patterns to match with
206206
public func iLikeAllOf(
207207
_ column: String,
208-
patterns: [some URLQueryRepresentable]
208+
patterns: [some PostgrestFilterValue]
209209
) -> PostgrestFilterBuilder {
210-
let queryValue = patterns.queryValue
210+
let queryValue = patterns.rawValue
211211
mutableState.withValue {
212212
$0.request.query.append(URLQueryItem(name: column, value: "ilike(all).\(queryValue)"))
213213
}
@@ -220,9 +220,9 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
220220
/// - patterns: The patterns to match with
221221
public func iLikeAnyOf(
222222
_ column: String,
223-
patterns: [some URLQueryRepresentable]
223+
patterns: [some PostgrestFilterValue]
224224
) -> PostgrestFilterBuilder {
225-
let queryValue = patterns.queryValue
225+
let queryValue = patterns.rawValue
226226
mutableState.withValue {
227227
$0.request.query.append(URLQueryItem(name: column, value: "ilike(any).\(queryValue)"))
228228
}
@@ -241,7 +241,7 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
241241
_ column: String,
242242
value: Bool?
243243
) -> PostgrestFilterBuilder {
244-
let queryValue = value.queryValue
244+
let queryValue = value.rawValue
245245
mutableState.withValue {
246246
$0.request.query.append(URLQueryItem(name: column, value: "is.\(queryValue)"))
247247
}
@@ -255,9 +255,9 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
255255
/// - value: The values array to filter with
256256
public func `in`(
257257
_ column: String,
258-
values: [any URLQueryRepresentable]
258+
values: [any PostgrestFilterValue]
259259
) -> PostgrestFilterBuilder {
260-
let queryValues = values.map(\.queryValue)
260+
let queryValues = values.map(\.rawValue)
261261
mutableState.withValue {
262262
$0.request.query.append(
263263
URLQueryItem(
@@ -278,9 +278,9 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
278278
/// - value: The jsonb, array, or range value to filter with
279279
public func contains(
280280
_ column: String,
281-
value: any URLQueryRepresentable
281+
value: any PostgrestFilterValue
282282
) -> PostgrestFilterBuilder {
283-
let queryValue = value.queryValue
283+
let queryValue = value.rawValue
284284
mutableState.withValue {
285285
$0.request.query.append(URLQueryItem(name: column, value: "cs.\(queryValue)"))
286286
}
@@ -296,9 +296,9 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
296296
/// - value: The jsonb, array, or range value to filter with
297297
public func containedBy(
298298
_ column: String,
299-
value: some URLQueryRepresentable
299+
value: some PostgrestFilterValue
300300
) -> PostgrestFilterBuilder {
301-
let queryValue = value.queryValue
301+
let queryValue = value.rawValue
302302
mutableState.withValue {
303303
$0.request.query.append(URLQueryItem(name: column, value: "cd.\(queryValue)"))
304304
}
@@ -314,9 +314,9 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
314314
/// - range: The range to filter with
315315
public func rangeLt(
316316
_ column: String,
317-
range: any URLQueryRepresentable
317+
range: any PostgrestFilterValue
318318
) -> PostgrestFilterBuilder {
319-
let queryValue = range.queryValue
319+
let queryValue = range.rawValue
320320
mutableState.withValue {
321321
$0.request.query.append(URLQueryItem(name: column, value: "sl.\(queryValue)"))
322322
}
@@ -332,9 +332,9 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
332332
/// - range: The range to filter with
333333
public func rangeGt(
334334
_ column: String,
335-
range: any URLQueryRepresentable
335+
range: any PostgrestFilterValue
336336
) -> PostgrestFilterBuilder {
337-
let queryValue = range.queryValue
337+
let queryValue = range.rawValue
338338
mutableState.withValue {
339339
$0.request.query.append(URLQueryItem(name: column, value: "sr.\(queryValue)"))
340340
}
@@ -350,9 +350,9 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
350350
/// - range: The range to filter with
351351
public func rangeGte(
352352
_ column: String,
353-
range: any URLQueryRepresentable
353+
range: any PostgrestFilterValue
354354
) -> PostgrestFilterBuilder {
355-
let queryValue = range.queryValue
355+
let queryValue = range.rawValue
356356
mutableState.withValue {
357357
$0.request.query.append(URLQueryItem(name: column, value: "nxl.\(queryValue)"))
358358
}
@@ -368,9 +368,9 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
368368
/// - range: The range to filter with
369369
public func rangeLte(
370370
_ column: String,
371-
range: any URLQueryRepresentable
371+
range: any PostgrestFilterValue
372372
) -> PostgrestFilterBuilder {
373-
let queryValue = range.queryValue
373+
let queryValue = range.rawValue
374374
mutableState.withValue {
375375
$0.request.query.append(URLQueryItem(name: column, value: "nxr.\(queryValue)"))
376376
}
@@ -386,9 +386,9 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
386386
/// - range: The range to filter with
387387
public func rangeAdjacent(
388388
_ column: String,
389-
range: any URLQueryRepresentable
389+
range: any PostgrestFilterValue
390390
) -> PostgrestFilterBuilder {
391-
let queryValue = range.queryValue
391+
let queryValue = range.rawValue
392392
mutableState.withValue {
393393
$0.request.query.append(URLQueryItem(name: column, value: "adj.\(queryValue)"))
394394
}
@@ -404,9 +404,9 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
404404
/// - value: The array or range value to filter with
405405
public func overlaps(
406406
_ column: String,
407-
value: any URLQueryRepresentable
407+
value: any PostgrestFilterValue
408408
) -> PostgrestFilterBuilder {
409-
let queryValue = value.queryValue
409+
let queryValue = value.rawValue
410410
mutableState.withValue {
411411
$0.request.query.append(URLQueryItem(name: column, value: "ov.\(queryValue)"))
412412
}
@@ -424,11 +424,11 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
424424
/// - type: Change how the `query` text is interpreted
425425
public func textSearch(
426426
_ column: String,
427-
query: any URLQueryRepresentable,
427+
query: any PostgrestFilterValue,
428428
config: String? = nil,
429429
type: TextSearchType? = nil
430430
) -> PostgrestFilterBuilder {
431-
let queryValue = query.queryValue
431+
let queryValue = query.rawValue
432432
let configPart = config.map { "(\($0))" }
433433

434434
mutableState.withValue {
@@ -443,7 +443,7 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
443443

444444
public func fts(
445445
_ column: String,
446-
query: any URLQueryRepresentable,
446+
query: any PostgrestFilterValue,
447447
config: String? = nil
448448
) -> PostgrestFilterBuilder {
449449
textSearch(column, query: query, config: config, type: nil)
@@ -476,15 +476,15 @@ public class PostgrestFilterBuilder: PostgrestTransformBuilder, @unchecked Senda
476476
///
477477
/// - Parameter query: The object to filter with, with column names as keys mapped to their filter values
478478
public func match(
479-
_ query: [String: any URLQueryRepresentable]
479+
_ query: [String: any PostgrestFilterValue]
480480
) -> PostgrestFilterBuilder {
481-
let query = query.mapValues(\.queryValue)
481+
let query = query.mapValues(\.rawValue)
482482
mutableState.withValue { mutableState in
483483
for (key, value) in query {
484484
mutableState.request.query.append(
485485
URLQueryItem(
486486
name: key,
487-
value: "eq.\(value.queryValue)"
487+
value: "eq.\(value.rawValue)"
488488
))
489489
}
490490
}

0 commit comments

Comments
 (0)