devxoul / Umbrella

☂️ Analytics abstraction layer for Swift
MIT License
615 stars 49 forks source link

Super properties #4

Closed Oyvindkg closed 7 years ago

Oyvindkg commented 7 years ago

Properties that should be sent with every event, such as user info or release version.

devxoul commented 7 years ago

You may define a common parameters dictionary and add additional parameters per events:

func parameters(for provider: ProviderType) -> [String: Any]? {
  var parameters: [String: Any] = [
    "user_id": "USER_ID",
    "app_version": "APP_VERSION",
  ]
  switch self {
  case let .signup(username):
    parameters["username"] = username
    return parameters

  case let .viewContent(productID):
    parameters["product_id"] = productID
    return parameters

  case let .purchase(productID, price):
    parameters["product_id"] = productID
    parameters["price"] = price
    return parameters
  }
}