Foxchat.NET/Foxchat.Identity/Controllers/NodeController.cs

29 lines
894 B
C#
Raw Permalink Normal View History

2024-05-21 17:45:35 +02:00
using Foxchat.Core;
using Foxchat.Core.Models.Http;
2024-05-11 15:26:47 +02:00
using Foxchat.Identity.Database;
using Foxchat.Identity.Services;
using Microsoft.AspNetCore.Mvc;
namespace Foxchat.Identity.Controllers;
[ApiController]
[Route("/_fox/ident/node")]
2024-05-21 17:45:35 +02:00
public class NodeController(IdentityContext db, ChatInstanceResolverService chatInstanceResolverService)
: ControllerBase
2024-05-11 15:26:47 +02:00
{
2024-05-21 17:45:35 +02:00
private const string SoftwareName = "Foxchat.NET.Identity";
2024-05-11 15:26:47 +02:00
[HttpGet]
public async Task<IActionResult> GetNode()
{
var instance = await db.GetInstanceAsync();
2024-05-21 17:45:35 +02:00
return Ok(new Hello.NodeInfo(new Hello.NodeSoftware(SoftwareName, BuildInfo.Version), instance.PublicKey));
2024-05-11 15:26:47 +02:00
}
[HttpGet("{domain}")]
public async Task<IActionResult> GetChatNode(string domain)
{
var instance = await chatInstanceResolverService.ResolveChatInstanceAsync(domain);
return Ok(instance);
}
2024-05-21 17:45:35 +02:00
}