From d6d70dc432cf2b6523ce9f06575e178cbd208414 Mon Sep 17 00:00:00 2001 From: Danail Dimitrov Date: Fri, 19 Feb 2021 23:05:24 +0200 Subject: Adding Message layer --- .../DevHive.Web/Controllers/MessageController.cs | 26 +++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'src/Web/DevHive.Web/Controllers/MessageController.cs') 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 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(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 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(readMessageServiceModel); + + return new OkObjectResult(readMessageWebModel); } [HttpPut] -- cgit v1.2.3