diff options
Diffstat (limited to 'src/Web/DevHive.Web')
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(); + } + } +} |
