Skip to content

Commit

Permalink
add 'size' option to Agg
Browse files Browse the repository at this point in the history
  • Loading branch information
rcarver committed Jan 30, 2025
1 parent d8f8b3c commit b6b4264
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 4 deletions.
8 changes: 6 additions & 2 deletions Sources/ElasticsearchQueryBuilder/Components.swift
Original file line number Diff line number Diff line change
Expand Up @@ -146,9 +146,13 @@ extension esb {
public struct Agg: DictComponent {
var name: String
var term: QueryDict
public init(_ name: String, field: String) {
public init(_ name: String, field: String, size: Int? = nil) {
self.name = name
self.term = [ "field" : .string(field) ]
if let size {
self.term = [ "field" : .string(field), "size": .int(size) ]
} else {
self.term = [ "field" : .string(field) ]
}
}
public init(_ name: String, term: QueryDict) {
self.name = name
Expand Down
8 changes: 6 additions & 2 deletions Tests/ElasticsearchQueryBuilderTests/ComponentTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -186,13 +186,17 @@ final class AggsTests: XCTestCase {
func testBuild() throws {
@ElasticsearchQueryBuilder func build() -> some esb.QueryDSL {
esb.Aggs {
esb.Agg("name", field: "name")
esb.Agg("names", field: "name")
esb.Agg("ages", field: "age", size: 100)
}
}
expectNoDifference(build().makeQuery(), [
"aggs": [
"name": [
"names": [
"terms": [ "field": "name" ]
],
"ages": [
"terms": [ "field": "age", "size": 100 ]
]
]
])
Expand Down

0 comments on commit b6b4264

Please sign in to comment.