diff options
| author | Danail Dimitrov <danaildimitrov321@gmail.com> | 2021-02-19 23:05:24 +0200 |
|---|---|---|
| committer | Danail Dimitrov <danaildimitrov321@gmail.com> | 2021-02-19 23:05:24 +0200 |
| commit | d6d70dc432cf2b6523ce9f06575e178cbd208414 (patch) | |
| tree | 23bf9315473067167f67aa8afd9e32299d1f037e /src/Web/DevHive.Web/Controllers | |
| parent | ce6471578364310de31ed02e21ba5d7ae6529234 (diff) | |
| download | DevHive-chat_system.tar DevHive-chat_system.tar.gz DevHive-chat_system.zip | |
Adding Message layerchat_system
Diffstat (limited to 'src/Web/DevHive.Web/Controllers')
| -rw-r--r-- | src/Web/DevHive.Web/Controllers/MessageController.cs | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/src/Web/DevHive.Web/Controllers/MessageController.cs b/src/Web/DevHive.Web/Controllers/MessageController.cs index 092c7fa..48cfe2e 100644 --- a/src/Web/DevHive.Web/Controllers/MessageController.cs +++ b/src/Web/DevHive.Web/Controllers/MessageController.cs @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; using System.Threading.Tasks; +using AutoMapper; +using DevHive.Services.Models.Message; using DevHive.Services.Services; using DevHive.Web.Models.Message; using Microsoft.AspNetCore.Authorization; @@ -13,24 +15,42 @@ namespace DevHive.Web.Controllers public class MessageController : ControllerBase { private readonly MessageService _messageService; + private readonly IMapper _messageMapper; - public MessageController(MessageService messageService) + public MessageController(MessageService messageService, IMapper messageMapper) { this._messageService = messageService; + this._messageMapper = messageMapper; } [HttpPost] [Authorize(Roles = "User,Admin")] public async Task<IActionResult> Create(Guid userId, [FromBody] CreateMessageWebModel createMessageWebModel, [FromHeader] string authorization) { - throw new NotImplementedException(); + if (!await this._messageService.ValidateJwtForCreating(userId, authorization)) + return new UnauthorizedResult(); + + CreateMessageServiceModel createMessageServiceModel = this._messageMapper.Map<CreateMessageServiceModel>(createMessageWebModel); + + Guid messageId = await this._messageService.CreateMessage(createMessageServiceModel); + + if (messageId == Guid.Empty) + return BadRequest(); + + return new OkObjectResult(messageId); } [HttpGet] [Authorize(Roles = "User,Admin")] public async Task<IActionResult> Read(Guid id) { - throw new NotImplementedException(); + ReadMessageServiceModel readMessageServiceModel = await this._messageService.GetMessageById(id); + if (readMessageServiceModel == null) + return BadRequest("Message does not exist!"); + + ReadMessageWebModel readMessageWebModel = this._messageMapper.Map<ReadMessageWebModel>(readMessageServiceModel); + + return new OkObjectResult(readMessageWebModel); } [HttpPut] |
