diff options
author | crupest <crupest@outlook.com> | 2020-01-31 21:57:09 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2020-01-31 21:57:09 +0800 |
commit | b892622e7ffdf4220f6631ec58f7a6692881dd35 (patch) | |
tree | 9039ebf7eb7a21d2e57bbe928e43bf39a42473b1 /Timeline | |
parent | e6d8183f6e5c9dec848fefa007b0e3ab428bbffa (diff) | |
download | timeline-b892622e7ffdf4220f6631ec58f7a6692881dd35.tar.gz timeline-b892622e7ffdf4220f6631ec58f7a6692881dd35.tar.bz2 timeline-b892622e7ffdf4220f6631ec58f7a6692881dd35.zip |
Fix test bugs in user info mapper. Make create user action return created user info.
Diffstat (limited to 'Timeline')
-rw-r--r-- | Timeline/Controllers/UserController.cs | 6 | ||||
-rw-r--r-- | Timeline/Models/Http/UserInfo.cs | 14 | ||||
-rw-r--r-- | Timeline/Services/UserService.cs | 8 |
3 files changed, 10 insertions, 18 deletions
diff --git a/Timeline/Controllers/UserController.cs b/Timeline/Controllers/UserController.cs index 4572296b..26e63f63 100644 --- a/Timeline/Controllers/UserController.cs +++ b/Timeline/Controllers/UserController.cs @@ -108,12 +108,12 @@ namespace Timeline.Controllers }
[HttpPost("userop/createuser"), AdminAuthorize]
- public async Task<ActionResult> CreateUser([FromBody] CreateUserRequest body)
+ public async Task<ActionResult<UserInfo>> CreateUser([FromBody] CreateUserRequest body)
{
try
{
- await _userService.CreateUser(_mapper.Map<User>(body));
- return Ok();
+ var user = await _userService.CreateUser(_mapper.Map<User>(body));
+ return Ok(ConvertToUserInfo(user));
}
catch (ConflictException)
{
diff --git a/Timeline/Models/Http/UserInfo.cs b/Timeline/Models/Http/UserInfo.cs index fee53ade..0d1d702b 100644 --- a/Timeline/Models/Http/UserInfo.cs +++ b/Timeline/Models/Http/UserInfo.cs @@ -25,14 +25,8 @@ namespace Timeline.Models.Http public class UserInfoLinksValueResolver : IValueResolver<User, UserInfo, UserInfoLinks?>
{
- private readonly IActionContextAccessor? _actionContextAccessor;
- private readonly IUrlHelperFactory? _urlHelperFactory;
-
- public UserInfoLinksValueResolver()
- {
- _actionContextAccessor = null;
- _urlHelperFactory = null;
- }
+ private readonly IActionContextAccessor _actionContextAccessor;
+ private readonly IUrlHelperFactory _urlHelperFactory;
public UserInfoLinksValueResolver(IActionContextAccessor actionContextAccessor, IUrlHelperFactory urlHelperFactory)
{
@@ -42,10 +36,8 @@ namespace Timeline.Models.Http public UserInfoLinks? Resolve(User source, UserInfo destination, UserInfoLinks? destMember, ResolutionContext context)
{
- if (_actionContextAccessor == null || _urlHelperFactory == null)
- {
+ if (_actionContextAccessor.ActionContext == null)
return null;
- }
var urlHelper = _urlHelperFactory.GetUrlHelper(_actionContextAccessor.ActionContext);
var result = new UserInfoLinks
diff --git a/Timeline/Services/UserService.cs b/Timeline/Services/UserService.cs index d2dc969e..93d92740 100644 --- a/Timeline/Services/UserService.cs +++ b/Timeline/Services/UserService.cs @@ -64,7 +64,7 @@ namespace Timeline.Services /// </summary>
/// <param name="info">The info of new user.</param>
/// <param name="password">The password, can't be null or empty.</param>
- /// <returns>The id of the new user.</returns>
+ /// <returns>The the new user.</returns>
/// <exception cref="ArgumentNullException">Thrown when <paramref name="info"/>is null.</exception>
/// <exception cref="ArgumentException">Thrown when some fields in <paramref name="info"/> is bad.</exception>
/// <exception cref="ConflictException">Thrown when a user with given username already exists.</exception>
@@ -75,7 +75,7 @@ namespace Timeline.Services /// <see cref="User.Nickname"/> must be a valid nickname if set. It is empty by default.
/// Other fields are ignored.
/// </remarks>
- Task<long> CreateUser(User info);
+ Task<User> CreateUser(User info);
/// <summary>
/// Modify a user's info.
@@ -276,7 +276,7 @@ namespace Timeline.Services return entities.Select(user => CreateUserFromEntity(user)).ToArray();
}
- public async Task<long> CreateUser(User info)
+ public async Task<User> CreateUser(User info)
{
if (info == null)
throw new ArgumentNullException(nameof(info));
@@ -316,7 +316,7 @@ namespace Timeline.Services _logger.LogInformation(Log.Format(LogDatabaseCreate,
("Id", newEntity.Id), ("Username", username), ("Administrator", administrator)));
- return newEntity.Id;
+ return CreateUserFromEntity(newEntity);
}
private void ValidateModifyUserInfo(User? info)
|