aboutsummaryrefslogtreecommitdiff
path: root/src/Web/DevHive.Web/Controllers
diff options
context:
space:
mode:
authorDanail Dimitrov <danaildimitrov321@gmail.com>2021-02-19 23:05:24 +0200
committerDanail Dimitrov <danaildimitrov321@gmail.com>2021-02-19 23:05:24 +0200
commitd6d70dc432cf2b6523ce9f06575e178cbd208414 (patch)
tree23bf9315473067167f67aa8afd9e32299d1f037e /src/Web/DevHive.Web/Controllers
parentce6471578364310de31ed02e21ba5d7ae6529234 (diff)
downloadDevHive-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.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]