Revize a70f3c5f
Přidáno uživatelem Vojtěch Bartička před asi 3 roky(ů)
Backend/Backend/Controllers/UserController.cs | ||
---|---|---|
1 |
using Core.Services; |
|
2 |
using Microsoft.AspNetCore.Mvc; |
|
3 |
using Models.Users; |
|
4 |
using RestAPI.Authentication; |
|
5 |
using RestAPI.Controllers.Common; |
|
6 |
using RestAPI.Exceptions; |
|
7 |
using RestAPI.Utils; |
|
8 |
using System.Net; |
|
9 |
|
|
10 |
namespace RestAPI.Controllers |
|
11 |
{ |
|
12 |
public class UserController : CommonControllerBase |
|
13 |
{ |
|
14 |
private readonly Serilog.ILogger logger; |
|
15 |
private readonly IUserService userService; |
|
16 |
|
|
17 |
public UserController(Serilog.ILogger logger, IUserService userService) |
|
18 |
{ |
|
19 |
this.logger = logger; |
|
20 |
this.userService = userService; |
|
21 |
} |
|
22 |
|
|
23 |
[HttpGet("/users")] |
|
24 |
[Authorize(Models.Enums.ERole.ADMINISTRATOR)] |
|
25 |
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(UserList))] |
|
26 |
[ProducesResponseType((int)HttpStatusCode.Forbidden)] |
|
27 |
public ActionResult<UserList> GetUsers([FromServices] ClientInfo clientInfo) |
|
28 |
{ |
|
29 |
if (clientInfo.LoggedUser == null) |
|
30 |
{ |
|
31 |
logger.Warning("ClientInfo has null LoggerUser in [Authorized] controller /annotations"); |
|
32 |
return Problem(); |
|
33 |
} |
|
34 |
|
|
35 |
try |
|
36 |
{ |
|
37 |
var userList = userService.GetUsers(); |
|
38 |
return Ok(userList); |
|
39 |
} |
|
40 |
catch (Exception e) |
|
41 |
{ |
|
42 |
throw new InternalErrorException(e.Message); |
|
43 |
} |
|
44 |
|
|
45 |
|
|
46 |
} |
|
47 |
} |
|
48 |
} |
Backend/Core/Services/UserService/IUserService.cs | ||
---|---|---|
1 | 1 |
using Core.Entities; |
2 | 2 |
using Models.Enums; |
3 |
using Models.Users; |
|
3 | 4 |
using System; |
4 | 5 |
using System.Collections.Generic; |
5 | 6 |
using System.Linq; |
... | ... | |
16 | 17 |
public User UpdateUser(User user, string? username = null, string? name = null, string? surname = null, ERole? role = null); |
17 | 18 |
public User ChangePassword(User user, string newPassword); |
18 | 19 |
public User? CheckUsernamePassword(string username, string password); |
20 |
public UserList GetUsers(); |
|
19 | 21 |
} |
20 | 22 |
} |
Backend/Core/Services/UserService/UserServiceEF.cs | ||
---|---|---|
8 | 8 |
using System.Threading.Tasks; |
9 | 9 |
using Serilog; |
10 | 10 |
using BCrypt.Net; |
11 |
using Models.Users; |
|
12 |
using AutoMapper; |
|
11 | 13 |
|
12 | 14 |
namespace Core.Services |
13 | 15 |
{ |
... | ... | |
15 | 17 |
{ |
16 | 18 |
private readonly DatabaseContext _databaseContext; |
17 | 19 |
private readonly ILogger _logger; |
20 |
private readonly IMapper _mapper; |
|
18 | 21 |
|
19 |
public UserServiceEF(DatabaseContext context, ILogger logger) |
|
22 |
public UserServiceEF(DatabaseContext context, ILogger logger, IMapper mapper)
|
|
20 | 23 |
{ |
21 | 24 |
_databaseContext = context; |
22 | 25 |
_logger = logger; |
26 |
_mapper = mapper; |
|
23 | 27 |
} |
24 | 28 |
|
25 | 29 |
public User ChangePassword(User user, string newPassword) |
... | ... | |
141 | 145 |
_databaseContext.SaveChanges(); |
142 | 146 |
return user; |
143 | 147 |
} |
148 |
|
|
149 |
public UserList GetUsers() |
|
150 |
{ |
|
151 |
var users = _databaseContext.Users.Select(u => u); |
|
152 |
UserList userList = new UserList(); |
|
153 |
foreach (var user in users) |
|
154 |
{ |
|
155 |
userList.Users.Add(_mapper.Map<UserInfo>(user)); |
|
156 |
} |
|
157 |
|
|
158 |
return userList; |
|
159 |
} |
|
144 | 160 |
} |
145 | 161 |
} |
Backend/Models/Users/UserList.cs | ||
---|---|---|
1 |
using System; |
|
2 |
using System.Collections.Generic; |
|
3 |
using System.Linq; |
|
4 |
using System.Text; |
|
5 |
using System.Threading.Tasks; |
|
6 |
|
|
7 |
namespace Models.Users |
|
8 |
{ |
|
9 |
public class UserList |
|
10 |
{ |
|
11 |
public List<UserInfo> Users { get; set; } = new(); |
|
12 |
} |
|
13 |
} |
Také k dispozici: Unified diff
Added UserController and GET on /users