Skip to content

Commit 652254d

Browse files
author
Brandon Sneed
committed
completed analytics implementation
1 parent 35ca193 commit 652254d

1 file changed

Lines changed: 19 additions & 18 deletions

File tree

Sources/segmentcli/Commands/Analytics.swift

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ class AnalyticsTrackCommand: Command {
9393
}
9494

9595
spinner.stop()
96-
print("Event `\(eventName)` sent!\n")
96+
print("Track event `\(eventName)` sent!\n")
9797
}
9898
}
9999

@@ -102,7 +102,7 @@ class AnalyticsIdentifyCommand: Command {
102102
let shortDescription = "Send an identify event to Segment"
103103

104104
@Param var writeKey: String
105-
@Param var userID: String
105+
@Param var userId: String
106106

107107
@Flag("-f", "--flush", description: "Flush event(s) to Segment before returning")
108108
var flush: Bool
@@ -117,7 +117,7 @@ class AnalyticsIdentifyCommand: Command {
117117
analytics.waitUntilStarted()
118118

119119
executeAndWait { semaphore in
120-
analytics.identify(userId, traits: paramArryToDictionary(traits))
120+
analytics.identify(userId: userId, traits: paramArryToDictionary(traits))
121121
// wait till we know the event has been placed in the queue
122122
while analytics.hasUnsentEvents == false {
123123
RunLoop.main.run(until: Date.distantPast)
@@ -134,7 +134,7 @@ class AnalyticsIdentifyCommand: Command {
134134
}
135135

136136
spinner.stop()
137-
print("Identify Event for `\(userID)` sent!\n")
137+
print("Identify event for `\(userId)` sent!\n")
138138
}
139139
}
140140

@@ -143,7 +143,10 @@ class AnalyticsScreenCommand: Command {
143143
let shortDescription = "Send a screen event to Segment"
144144

145145
@Param var writeKey: String
146-
@Param var eventName: String
146+
@Param var screenName: String
147+
148+
@Key("-c", "--category", description: "Add and optional category for this Screen event")
149+
var category: String?
147150

148151
@Flag("-f", "--flush", description: "Flush event(s) to Segment before returning")
149152
var flush: Bool
@@ -160,7 +163,7 @@ class AnalyticsScreenCommand: Command {
160163
analytics.waitUntilStarted()
161164

162165
executeAndWait { semaphore in
163-
analytics.track(name: eventName, properties: paramArryToDictionary(properties))
166+
analytics.screen(title: screenName, category: category)
164167
// wait till we know the event has been placed in the queue
165168
while analytics.hasUnsentEvents == false {
166169
RunLoop.main.run(until: Date.distantPast)
@@ -177,7 +180,7 @@ class AnalyticsScreenCommand: Command {
177180
}
178181

179182
spinner.stop()
180-
print("Event `\(eventName)` sent!\n")
183+
print("Screen event `\(screenName)` sent!\n")
181184
}
182185
}
183186

@@ -186,15 +189,15 @@ class AnalyticsGroupCommand: Command {
186189
let shortDescription = "Send a group event to Segment"
187190

188191
@Param var writeKey: String
189-
@Param var eventName: String
192+
@Param var groupId: String
190193

191194
@Flag("-f", "--flush", description: "Flush event(s) to Segment before returning")
192195
var flush: Bool
193196

194-
@CollectedParam(minCount: 0, validation: keyValueValidation) var properties: [String]
197+
@CollectedParam(minCount: 0, validation: keyValueValidation) var traits: [String]
195198

196199
func execute() throws {
197-
let spinner = Spinner(.dots, "Sending track event to Segment ...")
200+
let spinner = Spinner(.dots, "Sending group event to Segment ...")
198201
spinner.start()
199202

200203
Analytics.debugLogsEnabled = true
@@ -203,7 +206,7 @@ class AnalyticsGroupCommand: Command {
203206
analytics.waitUntilStarted()
204207

205208
executeAndWait { semaphore in
206-
analytics.track(name: eventName, properties: paramArryToDictionary(properties))
209+
analytics.group(groupId: groupId, traits: paramArryToDictionary(traits))
207210
// wait till we know the event has been placed in the queue
208211
while analytics.hasUnsentEvents == false {
209212
RunLoop.main.run(until: Date.distantPast)
@@ -220,7 +223,7 @@ class AnalyticsGroupCommand: Command {
220223
}
221224

222225
spinner.stop()
223-
print("Event `\(eventName)` sent!\n")
226+
print("Group Event (id: \(groupId)) sent!\n")
224227
}
225228
}
226229

@@ -229,15 +232,13 @@ class AnalyticsAliasCommand: Command {
229232
let shortDescription = "Send an alias event to Segment"
230233

231234
@Param var writeKey: String
232-
@Param var eventName: String
235+
@Param var newId: String
233236

234237
@Flag("-f", "--flush", description: "Flush event(s) to Segment before returning")
235238
var flush: Bool
236239

237-
@CollectedParam(minCount: 0, validation: keyValueValidation) var properties: [String]
238-
239240
func execute() throws {
240-
let spinner = Spinner(.dots, "Sending track event to Segment ...")
241+
let spinner = Spinner(.dots, "Sending alias event to Segment ...")
241242
spinner.start()
242243

243244
Analytics.debugLogsEnabled = true
@@ -246,7 +247,7 @@ class AnalyticsAliasCommand: Command {
246247
analytics.waitUntilStarted()
247248

248249
executeAndWait { semaphore in
249-
analytics.track(name: eventName, properties: paramArryToDictionary(properties))
250+
analytics.alias(newId: newId)
250251
// wait till we know the event has been placed in the queue
251252
while analytics.hasUnsentEvents == false {
252253
RunLoop.main.run(until: Date.distantPast)
@@ -263,7 +264,7 @@ class AnalyticsAliasCommand: Command {
263264
}
264265

265266
spinner.stop()
266-
print("Event `\(eventName)` sent!\n")
267+
print("Alias event (id: \(newId)) sent!\n")
267268
}
268269
}
269270

0 commit comments

Comments
 (0)