diff --git a/rest_service/Controllers/PlayersController.cs b/rest_service/Controllers/PlayersController.cs index 6610c81..b94daec 100644 --- a/rest_service/Controllers/PlayersController.cs +++ b/rest_service/Controllers/PlayersController.cs @@ -1,4 +1,4 @@ -using System.Xml.Linq; +using System.Xml.Linq; using Microsoft.AspNetCore.Mvc; using MongoDB.Bson; using MongoDB.Bson.Serialization; @@ -59,11 +59,11 @@ public async Task> GetPlayers([FromQuery] PlayerRequest pla filter &= Builders.Filter.Eq(x => x.Location, playerUnique.Location); } - var players = await _playersCollection.FindAsync(filter, new FindOptions() { Limit = 10 }); + var players = await _playersCollection.FindAsync(filter, new FindOptions() { Limit = 10 }); var playersResponse = players.ToList().Select(player => new PlayerResponse(player)).ToList(); - + return playersResponse; } @@ -156,7 +156,7 @@ public async Task> CreatePlayer(PlayerRequest playe try { await _playersCollection.InsertOneAsync(session, player); - + await _playersUniqueCollection.InsertOneAsync(session, playerUnique); if (session.IsInTransaction) @@ -205,7 +205,8 @@ public async Task> PlayerAutoComplete([FromQuery] string Name) return arrMatches.GetElement("matches").Value.AsBsonArray .Select(x => x.ToString()) .ToList(); - } catch (Exception e) + } + catch (Exception e) { Logger.LogError("GetPlayerAutoComplete did not find matches"); Logger.LogError(e.Message); diff --git a/rest_service/Dtos/ResponseObjects/PlayerResponse.cs b/rest_service/Dtos/ResponseObjects/PlayerResponse.cs index 1ec4a40..2de3d68 100644 --- a/rest_service/Dtos/ResponseObjects/PlayerResponse.cs +++ b/rest_service/Dtos/ResponseObjects/PlayerResponse.cs @@ -15,8 +15,27 @@ public PlayerResponse(Player player) { Id = player.Id.ToString(); Name = player.Name; - Email = player.Email; + Email = MaskEmail(player.Email ?? string.Empty); Team = player.Team; Location = player.Location; } + + public string MaskEmail(string email) + { + if (string.IsNullOrEmpty(email) || !email.Contains("@")) + return email; + + string[] emailArr = email.Split('@'); + string domainExt = Path.GetExtension(email); + + string maskedEmail = string.Format("{0}****{1}@{2}****{3}{4}", + emailArr[0][0], + emailArr[0].Substring(emailArr[0].Length - 1), + emailArr[1][0], + emailArr[1].Substring(emailArr[1].Length - domainExt.Length - 1, 1), + domainExt + ); + + return maskedEmail; + } } \ No newline at end of file