aboutsummaryrefslogtreecommitdiff
path: root/src/Web/DevHive.Web/Controllers/MessageController.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Web/DevHive.Web/Controllers/MessageController.cs')
-rw-r--r--src/Web/DevHive.Web/Controllers/MessageController.cs26
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]