From bb4c2743a28d87a2238a55ccdbc42a525bbd612d Mon Sep 17 00:00:00 2001 From: Noan07 <84435602+Noan07@users.noreply.github.com> Date: Fri, 24 Feb 2023 11:43:51 +0100 Subject: [PATCH] :hammer: message controller --- .../Controllers/MessageController.cs | 102 +++++++++--------- .../DataManager/DbDataManager.Message.cs | 8 +- 2 files changed, 53 insertions(+), 57 deletions(-) diff --git a/code/server/ApiLeapHit/Controllers/MessageController.cs b/code/server/ApiLeapHit/Controllers/MessageController.cs index dc76a5f..218b3f6 100644 --- a/code/server/ApiLeapHit/Controllers/MessageController.cs +++ b/code/server/ApiLeapHit/Controllers/MessageController.cs @@ -1,83 +1,77 @@ -using Microsoft.AspNetCore.Http; +using DataBase.DataManager; +using DataBase.Entity; +using DTO; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace ApiLeapHit.Controllers { + [Route("api/[controller]")] + [ApiController] public class MessageController : Controller { - // GET: MessageController - public ActionResult Index() - { - return View(); - } + private readonly DbDataManager _dataManager; - // GET: MessageController/Details/5 - public ActionResult Details(int id) - { - return View(); - } - // GET: MessageController/Create - public ActionResult Create() + public MessageController(DbDataManager dataManager) { - return View(); + _dataManager = dataManager; } - // POST: MessageController/Create - [HttpPost] - [ValidateAntiForgeryToken] - public ActionResult Create(IFormCollection collection) + [HttpGet("{id}")] + public async Task> ReceiveMessage(int id) { - try + var message = await _dataManager.ReceiveMessage(id); + if (message == null) { - return RedirectToAction(nameof(Index)); + return NotFound(); } - catch - { - return View(); - } - } - // GET: MessageController/Edit/5 - public ActionResult Edit(int id) - { - return View(); + var player = await _dataManager.GetPlayer(message.player); + + + var dtoMessage = new DTOMessage + { + messageId = message.messageId, + message = message.message, + timestamp = message.timestamp, + PlayerId = new DTOPlayer + { + playerId = player.playerId, + name = player.name, + nbBallTouchTotal = player.nbBallTouchTotal, + timePlayed = player.timePlayed + } + }; + return Ok(dtoMessage); } - // POST: MessageController/Edit/5 [HttpPost] - [ValidateAntiForgeryToken] - public ActionResult Edit(int id, IFormCollection collection) + public async Task SendMessage([FromBody] DTOMessage dtoMessage) { - try - { - return RedirectToAction(nameof(Index)); - } - catch + var player = await _dataManager.GetPlayer(dtoMessage.PlayerId.playerId); + + var message = new Message { - return View(); - } - } + messageId = dtoMessage.messageId, + message = dtoMessage.message, + timestamp = dtoMessage.timestamp, + player = player.playerId + }; - // GET: MessageController/Delete/5 - public ActionResult Delete(int id) - { - return View(); + await _dataManager.SendMessage(message); + return Ok(); } - // POST: MessageController/Delete/5 - [HttpPost] - [ValidateAntiForgeryToken] - public ActionResult Delete(int id, IFormCollection collection) + [HttpDelete("{id}")] + public async Task RemoveMessage(int id) { - try - { - return RedirectToAction(nameof(Index)); - } - catch + var result = await _dataManager.RemoveMessage(id); + if (result) { - return View(); + return Ok(result); } + return NotFound(result); } } } diff --git a/code/server/DataBase/DataManager/DbDataManager.Message.cs b/code/server/DataBase/DataManager/DbDataManager.Message.cs index 137ba69..60ffad9 100644 --- a/code/server/DataBase/DataManager/DbDataManager.Message.cs +++ b/code/server/DataBase/DataManager/DbDataManager.Message.cs @@ -16,6 +16,7 @@ namespace DataBase.DataManager using (var context = new PongDbContext()) { await context.Messages.AddAsync(message); + await context.SaveChangesAsync(); } } @@ -28,7 +29,7 @@ namespace DataBase.DataManager } } - public Task RemoveMessage(int id) + public async Task RemoveMessage(int id) { using (var context = new PongDbContext()) { @@ -36,9 +37,10 @@ namespace DataBase.DataManager if (message != null) { var result = context.Messages.Remove(message); - return Task.FromResult(result != null); + await context.SaveChangesAsync(); + return result != null; } - return Task.FromResult(false); + return false; } } }