aboutsummaryrefslogtreecommitdiff
path: root/src/Web/DevHive.Web
diff options
context:
space:
mode:
Diffstat (limited to 'src/Web/DevHive.Web')
-rw-r--r--src/Web/DevHive.Web/Configurations/Extensions/ConfigureDependencyInjection.cs4
-rw-r--r--src/Web/DevHive.Web/Configurations/Mapping/MessageMapping.cs19
-rw-r--r--src/Web/DevHive.Web/Controllers/MessageController.cs52
3 files changed, 75 insertions, 0 deletions
diff --git a/src/Web/DevHive.Web/Configurations/Extensions/ConfigureDependencyInjection.cs b/src/Web/DevHive.Web/Configurations/Extensions/ConfigureDependencyInjection.cs
index c547951..2f1f3a1 100644
--- a/src/Web/DevHive.Web/Configurations/Extensions/ConfigureDependencyInjection.cs
+++ b/src/Web/DevHive.Web/Configurations/Extensions/ConfigureDependencyInjection.cs
@@ -19,6 +19,8 @@ namespace DevHive.Web.Configurations.Extensions
services.AddTransient<ICommentRepository, CommentRepository>();
services.AddTransient<IFeedRepository, FeedRepository>();
services.AddTransient<IRatingRepository, RatingRepository>();
+ services.AddTransient<IMessageRepository, MessageRepository>();
+ //services.AddTransient<IChatRepository, ChatRepository>();
services.AddTransient<ILanguageService, LanguageService>();
services.AddTransient<IRoleService, RoleService>();
@@ -33,6 +35,8 @@ namespace DevHive.Web.Configurations.Extensions
apiKey: configuration.GetSection("Cloud").GetSection("apiKey").Value,
apiSecret: configuration.GetSection("Cloud").GetSection("apiSecret").Value));
services.AddTransient<IRateService, RateService>();
+ services.AddTransient<IMessageService, MessageService>();
+ //services.AddTransient<IChatService, ChatService>();
}
}
}
diff --git a/src/Web/DevHive.Web/Configurations/Mapping/MessageMapping.cs b/src/Web/DevHive.Web/Configurations/Mapping/MessageMapping.cs
new file mode 100644
index 0000000..71ed6b6
--- /dev/null
+++ b/src/Web/DevHive.Web/Configurations/Mapping/MessageMapping.cs
@@ -0,0 +1,19 @@
+using AutoMapper;
+using DevHive.Services.Models.Message;
+using DevHive.Web.Models.Message;
+
+namespace DevHive.Web.Configurations.Mapping
+{
+ public class MessageMapping : Profile
+ {
+ public MessageMapping()
+ {
+ CreateMap<CreateMessageWebModel, CreateMessageServiceModel>();
+
+ CreateMap<ReadMessageServiceModel, ReadMessageWebModel>()
+ .ForMember(dest => dest.CreatorFirstName, src => src.MapFrom(p => p.Creator.FirstName))
+ .ForMember(dest => dest.CreatorLastName, src => src.MapFrom(p => p.Creator.LastName))
+ .ForMember(dest => dest.CreatorUsername, src => src.MapFrom(p => p.Creator.UserName));
+ }
+ }
+}
diff --git a/src/Web/DevHive.Web/Controllers/MessageController.cs b/src/Web/DevHive.Web/Controllers/MessageController.cs
new file mode 100644
index 0000000..092c7fa
--- /dev/null
+++ b/src/Web/DevHive.Web/Controllers/MessageController.cs
@@ -0,0 +1,52 @@
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using DevHive.Services.Services;
+using DevHive.Web.Models.Message;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+
+namespace DevHive.Web.Controllers
+{
+ [Route("api/[controller]")]
+ [ApiController]
+ public class MessageController : ControllerBase
+ {
+ private readonly MessageService _messageService;
+
+ public MessageController(MessageService messageService)
+ {
+ this._messageService = messageService;
+ }
+
+ [HttpPost]
+ [Authorize(Roles = "User,Admin")]
+ public async Task<IActionResult> Create(Guid userId, [FromBody] CreateMessageWebModel createMessageWebModel, [FromHeader] string authorization)
+ {
+ throw new NotImplementedException();
+ }
+
+ [HttpGet]
+ [Authorize(Roles = "User,Admin")]
+ public async Task<IActionResult> Read(Guid id)
+ {
+ throw new NotImplementedException();
+ }
+
+ [HttpPut]
+ [Authorize(Roles = "User,Admin")]
+ public async Task<IActionResult> Update(Guid userId, [FromBody] object updateMessageWebModel, [FromHeader] string authorization)
+ {
+ //TODO: Authorize user
+ throw new NotImplementedException();
+ }
+
+ [HttpDelete]
+ [Authorize(Roles = "User,Admin")]
+ public async Task<IActionResult> Delete(Guid id, [FromHeader] string authorization)
+ {
+ //TODO: Authorize user
+ throw new NotImplementedException();
+ }
+ }
+}