From 6ef253f537a81641af29fbaac055b628d403203a Mon Sep 17 00:00:00 2001 From: Palash Biswas Date: Fri, 25 Nov 2022 10:04:53 +0530 Subject: [PATCH] BMC: FCM token Delete Functionality --- .../Controllers/TokenAuthController.cs | 30 +++++++++++++++---- .../Models/TokenAuth/FcmTokenDeleteInput.cs | 14 +++++++++ 2 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 BCS.BMC/src/BCS.BMC.Web.Core/Models/TokenAuth/FcmTokenDeleteInput.cs diff --git a/BCS.BMC/src/BCS.BMC.Web.Core/Controllers/TokenAuthController.cs b/BCS.BMC/src/BCS.BMC.Web.Core/Controllers/TokenAuthController.cs index b4b90f1..ceeab27 100644 --- a/BCS.BMC/src/BCS.BMC.Web.Core/Controllers/TokenAuthController.cs +++ b/BCS.BMC/src/BCS.BMC.Web.Core/Controllers/TokenAuthController.cs @@ -313,12 +313,12 @@ namespace BCS.BMC.Controllers requestContent.Headers.ContentType = new MediaTypeWithQualityHeaderValue("application/json"); HttpResponseMessage response = await client.PostAsync(baseUrl, requestContent); - + if (response.IsSuccessStatusCode) { var responseStream = await response.Content.ReadAsStringAsync(); - LoginOrRegisterResponseMessageModel result = JsonConvert.DeserializeObject(responseStream); - + LoginOrRegisterResponseMessageModel result = JsonConvert.DeserializeObject(responseStream); + var getTokenDetails = _firebaseToken.GetAllList().Where(x => x.HostName == host && x.UserId == int.Parse(result.result.userId)).FirstOrDefault(); if (getTokenDetails is null) @@ -331,8 +331,8 @@ namespace BCS.BMC.Controllers } if (getTokenDetails != null) { - FirebaseToken entity = new FirebaseToken(); getTokenDetails.FcmToken = input.FcmToken; + await _firebaseToken.UpdateAsync(getTokenDetails); } return Ok(result); @@ -341,7 +341,7 @@ namespace BCS.BMC.Controllers { var contents = await response.Content.ReadAsStringAsync(); ResponseMessageModel result = JsonConvert.DeserializeObject(contents); - + return BadRequest(result.error.message == "Login Failed" ? "Invalid Username Or Password" : result.error.message); } return Ok(); @@ -394,5 +394,25 @@ namespace BCS.BMC.Controllers } return BadRequest(); } + + [HttpPost] + public async Task DeleteRegisteredFcmToken([FromBody] FcmTokenDeleteInput input) + { + Uri uri = new Uri(input.HostName); + var host = uri.Host; + var getTokenDetails = _firebaseToken.GetAllList().Where(x => x.HostName == host && x.UserId == input.UserId).FirstOrDefault(); + + if (getTokenDetails != null) + { + FirebaseToken entity = new FirebaseToken(); + getTokenDetails.FcmToken = null; + await _firebaseToken.UpdateAsync(getTokenDetails); + } + else + { + return BadRequest("logout failed"); + } + return Ok("Success"); + } } } diff --git a/BCS.BMC/src/BCS.BMC.Web.Core/Models/TokenAuth/FcmTokenDeleteInput.cs b/BCS.BMC/src/BCS.BMC.Web.Core/Models/TokenAuth/FcmTokenDeleteInput.cs new file mode 100644 index 0000000..402fc17 --- /dev/null +++ b/BCS.BMC/src/BCS.BMC.Web.Core/Models/TokenAuth/FcmTokenDeleteInput.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BCS.BMC.Models.TokenAuth +{ + public class FcmTokenDeleteInput + { + public int UserId { get; set; } + public string HostName { get; set; } + } +}