Skip to content

Commit

Permalink
creates CustomerCenterEventDiscriminator and more renames
Browse files Browse the repository at this point in the history
  • Loading branch information
vegaro committed Dec 9, 2024
1 parent e33cb2a commit 17ea410
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 13 deletions.
11 changes: 9 additions & 2 deletions Sources/CustomerCenter/Events/CustomerCenterEvent.swift
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,13 @@ extension CustomerCenterEventType {

}

enum CustomerCenterEventDiscriminator: String {

case lifecycle = "lifecycle"
case answerSubmitted = "answer_submitted"

}

/// Data that represents a customer center event creation.
public struct CustomerCenterEventCreationData {

Expand All @@ -42,7 +49,7 @@ public struct CustomerCenterEventCreationData {
/// An event to be sent by the `RevenueCatUI` SDK.
public enum CustomerCenterEvent: FeatureEvent, CustomerCenterEventType {

var eventDiscriminator: String? { "lifecycle" }
var eventDiscriminator: String? { CustomerCenterEventDiscriminator.lifecycle.rawValue }

/// The Customer Center was displayed.
case impression(CustomerCenterEventCreationData, Data)
Expand All @@ -52,7 +59,7 @@ public enum CustomerCenterEvent: FeatureEvent, CustomerCenterEventType {
/// An event to be sent by the `RevenueCatUI` SDK.
public enum CustomerCenterAnswerSubmittedEvent: FeatureEvent, CustomerCenterEventType {

var eventDiscriminator: String? { "survey_option_chosen" }
var eventDiscriminator: String? { CustomerCenterEventDiscriminator.lifecycle.rawValue }

/// A feedback survey was completed with a particular option.
case answerSubmitted(CustomerCenterEventCreationData, Data)
Expand Down
16 changes: 8 additions & 8 deletions Sources/CustomerCenter/Events/EventsRequest+CustomerCenter.swift
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ extension EventsRequest {

}

class CustomerCenterEventBase {
class CustomerCenterEventBaseRequest {

let id: String?
let version: Int
Expand Down Expand Up @@ -66,7 +66,7 @@ extension EventsRequest {
}

@available(iOS 15.0, macOS 12.0, tvOS 15.0, watchOS 8.0, *)
static func createBase(from storedEvent: StoredEvent) -> CustomerCenterEventBase? {
static func createBase(from storedEvent: StoredEvent) -> CustomerCenterEventBaseRequest? {
guard let appSessionID = storedEvent.appSessionID else {
Logger.error(Strings.paywalls.event_missing_app_session_id)
return nil
Expand All @@ -85,7 +85,7 @@ extension EventsRequest {
let creationData = customerCenterEvent.creationData
let data = customerCenterEvent.data

return CustomerCenterEventBase(
return CustomerCenterEventBaseRequest(
id: creationData.id.uuidString,
version: version,
type: customerCenterEvent.eventType,
Expand All @@ -102,7 +102,7 @@ extension EventsRequest {
private static let version: Int = 1
}

final class CustomerCenterEventSurveyOptionChosen {
final class CustomerCenterAnswerSubmittedEventRequest {

let id: String?
let version: Int
Expand Down Expand Up @@ -155,7 +155,7 @@ extension EventsRequest {
}

@available(iOS 15.0, macOS 12.0, tvOS 15.0, watchOS 8.0, *)
static func create(from storedEvent: StoredEvent) -> CustomerCenterEventSurveyOptionChosen? {
static func create(from storedEvent: StoredEvent) -> CustomerCenterAnswerSubmittedEventRequest? {
guard let appSessionID = storedEvent.appSessionID else {
Logger.error(Strings.paywalls.event_missing_app_session_id)
return nil
Expand All @@ -174,7 +174,7 @@ extension EventsRequest {
let creationData = customerCenterEvent.creationData
let data = customerCenterEvent.data

return CustomerCenterEventSurveyOptionChosen(
return CustomerCenterAnswerSubmittedEventRequest(
id: creationData.id.uuidString,
version: version,
appUserID: storedEvent.userID,
Expand Down Expand Up @@ -214,7 +214,7 @@ private extension CustomerCenterEvent {
// MARK: - Codable

extension EventsRequest.CustomerCenterEventType: Encodable {}
extension EventsRequest.CustomerCenterEventBase: Encodable {
extension EventsRequest.CustomerCenterEventBaseRequest: Encodable {

private enum CodingKeys: String, CodingKey {

Expand All @@ -234,7 +234,7 @@ extension EventsRequest.CustomerCenterEventBase: Encodable {

}

extension EventsRequest.CustomerCenterEventSurveyOptionChosen: Encodable {
extension EventsRequest.CustomerCenterAnswerSubmittedEventRequest: Encodable {

private enum CodingKeys: String, CodingKey {

Expand Down
6 changes: 3 additions & 3 deletions Sources/Events/Networking/EventsRequest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,13 @@ struct EventsRequest {
return AnyEncodable(event)
case .customerCenter:
switch storedEvent.eventDiscriminator {
case "survey_option_chosen":
guard let event = CustomerCenterEventSurveyOptionChosen.create(from: storedEvent) else {
case CustomerCenterEventDiscriminator.answerSubmitted.rawValue:
guard let event = CustomerCenterAnswerSubmittedEventRequest.create(from: storedEvent) else {
return nil
}
return AnyEncodable(event)
default:
guard let event = CustomerCenterEventBase.createBase(from: storedEvent) else {
guard let event = CustomerCenterEventBaseRequest.createBase(from: storedEvent) else {
return nil
}
return AnyEncodable(event)
Expand Down

0 comments on commit 17ea410

Please sign in to comment.