You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
913 B
31 lines
913 B
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<User> GetUser()
|
|
{
|
|
var userId = this.CurrentUserId();
|
|
return (await users.GetUser(userId))!;
|
|
}
|
|
|
|
public record GetUserDataResponse(Team[] Teams, TacticDto[] Tactics);
|
|
|
|
[Authorize]
|
|
[HttpGet("/user-data")]
|
|
public async Task<GetUserDataResponse> 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());
|
|
}
|
|
} |