Remotely/Server/API/ServerLogsController.cs

39 lines
1.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Mime;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Remotely.Server.Auth;
using Remotely.Server.Services;
using Remotely.Shared.Models;
namespace Remotely.Server.API
{
[Route("api/[controller]")]
[ApiController]
public class ServerLogsController : ControllerBase
{
public ServerLogsController(DataService dataService)
{
DataService = dataService;
}
public DataService DataService { get; set; }
[ServiceFilter(typeof(ApiAuthorizationFilter))]
[HttpGet("Download")]
public ActionResult Download()
{
Request.Headers.TryGetValue("OrganizationID", out var orgID);
var logs = DataService.GetAllEventLogs(orgID);
var fileBytes = Encoding.UTF8.GetBytes(JsonSerializer.Serialize(logs));
return File(fileBytes, "application/octet-stream", "ServerLogs.json");
}
}
}