aboutsummaryrefslogtreecommitdiff
path: root/src/DevHive.Web
diff options
context:
space:
mode:
authortranstrike <transtrike@gmail.com>2021-02-03 12:31:32 +0200
committertranstrike <transtrike@gmail.com>2021-02-03 12:31:32 +0200
commitb417eb391795f157a9db894647730f1daf69a1d3 (patch)
tree8a59e5958172839b17e59f0f7cdeaf95ee0492c9 /src/DevHive.Web
parent8174d2b35c1d3fa90df8b9cb4a75bb3381ea5e39 (diff)
parent5d0e9f2c19b68a73baeebf623980d458e3aab80c (diff)
downloadDevHive-b417eb391795f157a9db894647730f1daf69a1d3.tar
DevHive-b417eb391795f157a9db894647730f1daf69a1d3.tar.gz
DevHive-b417eb391795f157a9db894647730f1daf69a1d3.zip
Merge branch 'dev' of github.com:Team-Kaleidoscope/DevHive into dev
Diffstat (limited to 'src/DevHive.Web')
-rw-r--r--src/DevHive.Web/Configurations/Mapping/UserMappings.cs3
-rw-r--r--src/DevHive.Web/Controllers/UserController.cs17
-rw-r--r--src/DevHive.Web/Models/Identity/User/ProfilePictureWebModel.cs7
-rw-r--r--src/DevHive.Web/Models/Identity/User/UpdateProfilePictureWebModel.cs9
-rw-r--r--src/DevHive.Web/Models/Identity/User/UserWebModel.cs2
5 files changed, 38 insertions, 0 deletions
diff --git a/src/DevHive.Web/Configurations/Mapping/UserMappings.cs b/src/DevHive.Web/Configurations/Mapping/UserMappings.cs
index 1b26cc9..f58e7ca 100644
--- a/src/DevHive.Web/Configurations/Mapping/UserMappings.cs
+++ b/src/DevHive.Web/Configurations/Mapping/UserMappings.cs
@@ -23,6 +23,9 @@ namespace DevHive.Web.Configurations.Mapping
CreateMap<UsernameWebModel, FriendServiceModel>();
CreateMap<UsernameWebModel, UpdateFriendServiceModel>();
+ CreateMap<UpdateProfilePictureWebModel, UpdateProfilePictureServiceModel>();
+ CreateMap<ProfilePictureServiceModel, ProfilePictureWebModel>();
+
CreateMap<UpdateUserServiceModel, UpdateUserWebModel>();
CreateMap<FriendServiceModel, UsernameWebModel>();
}
diff --git a/src/DevHive.Web/Controllers/UserController.cs b/src/DevHive.Web/Controllers/UserController.cs
index fdf317c..109bbaa 100644
--- a/src/DevHive.Web/Controllers/UserController.cs
+++ b/src/DevHive.Web/Controllers/UserController.cs
@@ -94,6 +94,23 @@ namespace DevHive.Web.Controllers
return new AcceptedResult("UpdateUser", userWebModel);
}
+
+ [HttpPut]
+ [Route("ProfilePicture")]
+ [Authorize(Roles = "User,Admin")]
+ public async Task<IActionResult> UpdateProfilePicture(Guid userId, [FromForm] UpdateProfilePictureWebModel updateProfilePictureWebModel, [FromHeader] string authorization)
+ {
+ if (!await this._userService.ValidJWT(userId, authorization))
+ return new UnauthorizedResult();
+
+ UpdateProfilePictureServiceModel updateProfilePictureServiceModel = this._userMapper.Map<UpdateProfilePictureServiceModel>(updateProfilePictureWebModel);
+ updateProfilePictureServiceModel.UserId = userId;
+
+ ProfilePictureServiceModel profilePictureServiceModel = await this._userService.UpdateProfilePicture(updateProfilePictureServiceModel);
+ ProfilePictureWebModel profilePictureWebModel = this._userMapper.Map<ProfilePictureWebModel>(profilePictureServiceModel);
+
+ return new AcceptedResult("UpdateProfilePicture", profilePictureWebModel);
+ }
#endregion
#region Delete
diff --git a/src/DevHive.Web/Models/Identity/User/ProfilePictureWebModel.cs b/src/DevHive.Web/Models/Identity/User/ProfilePictureWebModel.cs
new file mode 100644
index 0000000..9fb1516
--- /dev/null
+++ b/src/DevHive.Web/Models/Identity/User/ProfilePictureWebModel.cs
@@ -0,0 +1,7 @@
+namespace DevHive.Web.Models.Identity.User
+{
+ public class ProfilePictureWebModel
+ {
+ public string ProfilePictureURL { get; set; }
+ }
+}
diff --git a/src/DevHive.Web/Models/Identity/User/UpdateProfilePictureWebModel.cs b/src/DevHive.Web/Models/Identity/User/UpdateProfilePictureWebModel.cs
new file mode 100644
index 0000000..6efe968
--- /dev/null
+++ b/src/DevHive.Web/Models/Identity/User/UpdateProfilePictureWebModel.cs
@@ -0,0 +1,9 @@
+using Microsoft.AspNetCore.Http;
+
+namespace DevHive.Web.Models.Identity.User
+{
+ public class UpdateProfilePictureWebModel
+ {
+ public IFormFile Picture { get; set; }
+ }
+}
diff --git a/src/DevHive.Web/Models/Identity/User/UserWebModel.cs b/src/DevHive.Web/Models/Identity/User/UserWebModel.cs
index 1a5484a..7ab8cca 100644
--- a/src/DevHive.Web/Models/Identity/User/UserWebModel.cs
+++ b/src/DevHive.Web/Models/Identity/User/UserWebModel.cs
@@ -10,6 +10,8 @@ namespace DevHive.Web.Models.Identity.User
{
public class UserWebModel : BaseUserWebModel
{
+ public string ProfilePictureURL { get; set; }
+
[NotNull]
[Required]
public HashSet<RoleWebModel> Roles { get; set; } = new();