Skip to content

Commit b6b4264

Browse files
committed
add 'size' option to Agg
1 parent d8f8b3c commit b6b4264

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

Sources/ElasticsearchQueryBuilder/Components.swift

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,9 +146,13 @@ extension esb {
146146
public struct Agg: DictComponent {
147147
var name: String
148148
var term: QueryDict
149-
public init(_ name: String, field: String) {
149+
public init(_ name: String, field: String, size: Int? = nil) {
150150
self.name = name
151-
self.term = [ "field" : .string(field) ]
151+
if let size {
152+
self.term = [ "field" : .string(field), "size": .int(size) ]
153+
} else {
154+
self.term = [ "field" : .string(field) ]
155+
}
152156
}
153157
public init(_ name: String, term: QueryDict) {
154158
self.name = name

Tests/ElasticsearchQueryBuilderTests/ComponentTests.swift

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,13 +186,17 @@ final class AggsTests: XCTestCase {
186186
func testBuild() throws {
187187
@ElasticsearchQueryBuilder func build() -> some esb.QueryDSL {
188188
esb.Aggs {
189-
esb.Agg("name", field: "name")
189+
esb.Agg("names", field: "name")
190+
esb.Agg("ages", field: "age", size: 100)
190191
}
191192
}
192193
expectNoDifference(build().makeQuery(), [
193194
"aggs": [
194-
"name": [
195+
"names": [
195196
"terms": [ "field": "name" ]
197+
],
198+
"ages": [
199+
"terms": [ "field": "age", "size": 100 ]
196200
]
197201
]
198202
])

0 commit comments

Comments
 (0)