Skip to content
This repository was archived by the owner on Apr 30, 2024. It is now read-only.

Commit 6e75dfe

Browse files
committed
Added more logging events
1 parent 5737d57 commit 6e75dfe

File tree

5 files changed

+50
-5
lines changed

5 files changed

+50
-5
lines changed

src/Quarrel.ViewModels/Services/APIs/GitHubService/GitHubService.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,9 @@ public GitHubService(IAnalyticsService analyticsService)
7373
var user = await _gitHubApiService.GetUserAsync(contributor.Name);
7474
return new BindableDeveloper(user, contributor);
7575
}
76-
catch
76+
catch (Exception ex)
7777
{
78+
_analyticsService.Log(LoggedEvent.GitHubRequestFailed, ("Endpoint", "GetDeveloper"), ("Exception", ex.Message));
7879
return null;
7980
}
8081
}

src/Quarrel.ViewModels/Services/Analytics/Enums/LoggedEvent.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,20 @@ namespace Quarrel.Services.Analytics.Enums
99
/// </summary>
1010
public enum LoggedEvent
1111
{
12+
#region App
13+
/// <summary>
14+
/// A subpage opened.
15+
/// </summary>
16+
[StringValue("SubPage Opened")]
17+
SubPageOpened,
18+
19+
/// <summary>
20+
/// A message was sent.
21+
/// </summary>
22+
[StringValue("Message Sent")]
23+
MessageSent,
24+
#endregion
25+
1226
#region Login
1327
/// <summary>
1428
/// The app attempted to login.
@@ -29,12 +43,16 @@ public enum LoggedEvent
2943
LoginFailed,
3044
#endregion
3145

46+
#region API
47+
3248
/// <summary>
3349
/// Encountered an issue in an http request, but it was handled.
3450
/// </summary>
3551
[StringValue("Http Exception Handled")]
3652
HttpExceptionHandled,
3753

54+
#endregion
55+
3856
#region Gateway
3957
/// <summary>
4058
/// The gateway encountered a known event.
@@ -87,6 +105,12 @@ public enum LoggedEvent
87105
[StringValue("GitHub Request Failed")]
88106
GitHubRequestFailed,
89107

108+
/// <summary>
109+
/// A request to the Discord Status API failed.
110+
/// </summary>
111+
[StringValue("Discord Status Request Failed")]
112+
DiscordStatusRequestFailed,
113+
90114
#endregion
91115

92116
#region AppServiceConnection

src/Quarrel.ViewModels/Services/Discord/DiscordService.Methods.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
using Quarrel.Client.Models.Messages;
1515
using Quarrel.Client.Models.Settings;
1616
using Quarrel.Client.Models.Users;
17+
using Quarrel.Services.Analytics.Enums;
1718
using System;
1819
using System.Collections.Generic;
1920
using System.Threading.Tasks;
@@ -180,6 +181,8 @@ public async Task<Message[]> GetChannelMessagesAsync(IBindableMessageChannel cha
180181
/// <inheritdoc/>
181182
public void SendMessage(ulong channelId, string content)
182183
{
184+
_analyticsService.Log(LoggedEvent.MessageSent);
185+
183186
_quarrelClient.SendMessage(channelId, content);
184187
}
185188
}

src/Quarrel.ViewModels/ViewModels/SubPages/DiscordStatus/DiscordStatusViewModel.cs

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,11 @@
44
using Discord.API.Status.Models;
55
using Discord.API.Status.Rest;
66
using Microsoft.Toolkit.Mvvm.ComponentModel;
7+
using Quarrel.Services.Analytics;
8+
using Quarrel.Services.Analytics.Enums;
79
using Quarrel.ViewModels.SubPages.DiscordStatus.Enums;
810
using Quarrel.ViewModels.SubPages.DiscordStatus.Models;
11+
using Refit;
912
using System;
1013
using System.Collections.Generic;
1114
using System.Collections.ObjectModel;
@@ -17,6 +20,8 @@ namespace Quarrel.ViewModels.SubPages.DiscordStatus
1720
/// </summary>
1821
public partial class DiscordStatusViewModel : ObservableObject
1922
{
23+
private readonly IAnalyticsService _analyticsService;
24+
2025
private Index? _status;
2126
private IStatusService? _statusService;
2227

@@ -29,8 +34,9 @@ public partial class DiscordStatusViewModel : ObservableObject
2934
/// <summary>
3035
/// Initializes a new instance of the <see cref="DiscordStatusViewModel"/> class.
3136
/// </summary>
32-
public DiscordStatusViewModel()
37+
public DiscordStatusViewModel(IAnalyticsService analyticsService)
3338
{
39+
_analyticsService = analyticsService;
3440
_state = DiscordStatusState.Loading;
3541
SetupAndLoad();
3642
}
@@ -110,8 +116,9 @@ private async void SetupAndLoad()
110116
{
111117
Status = await _statusService.GetStatus();
112118
}
113-
catch
119+
catch (ApiException ex)
114120
{
121+
_analyticsService.Log(LoggedEvent.DiscordStatusRequestFailed, ("Endpoint", "GetStatus"), ("Exception", ex.Message));
115122
}
116123

117124
// Has Data
@@ -196,7 +203,10 @@ public async void ShowMetrics(string duration)
196203
Guard.IsNotNull(_statusService);
197204
metrics = await _statusService.GetMetrics(duration);
198205
}
199-
catch { }
206+
catch (Exception ex)
207+
{
208+
_analyticsService.Log(LoggedEvent.DiscordStatusRequestFailed, ("Endpoint", "GetMetrics"), ("Exception", ex.Message));
209+
}
200210

201211
if (metrics != null && metrics.Metrics != null && metrics.Metrics.Length > 0)
202212
{

src/Quarrel.ViewModels/ViewModels/SubPages/Host/SubPageHostViewModel.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
using Microsoft.Toolkit.Mvvm.Input;
77
using Microsoft.Toolkit.Mvvm.Messaging;
88
using Quarrel.Messages.Navigation.SubPages;
9+
using Quarrel.Services.Analytics;
10+
using Quarrel.Services.Analytics.Enums;
911
using System;
1012
using System.Collections.Generic;
1113

@@ -16,6 +18,7 @@ namespace Quarrel.ViewModels.SubPages.Host
1618
/// </summary>
1719
public partial class SubPageHostViewModel : ObservableRecipient
1820
{
21+
private readonly IAnalyticsService _analyticsService;
1922
private readonly IMessenger _messenger;
2023
private readonly Stack<object> _navStack;
2124

@@ -24,8 +27,9 @@ public partial class SubPageHostViewModel : ObservableRecipient
2427
/// <summary>
2528
/// Initializes a new instance of the <see cref="SubPageHostViewModel"/> class.
2629
/// </summary>
27-
public SubPageHostViewModel(IMessenger messenger)
30+
public SubPageHostViewModel(IAnalyticsService analyticsService, IMessenger messenger)
2831
{
32+
_analyticsService = analyticsService;
2933
_messenger = messenger;
3034
_navStack = new Stack<object>();
3135

@@ -69,6 +73,9 @@ private void NavigateToSubPage(Type viewModelType)
6973
_navStack.Push(ContentViewModel);
7074
}
7175

76+
_analyticsService.Log(LoggedEvent.SubPageOpened,
77+
("Type", viewModelType.Name));
78+
7279
ContentViewModel = viewModel;
7380
}
7481

0 commit comments

Comments
 (0)