Foxnouns.NET/Foxnouns.Backend/Controllers/UsersController.cs

34 lines
1 KiB
C#
Raw Normal View History

using System.Diagnostics;
using Foxnouns.Backend.Database;
using Foxnouns.Backend.Middleware;
using Foxnouns.Backend.Services;
using Microsoft.AspNetCore.Mvc;
namespace Foxnouns.Backend.Controllers;
[Route("/api/v2/users")]
public class UsersController(DatabaseContext db, UserRendererService userRendererService) : ApiControllerBase
{
[HttpGet("{userRef}")]
public async Task<IActionResult> GetUser(string userRef)
{
var user = await db.ResolveUserAsync(userRef);
2024-05-30 16:59:40 +02:00
return Ok(await userRendererService.RenderUserAsync(user, selfUser: User));
}
[HttpGet("@me")]
[Authorize("identify")]
2024-05-30 16:59:40 +02:00
public async Task<IActionResult> GetMe()
{
2024-05-30 16:59:40 +02:00
var user = await db.ResolveUserAsync(User!.Id);
return Ok(await userRendererService.RenderUserAsync(user, selfUser: User));
}
[HttpPatch("@me")]
public Task<IActionResult> UpdateUser([FromBody] UpdateUserRequest req)
{
throw new NotImplementedException();
}
public record UpdateUserRequest(string? Username, string? DisplayName);
}