aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Backend/Api/Api/Controllers/MessageController.cs44
-rw-r--r--Backend/Api/Api/Interfaces/IMessageService.cs11
-rw-r--r--Backend/Api/Api/Program.cs1
-rw-r--r--Backend/Api/Api/Services/MessageService.cs18
4 files changed, 68 insertions, 6 deletions
diff --git a/Backend/Api/Api/Controllers/MessageController.cs b/Backend/Api/Api/Controllers/MessageController.cs
new file mode 100644
index 0000000..63351d0
--- /dev/null
+++ b/Backend/Api/Api/Controllers/MessageController.cs
@@ -0,0 +1,44 @@
+using System.Data;
+using Api.Interfaces;
+using Api.Models;
+using Api.Services;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+
+namespace Api.Controllers
+{
+ [Route("api/[controller]")]
+ [ApiController]
+ public class MessageController : ControllerBase
+ {
+
+ private readonly IJwtService _jwtService;
+ private readonly IMessageService _messageService;
+ public MessageController( IJwtService jwtService,IMessageService messageService)
+ {
+
+ _jwtService = jwtService;
+ _messageService = messageService;
+
+ }
+ [HttpPost("add")]
+ [Authorize(Roles = "User")]
+ public async Task<ActionResult<MessageSend>> addMessage([FromBody] MessageReceive msg)
+ {
+ var msgTemp = await _messageService.addMessage(msg);
+ if(msgTemp == null)
+ return BadRequest();
+ return Ok(msgTemp);
+ }
+ [HttpGet("myMessages")]
+ [Authorize(Roles = "User")]
+ public async Task<ActionResult<List<MessageSend>>> getMyMessages()
+ {
+ var msgTemp = await _messageService.getReceiverMessage();
+ if (msgTemp == null)
+ return BadRequest();
+ return Ok(msgTemp);
+ }
+ }
+}
diff --git a/Backend/Api/Api/Interfaces/IMessageService.cs b/Backend/Api/Api/Interfaces/IMessageService.cs
new file mode 100644
index 0000000..712b344
--- /dev/null
+++ b/Backend/Api/Api/Interfaces/IMessageService.cs
@@ -0,0 +1,11 @@
+using Api.Models;
+
+namespace Api.Interfaces
+{
+ public interface IMessageService
+ {
+ Task<Message> addMessage(MessageReceive msg);
+ Task<List<MessageSend>> getReceiverMessage();
+ MessageSend messageToMessageSend(Message msg);
+ }
+} \ No newline at end of file
diff --git a/Backend/Api/Api/Program.cs b/Backend/Api/Api/Program.cs
index 7d6b03e..280a9dd 100644
--- a/Backend/Api/Api/Program.cs
+++ b/Backend/Api/Api/Program.cs
@@ -27,6 +27,7 @@ builder.Services.AddScoped<IJwtService, JwtService>();
builder.Services.AddScoped<IPostService,PostService>();
builder.Services.AddScoped<IFileService,FileService>();
builder.Services.AddScoped<ILocationService,LocationService>();
+builder.Services.AddScoped<IMessageService, MessageService>();
builder.Services.AddHttpContextAccessor();
diff --git a/Backend/Api/Api/Services/MessageService.cs b/Backend/Api/Api/Services/MessageService.cs
index 0772b48..0e48285 100644
--- a/Backend/Api/Api/Services/MessageService.cs
+++ b/Backend/Api/Api/Services/MessageService.cs
@@ -5,7 +5,7 @@ using MongoDB.Driver;
namespace Api.Services
{
- public class MessageService
+ public class MessageService : IMessageService
{
private readonly IHttpContextAccessor _httpContext;
private readonly IMongoCollection<Message> _messages;
@@ -15,11 +15,15 @@ namespace Api.Services
public MessageService(IDatabaseConnection settings, IMongoClient mongoClient, IJwtService jwtService, IHttpContextAccessor httpContextAccessor, IConfiguration configuration)
{
var database = mongoClient.GetDatabase(settings.DatabaseName);
- _messages= database.GetCollection<Message>(settings.UserCollectionName);
+ _messages = database.GetCollection<Message>(settings.MessageCollectionname);
_jwtService = jwtService;
+ _httpContext = httpContextAccessor;
+ _configuration = configuration;
}
public async Task<Message> addMessage(MessageReceive msg)
{
+ if (_httpContext.HttpContext.User.FindFirstValue("id") == null)
+ return null;
var senderId = _httpContext.HttpContext.User.FindFirstValue("id").ToString();
if (senderId == null)
return null;
@@ -28,17 +32,19 @@ namespace Api.Services
tempMsg.receiverId = msg.receiverId;
tempMsg.senderId = senderId;
tempMsg.messagge = msg.messagge;
- tempMsg.timestamp= DateTime.Now.ToUniversalTime();
+ tempMsg.timestamp = DateTime.Now.ToUniversalTime();
+
+ //TODO if user online send thru socket
await _messages.InsertOneAsync(tempMsg);
return tempMsg;
}
public MessageSend messageToMessageSend(Message msg)
{
- var tempMsg=new MessageSend();
+ var tempMsg = new MessageSend();
tempMsg.senderId = msg.senderId;
- tempMsg.messagge=msg.messagge;
+ tempMsg.messagge = msg.messagge;
tempMsg.timestamp = msg.timestamp;
return tempMsg;
}
@@ -52,7 +58,7 @@ namespace Api.Services
foreach (var message in messages)
{
tempMessages.Add(messageToMessageSend(message));
- _messages.DeleteOne(msg=>msg._id==message._id);
+ _messages.DeleteOne(msg => msg._id == message._id);
}
return tempMessages;
}