aboutsummaryrefslogtreecommitdiff
path: root/src/DevHive.Web
diff options
context:
space:
mode:
authortranstrike <transtrike@gmail.com>2021-01-12 20:45:14 +0200
committertranstrike <transtrike@gmail.com>2021-01-12 20:45:14 +0200
commit56f5578d5f93a56984deb6735dba51551868f6d8 (patch)
tree5f309ba5a79882ad41ed78bf7ae8f18f38be757e /src/DevHive.Web
parentd2a754aa220f37ac28393451e7ad5793687bb999 (diff)
downloadDevHive-56f5578d5f93a56984deb6735dba51551868f6d8.tar
DevHive-56f5578d5f93a56984deb6735dba51551868f6d8.tar.gz
DevHive-56f5578d5f93a56984deb6735dba51551868f6d8.zip
Full implementation of Language & Technologies to User
Diffstat (limited to 'src/DevHive.Web')
-rw-r--r--src/DevHive.Web/Configurations/Extensions/ConfigureDependencyInjection.cs13
-rw-r--r--src/DevHive.Web/Controllers/TechnologyController.cs5
-rw-r--r--src/DevHive.Web/Controllers/UserController.cs65
-rw-r--r--src/DevHive.Web/Models/Technology/CreateTechnologyWebModel.cs7
-rw-r--r--src/DevHive.Web/Models/Technology/TechnologyWebModel.cs4
-rw-r--r--src/DevHive.Web/Models/Technology/UpdateTechnologyWebModel.cs4
-rw-r--r--src/DevHive.Web/Program.cs4
7 files changed, 84 insertions, 18 deletions
diff --git a/src/DevHive.Web/Configurations/Extensions/ConfigureDependencyInjection.cs b/src/DevHive.Web/Configurations/Extensions/ConfigureDependencyInjection.cs
index 2707d91..cce5174 100644
--- a/src/DevHive.Web/Configurations/Extensions/ConfigureDependencyInjection.cs
+++ b/src/DevHive.Web/Configurations/Extensions/ConfigureDependencyInjection.cs
@@ -1,3 +1,4 @@
+using DevHive.Data.Models;
using DevHive.Data.Repositories;
using DevHive.Services.Services;
using Microsoft.Extensions.DependencyInjection;
@@ -8,17 +9,19 @@ namespace DevHive.Web.Configurations.Extensions
{
public static void DependencyInjectionConfiguration(this IServiceCollection services)
{
+ services.AddTransient<LanguageRepository>();
+ services.AddTransient<RoleRepository>();
+ services.AddTransient<TechnologyRepository>();
+ services.AddTransient<UserRepository>();
+ services.AddTransient<PostRepository>();
+
services.AddTransient<LanguageService>();
services.AddTransient<RoleService>();
services.AddTransient<TechnologyService>();
services.AddTransient<UserService>();
services.AddTransient<PostService>();
- services.AddTransient<LanguageRepository>();
- services.AddTransient<RoleRepository>();
- services.AddTransient<TechnologyRepository>();
- services.AddTransient<UserRepository>();
- services.AddTransient<PostRepository>();
+ System.Console.WriteLine(services.Count);
}
}
} \ No newline at end of file
diff --git a/src/DevHive.Web/Controllers/TechnologyController.cs b/src/DevHive.Web/Controllers/TechnologyController.cs
index 08d4ca8..e02ca3d 100644
--- a/src/DevHive.Web/Controllers/TechnologyController.cs
+++ b/src/DevHive.Web/Controllers/TechnologyController.cs
@@ -23,9 +23,9 @@ namespace DevHive.Web.Controllers
}
[HttpPost]
- public async Task<IActionResult> Create([FromBody] TechnologyWebModel technologyWebModel)
+ public async Task<IActionResult> Create([FromBody] CreateTechnologyWebModel technologyWebModel)
{
- TechnologyServiceModel technologyServiceModel = this._technologyMapper.Map<TechnologyServiceModel>(technologyWebModel);
+ CreateTechnologyServiceModel technologyServiceModel = this._technologyMapper.Map<CreateTechnologyServiceModel>(technologyWebModel);
bool result = await this._technologyService.Create(technologyServiceModel);
@@ -48,7 +48,6 @@ namespace DevHive.Web.Controllers
public async Task<IActionResult> Update(Guid id, [FromBody] UpdateTechnologyWebModel updateModel)
{
UpdateTechnologyServiceModel updateTechnologyWebModel = this._technologyMapper.Map<UpdateTechnologyServiceModel>(updateModel);
- updateTechnologyWebModel.Id = id;
bool result = await this._technologyService.UpdateTechnology(updateTechnologyWebModel);
diff --git a/src/DevHive.Web/Controllers/UserController.cs b/src/DevHive.Web/Controllers/UserController.cs
index ce972a5..8fa07cf 100644
--- a/src/DevHive.Web/Controllers/UserController.cs
+++ b/src/DevHive.Web/Controllers/UserController.cs
@@ -10,6 +10,10 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using DevHive.Common.Models.Identity;
using DevHive.Common.Models.Misc;
+using DevHive.Web.Models.Language;
+using DevHive.Services.Models.Language;
+using DevHive.Web.Models.Technology;
+using DevHive.Services.Models.Technology;
namespace DevHive.Web.Controllers
{
@@ -27,6 +31,7 @@ namespace DevHive.Web.Controllers
this._userMapper = mapper;
}
+ #region Authentication
[HttpPost]
[Route("Login")]
[AllowAnonymous]
@@ -40,7 +45,6 @@ namespace DevHive.Web.Controllers
return new OkObjectResult(tokenWebModel);
}
- //Create
[HttpPost]
[Route("Register")]
[AllowAnonymous]
@@ -53,6 +57,9 @@ namespace DevHive.Web.Controllers
return new CreatedResult("Register", tokenWebModel);
}
+ #endregion
+
+ #region Create
[HttpPost]
[Route("AddAFriend")]
@@ -63,7 +70,30 @@ namespace DevHive.Web.Controllers
new BadRequestResult();
}
- //Read
+ [HttpPost]
+ [Route("AddLanguageToUser")]
+ public async Task<IActionResult> AddLanguageToUser(Guid userId, [FromBody] LanguageWebModel languageWebModel)
+ {
+ LanguageServiceModel languageServiceModel = this._userMapper.Map<LanguageServiceModel>(languageWebModel);
+
+ return await this._userService.AddLanguageToUser(userId, languageServiceModel) ?
+ new OkResult() :
+ new BadRequestResult();
+ }
+
+ [HttpPost]
+ [Route("AddTechnologyToUser")]
+ public async Task<IActionResult> AddTechnologyToUser(Guid userId, [FromBody] TechnologyWebModel technologyWebModel)
+ {
+ TechnologyServiceModel technologyServiceModel = this._userMapper.Map<TechnologyServiceModel>(technologyWebModel);
+
+ return await this._userService.AddTechnologyToUser(userId, technologyServiceModel) ?
+ new OkResult() :
+ new BadRequestResult();
+ }
+ #endregion
+
+ #region Read
[HttpGet]
public async Task<IActionResult> GetById(Guid id, [FromHeader] string authorization)
{
@@ -85,8 +115,9 @@ namespace DevHive.Web.Controllers
return new OkObjectResult(friend);
}
+ #endregion
- //Update
+ #region Update
[HttpPut]
public async Task<IActionResult> Update(Guid id, [FromBody] UpdateUserWebModel updateModel, [FromHeader] string authorization)
{
@@ -100,10 +131,10 @@ namespace DevHive.Web.Controllers
UserWebModel userWebModel = this._userMapper.Map<UserWebModel>(userServiceModel);
return new AcceptedResult("UpdateUser", userWebModel);
-
}
+ #endregion
- //Delete
+ #region Delete
[HttpDelete]
public async Task<IActionResult> Delete(Guid id, [FromHeader] string authorization)
{
@@ -121,5 +152,29 @@ namespace DevHive.Web.Controllers
await this._userService.RemoveFriend(userId, friendId);
return new OkResult();
}
+
+ [HttpPost]
+ [Route("RemoveLanguageFromUser")]
+ public async Task<IActionResult> RemoveLanguageFromUser(Guid userId, [FromBody] LanguageWebModel languageWebModel)
+ {
+ LanguageServiceModel languageServiceModel = this._userMapper.Map<LanguageServiceModel>(languageWebModel);
+
+ return await this._userService.RemoveLanguageFromUser(userId, languageServiceModel) ?
+ new OkResult() :
+ new BadRequestResult();
+ }
+
+ [HttpPost]
+ [Route("RemoveTechnologyFromUser")]
+ public async Task<IActionResult> RemoveTechnologyFromUser(Guid userId, [FromBody] TechnologyWebModel technologyWebModel)
+ {
+ TechnologyServiceModel technologyServiceModel = this._userMapper.Map<TechnologyServiceModel>(technologyWebModel);
+
+ return await this._userService.RemoveTechnologyFromUser(userId, technologyServiceModel) ?
+ new OkResult() :
+ new BadRequestResult();
+ }
+
+ #endregion
}
}
diff --git a/src/DevHive.Web/Models/Technology/CreateTechnologyWebModel.cs b/src/DevHive.Web/Models/Technology/CreateTechnologyWebModel.cs
new file mode 100644
index 0000000..27da4a0
--- /dev/null
+++ b/src/DevHive.Web/Models/Technology/CreateTechnologyWebModel.cs
@@ -0,0 +1,7 @@
+namespace DevHive.Web.Models.Technology
+{
+ public class CreateTechnologyWebModel : TechnologyWebModel
+ {
+ public string Name { get; set; }
+ }
+} \ No newline at end of file
diff --git a/src/DevHive.Web/Models/Technology/TechnologyWebModel.cs b/src/DevHive.Web/Models/Technology/TechnologyWebModel.cs
index cb6b998..05f7af8 100644
--- a/src/DevHive.Web/Models/Technology/TechnologyWebModel.cs
+++ b/src/DevHive.Web/Models/Technology/TechnologyWebModel.cs
@@ -1,7 +1,9 @@
+using System;
+
namespace DevHive.Web.Models.Technology
{
public class TechnologyWebModel
{
- public string Name { get; set; }
+ public Guid Id { get; set; }
}
} \ No newline at end of file
diff --git a/src/DevHive.Web/Models/Technology/UpdateTechnologyWebModel.cs b/src/DevHive.Web/Models/Technology/UpdateTechnologyWebModel.cs
index b94496e..d395c9f 100644
--- a/src/DevHive.Web/Models/Technology/UpdateTechnologyWebModel.cs
+++ b/src/DevHive.Web/Models/Technology/UpdateTechnologyWebModel.cs
@@ -2,8 +2,8 @@ using System;
namespace DevHive.Web.Models.Technology
{
- public class UpdateTechnologyWebModel : TechnologyWebModel
+ public class UpdateTechnologyWebModel
{
- public Guid Id { get; set; }
+ public string Name { get; set; }
}
} \ No newline at end of file
diff --git a/src/DevHive.Web/Program.cs b/src/DevHive.Web/Program.cs
index 9cbe12a..6982da9 100644
--- a/src/DevHive.Web/Program.cs
+++ b/src/DevHive.Web/Program.cs
@@ -5,7 +5,7 @@ namespace DevHive.Web
{
public class Program
{
- private const int HTTPS_PORT = 5000;
+ private const int HTTP_PORT = 5000;
public static void Main(string[] args)
{
@@ -16,7 +16,7 @@ namespace DevHive.Web
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
- webBuilder.ConfigureKestrel(opt => opt.ListenLocalhost(HTTPS_PORT));
+ webBuilder.ConfigureKestrel(opt => opt.ListenLocalhost(HTTP_PORT));
webBuilder.UseStartup<Startup>();
});
}