aboutsummaryrefslogtreecommitdiff
path: root/Timeline/Models
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-01-31 15:21:58 +0800
committercrupest <crupest@outlook.com>2020-01-31 15:21:58 +0800
commit0dc8b59b435f978428c73bc28e2a424bc413c562 (patch)
treebbbac2fe1a6d3ce4c5d2c32553f6d06cb3209172 /Timeline/Models
parenteaf6d126db56b7caedd311033403b1f721bb80bc (diff)
downloadtimeline-0dc8b59b435f978428c73bc28e2a424bc413c562.tar.gz
timeline-0dc8b59b435f978428c73bc28e2a424bc413c562.tar.bz2
timeline-0dc8b59b435f978428c73bc28e2a424bc413c562.zip
Combine two user info types.
Diffstat (limited to 'Timeline/Models')
-rw-r--r--Timeline/Models/Http/TokenController.cs4
-rw-r--r--Timeline/Models/Http/UserInfo.cs45
2 files changed, 23 insertions, 26 deletions
diff --git a/Timeline/Models/Http/TokenController.cs b/Timeline/Models/Http/TokenController.cs
index 383b2965..ea8b59ed 100644
--- a/Timeline/Models/Http/TokenController.cs
+++ b/Timeline/Models/Http/TokenController.cs
@@ -16,7 +16,7 @@ namespace Timeline.Models.Http
public class CreateTokenResponse
{
public string Token { get; set; } = default!;
- public UserInfoForAdmin User { get; set; } = default!;
+ public UserInfo User { get; set; } = default!;
}
public class VerifyTokenRequest
@@ -27,6 +27,6 @@ namespace Timeline.Models.Http
public class VerifyTokenResponse
{
- public UserInfoForAdmin User { get; set; } = default!;
+ public UserInfo User { get; set; } = default!;
}
}
diff --git a/Timeline/Models/Http/UserInfo.cs b/Timeline/Models/Http/UserInfo.cs
index 07ac0aad..5890a7a6 100644
--- a/Timeline/Models/Http/UserInfo.cs
+++ b/Timeline/Models/Http/UserInfo.cs
@@ -7,54 +7,52 @@ using Timeline.Services;
namespace Timeline.Models.Http
{
- public interface IUserInfo
- {
- string Username { get; set; }
- string Nickname { get; set; }
- string AvatarUrl { get; set; }
- }
-
- public class UserInfo : IUserInfo
+ public class UserInfo
{
public string Username { get; set; } = default!;
public string Nickname { get; set; } = default!;
- public string AvatarUrl { get; set; } = default!;
+ public bool? Administrator { get; set; } = default!;
+#pragma warning disable CA1707
+ public UserInfoLinks? _links { get; set; }
+#pragma warning restore CA1707
}
- public class UserInfoForAdmin : IUserInfo
+ public class UserInfoLinks
{
- public string Username { get; set; } = default!;
- public string Nickname { get; set; } = default!;
- public string AvatarUrl { get; set; } = default!;
- public bool Administrator { get; set; }
+ public string Avatar { get; set; } = default!;
+ public string Timeline { get; set; } = default!;
}
- public class UserInfoAvatarUrlValueResolver : IValueResolver<User, IUserInfo, string>
+ public class UserInfoLinksValueResolver : IValueResolver<User, UserInfo, UserInfoLinks?>
{
private readonly IActionContextAccessor? _actionContextAccessor;
private readonly IUrlHelperFactory? _urlHelperFactory;
- public UserInfoAvatarUrlValueResolver()
+ public UserInfoLinksValueResolver()
{
_actionContextAccessor = null;
_urlHelperFactory = null;
}
- public UserInfoAvatarUrlValueResolver(IActionContextAccessor actionContextAccessor, IUrlHelperFactory urlHelperFactory)
+ public UserInfoLinksValueResolver(IActionContextAccessor actionContextAccessor, IUrlHelperFactory urlHelperFactory)
{
_actionContextAccessor = actionContextAccessor;
_urlHelperFactory = urlHelperFactory;
}
- public string Resolve(User source, IUserInfo destination, string destMember, ResolutionContext context)
+ public UserInfoLinks? Resolve(User source, UserInfo destination, UserInfoLinks? destMember, ResolutionContext context)
{
- if (_actionContextAccessor == null)
+ if (_actionContextAccessor == null || _urlHelperFactory == null)
{
- return $"/users/{destination.Username}/avatar";
+ return null;
}
- var urlHelper = _urlHelperFactory!.GetUrlHelper(_actionContextAccessor.ActionContext);
- return urlHelper.ActionLink(nameof(UserAvatarController.Get), nameof(UserAvatarController), new { destination.Username });
+ var urlHelper = _urlHelperFactory.GetUrlHelper(_actionContextAccessor.ActionContext);
+ return new UserInfoLinks
+ {
+ Avatar = urlHelper.ActionLink(nameof(UserAvatarController.Get), nameof(UserAvatarController), new { destination.Username }),
+ Timeline = urlHelper.ActionLink(nameof(PersonalTimelineController.TimelineGet), nameof(PersonalTimelineController), new { destination.Username })
+ };
}
}
@@ -62,8 +60,7 @@ namespace Timeline.Models.Http
{
public UserInfoAutoMapperProfile()
{
- CreateMap<User, UserInfo>().ForMember(u => u.AvatarUrl, opt => opt.MapFrom<UserInfoAvatarUrlValueResolver>());
- CreateMap<User, UserInfoForAdmin>().ForMember(u => u.AvatarUrl, opt => opt.MapFrom<UserInfoAvatarUrlValueResolver>());
+ CreateMap<User, UserInfo>().ForMember(u => u._links, opt => opt.MapFrom<UserInfoLinksValueResolver>());
}
}
}