From 9a9669514c5f9075d818eb336d0d2ab637aa91f6 Mon Sep 17 00:00:00 2001 From: "mathieu J." Date: Wed, 27 Nov 2024 08:12:32 +0200 Subject: [PATCH 1/5] =?UTF-8?q?=E2=9C=A8=20(AnalyticsKit):=20Add=20logEven?= =?UTF-8?q?tCaregiverCreate=20function?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sources/Analytics/AnalyticsManager+Users.swift | 8 ++++++++ .../AnalyticsKit/Sources/Analytics/AnalyticsManager.swift | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/Modules/AnalyticsKit/Sources/Analytics/AnalyticsManager+Users.swift b/Modules/AnalyticsKit/Sources/Analytics/AnalyticsManager+Users.swift index 315fdfa3db..8251edba8e 100644 --- a/Modules/AnalyticsKit/Sources/Analytics/AnalyticsManager+Users.swift +++ b/Modules/AnalyticsKit/Sources/Analytics/AnalyticsManager+Users.swift @@ -15,6 +15,14 @@ public extension AnalyticsManager { logEvent(.caregiverSelect, parameters: params) } + static func logEventCaregiverCreate(id: String, parameters: [String: Any] = [:]) { + let params: [String: Any] = [ + "lk_caregiver_id_new": id, + ].merging(parameters) { _, new in new } + + logEvent(.caregiverCreate, parameters: params) + } + static func logEventCarereceiverSkipSelect(parameters: [String: Any] = [:]) { let params: [String: Any] = [:].merging(parameters) { _, new in new } diff --git a/Modules/AnalyticsKit/Sources/Analytics/AnalyticsManager.swift b/Modules/AnalyticsKit/Sources/Analytics/AnalyticsManager.swift index b7fcf2d4ad..313d743bb4 100644 --- a/Modules/AnalyticsKit/Sources/Analytics/AnalyticsManager.swift +++ b/Modules/AnalyticsKit/Sources/Analytics/AnalyticsManager.swift @@ -40,7 +40,9 @@ public class AnalyticsManager { case selectContent + case caregiverCreate case caregiverSelect + case carereceiverSkipSelect // MARK: Internal @@ -81,8 +83,11 @@ public class AnalyticsManager { case .selectContent: AnalyticsEventSelectContent // ? "select_content" + case .caregiverCreate: + "caregiver_create" case .caregiverSelect: "caregiver_select" + case .carereceiverSkipSelect: "carereceiver_skip_select" } From 1fa9356899dacb06f020249fa008da0317ae8448 Mon Sep 17 00:00:00 2001 From: "mathieu J." Date: Wed, 27 Nov 2024 08:14:18 +0200 Subject: [PATCH 2/5] =?UTF-8?q?=F0=9F=93=88=20(AccountKit):=20Log=20caregi?= =?UTF-8?q?ver=5Fcreate=20Event=20in=20Analytics?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sources/Managers/Caregivers/CaregiverManager.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Modules/AccountKit/Sources/Managers/Caregivers/CaregiverManager.swift b/Modules/AccountKit/Sources/Managers/Caregivers/CaregiverManager.swift index d7d71c5a4c..ffde27eb37 100644 --- a/Modules/AccountKit/Sources/Managers/Caregivers/CaregiverManager.swift +++ b/Modules/AccountKit/Sources/Managers/Caregivers/CaregiverManager.swift @@ -61,8 +61,9 @@ public class CaregiverManager { .setFailureType(to: Error.self) .eraseToAnyPublisher() } - .handleEvents(receiveOutput: { [weak self] _ in + .handleEvents(receiveOutput: { [weak self] newCaregiver in self?.initializeCaregiversListener() + AnalyticsManager.logEventCaregiverCreate(id: newCaregiver.id!) }) .eraseToAnyPublisher() } From 22a246ce8fe3576d94b4cdd5a2de36ee2f86a0a7 Mon Sep 17 00:00:00 2001 From: "mathieu J." Date: Wed, 27 Nov 2024 12:29:35 +0200 Subject: [PATCH 3/5] =?UTF-8?q?=E2=9C=A8=20(AnalyticsKit):=20Add=20logEven?= =?UTF-8?q?tCaregiverEdit=20function?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sources/Managers/Caregivers/CaregiverManager.swift | 1 + .../Sources/Analytics/AnalyticsManager+Users.swift | 8 ++++++++ .../AnalyticsKit/Sources/Analytics/AnalyticsManager.swift | 3 +++ 3 files changed, 12 insertions(+) diff --git a/Modules/AccountKit/Sources/Managers/Caregivers/CaregiverManager.swift b/Modules/AccountKit/Sources/Managers/Caregivers/CaregiverManager.swift index ffde27eb37..96ac27fa5c 100644 --- a/Modules/AccountKit/Sources/Managers/Caregivers/CaregiverManager.swift +++ b/Modules/AccountKit/Sources/Managers/Caregivers/CaregiverManager.swift @@ -4,6 +4,7 @@ import AnalyticsKit import Combine +import Foundation public class CaregiverManager { // MARK: Lifecycle diff --git a/Modules/AnalyticsKit/Sources/Analytics/AnalyticsManager+Users.swift b/Modules/AnalyticsKit/Sources/Analytics/AnalyticsManager+Users.swift index 8251edba8e..064414a6b0 100644 --- a/Modules/AnalyticsKit/Sources/Analytics/AnalyticsManager+Users.swift +++ b/Modules/AnalyticsKit/Sources/Analytics/AnalyticsManager+Users.swift @@ -23,6 +23,14 @@ public extension AnalyticsManager { logEvent(.caregiverCreate, parameters: params) } + static func logEventCaregiverEdit(caregiver: String, parameters: [String: Any] = [:]) { + let params: [String: Any] = [ + "lk_caregiver_id_edited": caregiver, + ].merging(parameters) { _, new in new } + + logEvent(.caregiverEdit, parameters: params) + } + static func logEventCarereceiverSkipSelect(parameters: [String: Any] = [:]) { let params: [String: Any] = [:].merging(parameters) { _, new in new } diff --git a/Modules/AnalyticsKit/Sources/Analytics/AnalyticsManager.swift b/Modules/AnalyticsKit/Sources/Analytics/AnalyticsManager.swift index 313d743bb4..7fd2196e97 100644 --- a/Modules/AnalyticsKit/Sources/Analytics/AnalyticsManager.swift +++ b/Modules/AnalyticsKit/Sources/Analytics/AnalyticsManager.swift @@ -42,6 +42,7 @@ public class AnalyticsManager { case caregiverCreate case caregiverSelect + case caregiverEdit case carereceiverSkipSelect @@ -87,6 +88,8 @@ public class AnalyticsManager { "caregiver_create" case .caregiverSelect: "caregiver_select" + case .caregiverEdit: + "caregiver_edit" case .carereceiverSkipSelect: "carereceiver_skip_select" From 59e9944e1bccc4f9c82140bb91f82f21fc02c1b0 Mon Sep 17 00:00:00 2001 From: "mathieu J." Date: Wed, 27 Nov 2024 12:37:07 +0200 Subject: [PATCH 4/5] =?UTF-8?q?=F0=9F=93=88=20(AccountKit):=20Log=20caregi?= =?UTF-8?q?ver=5Fedit=20+=20set=20caregiver=20after=20update?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AccountKit/Sources/Database/DatabaseOperations.swift | 6 +++--- .../Sources/Managers/Caregivers/CaregiverManager.swift | 8 ++++++-- .../Managers/Carereceivers/CarereceiverManager.swift | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Modules/AccountKit/Sources/Database/DatabaseOperations.swift b/Modules/AccountKit/Sources/Database/DatabaseOperations.swift index c5167053ee..8ec9fdd226 100644 --- a/Modules/AccountKit/Sources/Database/DatabaseOperations.swift +++ b/Modules/AccountKit/Sources/Database/DatabaseOperations.swift @@ -143,8 +143,8 @@ public class DatabaseOperations { self.listenerRegistrations.removeAll() } - public func update(data: some DatabaseDocument, in collection: DatabaseCollection) -> AnyPublisher { - Future { promise in + public func update(data: T, in collection: DatabaseCollection) -> AnyPublisher { + Future { promise in let docRef = self.database.collection(collection.rawValue).document(data.id!) do { @@ -154,7 +154,7 @@ public class DatabaseOperations { promise(.failure(DatabaseError.customError(error.localizedDescription))) } else { log.info("Document \(String(describing: data.id!)) updated successfully in \(collection.rawValue). 🎉") - promise(.success(())) + promise(.success(data)) } } } catch { diff --git a/Modules/AccountKit/Sources/Managers/Caregivers/CaregiverManager.swift b/Modules/AccountKit/Sources/Managers/Caregivers/CaregiverManager.swift index 96ac27fa5c..5723f0788b 100644 --- a/Modules/AccountKit/Sources/Managers/Caregivers/CaregiverManager.swift +++ b/Modules/AccountKit/Sources/Managers/Caregivers/CaregiverManager.swift @@ -76,8 +76,12 @@ public class CaregiverManager { if case let .failure(error) = completion { self.fetchError.send(error) } - }, receiveValue: { _ in - // Nothing to do + }, receiveValue: { [weak self] updatedCaregiver in + guard let self else { return } + guard updatedCaregiver.id == self.currentCaregiver.value?.id else { return } + self.setCurrentCaregiver(to: updatedCaregiver) + AnalyticsManager.logEventCaregiverEdit(caregiver: updatedCaregiver.id!) + log.info("Caregiver successfully updated.") }) .store(in: &self.cancellables) } diff --git a/Modules/AccountKit/Sources/Managers/Carereceivers/CarereceiverManager.swift b/Modules/AccountKit/Sources/Managers/Carereceivers/CarereceiverManager.swift index 98d65ee09c..fc6858bd71 100644 --- a/Modules/AccountKit/Sources/Managers/Carereceivers/CarereceiverManager.swift +++ b/Modules/AccountKit/Sources/Managers/Carereceivers/CarereceiverManager.swift @@ -55,7 +55,7 @@ public class CarereceiverManager { if case let .failure(error) = completion { self.fetchError.send(error) } - }, receiveValue: { + }, receiveValue: { _ in // Nothing to do }) .store(in: &self.cancellables) From f32762142c856fd6e39cddb2f040c7d425266b88 Mon Sep 17 00:00:00 2001 From: "mathieu J." Date: Thu, 28 Nov 2024 10:42:35 +0200 Subject: [PATCH 5/5] =?UTF-8?q?=F0=9F=93=88=20(AccountKit):=20Add=20missin?= =?UTF-8?q?g=20logEvent=20caregiver=5Fselect?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sources/Managers/Caregivers/CaregiverManager.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Modules/AccountKit/Sources/Managers/Caregivers/CaregiverManager.swift b/Modules/AccountKit/Sources/Managers/Caregivers/CaregiverManager.swift index 5723f0788b..c08980b43f 100644 --- a/Modules/AccountKit/Sources/Managers/Caregivers/CaregiverManager.swift +++ b/Modules/AccountKit/Sources/Managers/Caregivers/CaregiverManager.swift @@ -113,10 +113,13 @@ public class CaregiverManager { } public func setCurrentCaregiver(byID id: String) { + let previousCaregiverID: String? = self.currentCaregiver.value?.id guard let currentCaregiver = self.caregiverList.value.first(where: { $0.id == id }) else { return } self.currentCaregiver.send(currentCaregiver) + + AnalyticsManager.logEventCaregiverSelect(from: previousCaregiverID, to: currentCaregiver.id!) AnalyticsManager.setDefaultEventParameterCaregiverUid(currentCaregiver.id) AnalyticsManager.setUserPropertyCaregiverProfessions(values: currentCaregiver.professions) }