using API.DTO; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Model; using Services; namespace API.Controllers; [ApiController] public class UserController(IUserService users, ITeamService teams, ITacticService tactics) : ControllerBase { [Authorize] [HttpGet("/user")] public async Task GetUser() { var userId = this.CurrentUserId(); return (await users.GetUser(userId))!; } public record GetUserDataResponse(Team[] Teams, TacticDto[] Tactics); [Authorize] [HttpGet("/user-data")] public async Task GetUserData() { var userId = this.CurrentUserId(); var userTeams = await teams.ListTeamsOf(userId); var userTactics = await tactics.ListTacticsOf(userId); return new GetUserDataResponse(userTeams.ToArray(), userTactics.Select(t => t.ToDto()).ToArray()); } }