mirror of
https://github.com/chylex/Discord-History-Tracker.git
synced 2025-04-14 07:37:13 +03:00
26 lines
966 B
C#
26 lines
966 B
C#
using System;
|
|
using System.Net;
|
|
using System.Net.Mime;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using DHT.Server.Database;
|
|
using DHT.Server.Database.Export;
|
|
using DHT.Server.Service.Viewer;
|
|
using DHT.Utils.Http;
|
|
using Microsoft.AspNetCore.Http;
|
|
|
|
namespace DHT.Server.Endpoints;
|
|
|
|
sealed class GetViewerDataEndpoint(IDatabaseFile db, ViewerSessions viewerSessions) : BaseEndpoint(db) {
|
|
protected override Task Respond(HttpRequest request, HttpResponse response, CancellationToken cancellationToken) {
|
|
if (!request.Query.TryGetValue("session", out var sessionIdValue) || sessionIdValue.Count != 1 || !Guid.TryParse(sessionIdValue[0], out Guid sessionId)) {
|
|
throw new HttpException(HttpStatusCode.BadRequest, "Invalid session ID.");
|
|
}
|
|
|
|
response.ContentType = MediaTypeNames.Application.Json;
|
|
|
|
var session = viewerSessions.Get(sessionId);
|
|
return ViewerJsonExport.Generate(response.Body, Db, session.MessageFilter, cancellationToken);
|
|
}
|
|
}
|