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.
Dotnet-WebAPI/API/Controllers/UserController.cs

31 lines
938 B

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(User User, Team[] Teams, Tactic[] Tactics);
[Authorize]
[HttpGet("/user-data")]
public async Task<GetUserDataResponse> GetUserData()
{
var userId = this.CurrentUserId();
var user = await users.GetUser(userId);
var userTeams = await teams.ListTeamsOf(userId);
var userTactics = await tactics.ListTacticsOf(userId);
return new GetUserDataResponse(user!, userTeams.ToArray(), userTactics.ToArray());
}
}