Skip to content

Commit c376bd4

Browse files
committed
Add datasource parameter to RetentionQueryGenerator
1 parent 2353ebd commit c376bd4

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

Sources/DataTransferObjects/QueryGeneration/RetentionQueryGenerator.swift

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,13 @@ public enum RetentionQueryGenerator {
1313
case datesTooClose
1414
}
1515

16-
public static func generateRetentionQuery(appID: String, testMode: Bool, beginDate: Date, endDate: Date) throws -> CustomQuery {
16+
public static func generateRetentionQuery(
17+
dataSource: String,
18+
appID: String,
19+
testMode: Bool,
20+
beginDate: Date,
21+
endDate: Date
22+
) throws -> CustomQuery {
1723
// If beginDate and endDate are less than 1m apart, this does not make sense as a query
1824
let components = Calendar.current.dateComponents([.month], from: beginDate, to: endDate)
1925
if (components.month ?? 0) < 1 {
@@ -39,6 +45,7 @@ public enum RetentionQueryGenerator {
3945
// Combine query
4046
return CustomQuery(
4147
queryType: .groupBy,
48+
dataSource: .init(dataSource),
4249
filter: .and(.init(fields: [
4350
.selector(.init(dimension: "appID", value: appID)),
4451
.selector(.init(dimension: "isTestMode", value: testMode ? "true" : "false")),

Tests/QueryGenerationTests/RetentionQueryGenerationTests.swift

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import XCTest
1313
final class RetentionQueryGenerationTests: XCTestCase {
1414
let tinyQuery = CustomQuery(
1515
queryType: .groupBy,
16+
dataSource: .init("com.telemetrydeck.all"),
1617
filter: .and(.init(fields: [
1718
.selector(.init(dimension: "appID", value: "79167A27-EBBF-4012-9974-160624E5D07B")),
1819
.selector(.init(dimension: "isTestMode", value: "false")),
@@ -120,14 +121,15 @@ final class RetentionQueryGenerationTests: XCTestCase {
120121
let end_august = Date(iso8601String: "2022-08-31T23:59:59.999Z")!
121122
let end_september = Date(iso8601String: "2022-09-30T23:59:59.999Z")!
122123

123-
XCTAssertThrowsError(try RetentionQueryGenerator.generateRetentionQuery(appID: "", testMode: false, beginDate: begin_august, endDate: mid_august))
124-
XCTAssertThrowsError(try RetentionQueryGenerator.generateRetentionQuery(appID: "", testMode: false, beginDate: begin_august, endDate: end_august))
125-
XCTAssertNoThrow(try RetentionQueryGenerator.generateRetentionQuery(appID: "", testMode: false, beginDate: begin_august, endDate: end_september))
126-
XCTAssertThrowsError(try RetentionQueryGenerator.generateRetentionQuery(appID: "", testMode: false, beginDate: end_september, endDate: begin_august))
124+
XCTAssertThrowsError(try RetentionQueryGenerator.generateRetentionQuery(dataSource: "com.telemetrydeck.all", appID: "", testMode: false, beginDate: begin_august, endDate: mid_august))
125+
XCTAssertThrowsError(try RetentionQueryGenerator.generateRetentionQuery(dataSource: "com.telemetrydeck.all", appID: "", testMode: false, beginDate: begin_august, endDate: end_august))
126+
XCTAssertNoThrow(try RetentionQueryGenerator.generateRetentionQuery(dataSource: "com.telemetrydeck.all", appID: "", testMode: false, beginDate: begin_august, endDate: end_september))
127+
XCTAssertThrowsError(try RetentionQueryGenerator.generateRetentionQuery(dataSource: "com.telemetrydeck.all", appID: "", testMode: false, beginDate: end_september, endDate: begin_august))
127128
}
128129

129130
func testExample() throws {
130131
let generatedTinyQuery = try RetentionQueryGenerator.generateRetentionQuery(
132+
dataSource: "com.telemetrydeck.all",
131133
appID: "79167A27-EBBF-4012-9974-160624E5D07B",
132134
testMode: false,
133135
beginDate: Date(iso8601String: "2022-08-01T00:00:00.000Z")!,

0 commit comments

Comments
 (0)