Skip to content

Commit 85249b0

Browse files
committed
Update signature to include Push in returned task
1 parent 598643b commit 85249b0

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

Realtime/Interfaces/IRealtimePresence.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using Supabase.Realtime.Socket;
22
using System;
33
using System.Threading.Tasks;
4+
using Supabase.Realtime.Channel;
45
using Supabase.Realtime.Models;
56
using static Supabase.Realtime.Constants;
67

@@ -40,14 +41,14 @@ public enum EventType
4041
/// </summary>
4142
/// <param name="payload"></param>
4243
/// <param name="timeoutMs"></param>
43-
Task Track(object? payload, int timeoutMs = DefaultTimeout);
44+
Task<Push> Track(object? payload, int timeoutMs = DefaultTimeout);
4445

4546
/// <summary>
4647
/// Untracks a client
4748
/// </summary>
4849
/// <param name="payload"></param>
4950
/// <param name="timeoutMs"></param>
50-
Task Untrack();
51+
Task<Push> Untrack();
5152

5253
/// <summary>
5354
/// Add a presence event handler

Realtime/RealtimePresence.cs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ public void TriggerDiff(SocketResponse response)
152152
/// </summary>
153153
/// <param name="payload"></param>
154154
/// <param name="timeoutMs"></param>
155-
public Task Track(object? payload, int timeoutMs = DefaultTimeout)
155+
public Task<Push> Track(object? payload, int timeoutMs = DefaultTimeout)
156156
{
157157
var eventName = Core.Helpers.GetMappedToAttr(ChannelEventName.Presence).Mapping;
158158
var push = new Push(_channel.Socket, _channel, eventName, "track",
@@ -169,7 +169,9 @@ void Handler(IRealtimePush<RealtimeChannel, SocketResponse> chanel, SocketRespon
169169

170170
push.OnTimeout += (sender, args) =>
171171
{
172-
tcs.SetException(new RealtimeException(args.ToString()) { Reason = FailureHint.Reason.PushTimeout });
172+
if (sender is Push p)
173+
tcs.SetException(new RealtimeException($"Failed to send push [{p.Ref}])")
174+
{ Reason = FailureHint.Reason.PushTimeout });
173175
};
174176

175177
_channel.Enqueue(push);
@@ -180,7 +182,7 @@ void Handler(IRealtimePush<RealtimeChannel, SocketResponse> chanel, SocketRespon
180182
/// <summary>
181183
/// Untracks an event.
182184
/// </summary>
183-
public Task Untrack()
185+
public Task<Push> Untrack()
184186
{
185187
var eventName = Core.Helpers.GetMappedToAttr(ChannelEventName.Presence).Mapping;
186188
var push = new Push(_channel.Socket, _channel, eventName, "untrack",
@@ -197,8 +199,9 @@ void Handler(IRealtimePush<RealtimeChannel, SocketResponse> chanel, SocketRespon
197199

198200
push.OnTimeout += (sender, args) =>
199201
{
200-
tcs.TrySetException(new RealtimeException((sender as Push)!.Ref)
201-
{ Reason = FailureHint.Reason.PushTimeout });
202+
if (sender is Push p)
203+
tcs.TrySetException(new RealtimeException($"Failed to send push [{p.Ref}])")
204+
{ Reason = FailureHint.Reason.PushTimeout });
202205
};
203206

204207
_channel.Enqueue(push);

0 commit comments

Comments
 (0)