Kavita/API/SignalR/LogHub.cs
Joe Milazzo 8df134e7c3
v0.7 Issues for Hotfix (#1812)
* Fix signalr admin messages sending (#1809)

* Changed messsage hub to use userIds

* SignalR events are fixed

* Fixed broken advanced tab on library settings

* Fixed regex timeout security issues.

* Added a migration for GMT+1 users where their UTC dates were getting broken somehow.

* Removed a console.log

* Fixed a migration name

---------

Co-authored-by: Snd-R <76580768+Snd-R@users.noreply.github.com>
2023-02-19 09:01:06 -08:00

59 lines
1.5 KiB
C#

using System;
using System.Threading.Tasks;
using API.Extensions;
using API.SignalR.Presence;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.SignalR;
namespace API.SignalR;
public interface ILogHub : Serilog.Sinks.AspNetCore.SignalR.Interfaces.IHub
{
}
[Authorize]
public class LogHub : Hub<ILogHub>
{
private readonly IEventHub _eventHub;
private readonly IPresenceTracker _tracker;
public LogHub(IEventHub eventHub, IPresenceTracker tracker)
{
_eventHub = eventHub;
_tracker = tracker;
}
public override async Task OnConnectedAsync()
{
await _tracker.UserConnected(Context.User.GetUserId(), Context.ConnectionId);
await base.OnConnectedAsync();
}
public override async Task OnDisconnectedAsync(Exception exception)
{
await _tracker.UserDisconnected(Context.User.GetUserId(), Context.ConnectionId);
await base.OnDisconnectedAsync(exception);
}
public async Task SendLogAsString(string message)
{
await _eventHub.SendMessageAsync("LogString", new SignalRMessage()
{
Body = message,
EventType = "LogString",
Name = "LogString",
}, true);
}
public async Task SendLogAsObject(object messageObject)
{
await _eventHub.SendMessageAsync("LogObject", new SignalRMessage()
{
Body = messageObject,
EventType = "LogString",
Name = "LogString",
}, true);
}
}