add logging in admin controllers
continuous-integration/drone/push Build is passing Details

consoleTests
maxime 1 year ago
parent a98f15d103
commit 4b6122f781

@ -5,8 +5,13 @@ using Services;
namespace API.Controllers.Admin;
/// <summary>
/// WARNING: This controller does not requires the requester to be authenticated, see https://codefirst.iut.uca.fr/git/IQBall/Server-Panel/issues/2
/// </summary>
/// <param name="service"></param>
[ApiController]
public class TeamsAdminController(ITeamService service) : ControllerBase
public class TeamsAdminController(ITeamService service, ILogger<TeamsAdminController> logger) : ControllerBase
{
public record CountTeamsResponse(int Value);
@ -14,15 +19,10 @@ public class TeamsAdminController(ITeamService service) : ControllerBase
[HttpGet("/admin/teams/count")]
public async Task<CountTeamsResponse> CountTeams()
{
logger.LogTrace("Counting teams");
return new CountTeamsResponse(await service.CountTotalTeams());
}
// [HttpGet("/admin/users/count")]
// public async Task<CountUsersResponse> CountUsers()
// {
// return new CountUsersResponse(await service.UsersCount());
// }
[HttpGet("/admin/teams")]
public Task<IEnumerable<Team>> ListTeams(
[Range(0, int.MaxValue, ErrorMessage = "Only positive number allowed")]
@ -31,6 +31,7 @@ public class TeamsAdminController(ITeamService service) : ControllerBase
int n
)
{
logger.LogTrace("Listing teams");
return service.ListTeams(start, n);
}
@ -39,6 +40,7 @@ public class TeamsAdminController(ITeamService service) : ControllerBase
[HttpPost("/admin/teams")]
public async Task<IActionResult> AddTeam([FromBody] AddTeamRequest req)
{
logger.LogTrace("Adding teams");
var team = await service.AddTeam(req.Name, req.Picture, req.FirstColor, req.SecondColor);
return Ok(team);
@ -49,6 +51,7 @@ public class TeamsAdminController(ITeamService service) : ControllerBase
[HttpPut("/admin/teams/{teamId:int}")]
public async Task<IActionResult> UpdateTeam(int teamId, [FromBody] UpdateTeamRequest req)
{
logger.LogTrace("Updating teams");
await service.UpdateTeam(new Team(teamId, req.Name, req.Picture, req.MainColor, req.SecondaryColor));
return Ok();
@ -59,6 +62,8 @@ public class TeamsAdminController(ITeamService service) : ControllerBase
[HttpPost("/admin/teams/remove-all")]
public async Task<IActionResult> DeleteTeams([FromBody] DeleteTeamsRequest req)
{
logger.LogTrace("Deleting teams");
await service.RemoveTeams(req.Teams);
return Ok();
}

@ -5,8 +5,12 @@ using Services;
namespace API.Controllers.Admin;
/// <summary>
/// WARNING: This controller does not requires the requester to be authenticated, see https://codefirst.iut.uca.fr/git/IQBall/Server-Panel/issues/2
/// </summary>
/// <param name="service"></param>
[ApiController]
public class UsersAdminController(IUserService service) : ControllerBase
public class UsersAdminController(IUserService service, ILogger<UsersAdminController> logger) : ControllerBase
{
public record CountUsersResponse(int Value);
@ -17,20 +21,17 @@ public class UsersAdminController(IUserService service) : ControllerBase
string search
)
{
logger.LogTrace("Counting Users");
return new CountUsersResponse(await service.UsersCount(search));
}
[HttpGet("/admin/users/count")]
public async Task<CountUsersResponse> CountUsers()
{
logger.LogTrace("Counting Users");
return new CountUsersResponse(await service.UsersCount());
}
// [HttpGet("/admin/users/count")]
// public async Task<CountUsersResponse> CountUsers()
// {
// return new CountUsersResponse(await service.UsersCount());
// }
[HttpGet("/admin/users")]
public async Task<IEnumerable<User>> ListUsers(
@ -42,6 +43,8 @@ public class UsersAdminController(IUserService service) : ControllerBase
string? search
)
{
logger.LogTrace("Listing Users");
var result = await service.ListUsers(start, n, search);
return result;
}
@ -52,6 +55,8 @@ public class UsersAdminController(IUserService service) : ControllerBase
int id
)
{
logger.LogTrace("Getting a specific User ({})", id);
var result = await service.GetUser(id);
if (result == null)
return NotFound();
@ -73,6 +78,8 @@ public class UsersAdminController(IUserService service) : ControllerBase
[HttpPost("/admin/users")]
public Task<User> AddUser([FromBody] AddUserRequest req)
{
logger.LogTrace("Adding a User");
return service.CreateUser(req.Username, req.Email, req.Password, UsersController.DefaultProfilePicture,
req.IsAdmin);
}
@ -82,6 +89,8 @@ public class UsersAdminController(IUserService service) : ControllerBase
[HttpPost("/admin/users/remove-all")]
public async Task<IActionResult> RemoveUsers([FromBody] RemoveUsersRequest req)
{
logger.LogTrace("Removing Users");
await service.RemoveUsers(req.Identifiers);
return Ok();
}
@ -103,6 +112,8 @@ public class UsersAdminController(IUserService service) : ControllerBase
{
try
{
logger.LogTrace("Updating Users");
await service.UpdateUser(new User(id, req.Username, req.Email, UsersController.DefaultProfilePicture,
req.IsAdmin));
return Ok();

@ -3,6 +3,7 @@ using DbServices;
using FluentAssertions;
using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using Model;
using StubContext;
@ -21,7 +22,8 @@ public class AdminTeamsControllerTest
);
context.Database.EnsureCreated();
var controller = new TeamsAdminController(
new DbTeamService(context)
new DbTeamService(context),
new LoggerFactory().CreateLogger<TeamsAdminController>()
);
return (controller, context);

@ -4,6 +4,7 @@ using DbServices;
using FluentAssertions;
using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using Model;
using StubContext;
@ -23,7 +24,7 @@ public class AdminUserControllerTest
);
context.Database.EnsureCreated();
var service = new DbUserService(context);
return new UsersAdminController(service);
return new UsersAdminController(service, new LoggerFactory().CreateLogger<UsersAdminController>());
}

Loading…
Cancel
Save