From ccd28908d0a7da1c565c96274b3c822969b9ff95 Mon Sep 17 00:00:00 2001 From: "ashutosh.nehete" Date: Thu, 15 May 2025 19:26:55 +0530 Subject: [PATCH] Added an API to Get a list of buckets Assigned to that employee --- Marco.Pms.Model/Mapper/DirectoryMapper.cs | 11 ++++++++++ .../ViewModels/Directory/BucketVM.cs | 9 ++++++++ .../Controllers/DirectoryController.cs | 6 +++++ Marco.Pms.Services/Helpers/DirectoryHelper.cs | 22 +++++++++++++++++++ 4 files changed, 48 insertions(+) create mode 100644 Marco.Pms.Model/ViewModels/Directory/BucketVM.cs diff --git a/Marco.Pms.Model/Mapper/DirectoryMapper.cs b/Marco.Pms.Model/Mapper/DirectoryMapper.cs index 9b5c835..b5d6667 100644 --- a/Marco.Pms.Model/Mapper/DirectoryMapper.cs +++ b/Marco.Pms.Model/Mapper/DirectoryMapper.cs @@ -178,5 +178,16 @@ namespace Marco.Pms.Model.Mapper Description = contactType.Description ?? string.Empty, }; } + + // Bucket + public static BucketVM ToBucketVMFromBucket(this Bucket bucket) + { + return new BucketVM + { + Id = bucket.Id, + Name = bucket.Name, + Description = bucket.Description + }; + } } } diff --git a/Marco.Pms.Model/ViewModels/Directory/BucketVM.cs b/Marco.Pms.Model/ViewModels/Directory/BucketVM.cs new file mode 100644 index 0000000..ce9ed9e --- /dev/null +++ b/Marco.Pms.Model/ViewModels/Directory/BucketVM.cs @@ -0,0 +1,9 @@ +namespace Marco.Pms.Model.ViewModels.Directory +{ + public class BucketVM + { + public Guid Id { get; set; } + public string? Name { get; set; } + public string? Description { get; set; } + } +} diff --git a/Marco.Pms.Services/Controllers/DirectoryController.cs b/Marco.Pms.Services/Controllers/DirectoryController.cs index fe82bce..65ccd2d 100644 --- a/Marco.Pms.Services/Controllers/DirectoryController.cs +++ b/Marco.Pms.Services/Controllers/DirectoryController.cs @@ -83,5 +83,11 @@ namespace Marco.Pms.Services.Controllers } + [HttpGet("buckets")] + public async Task GetBucketList() + { + var response = await _directoryHelper.GetBucketList(); + return Ok(response); + } } } diff --git a/Marco.Pms.Services/Helpers/DirectoryHelper.cs b/Marco.Pms.Services/Helpers/DirectoryHelper.cs index 81f419c..5d8e0b7 100644 --- a/Marco.Pms.Services/Helpers/DirectoryHelper.cs +++ b/Marco.Pms.Services/Helpers/DirectoryHelper.cs @@ -433,5 +433,27 @@ namespace Marco.Pms.Services.Helpers _logger.LogWarning("Employee with ID {LoggedInEmployeeId} sended empty payload", LoggedInEmployee.Id); return ApiResponse.ErrorResponse("User Send empty Payload", "User Send empty Payload", 400); } + + // -------------------------------- Bucket -------------------------------- + + public async Task> GetBucketList() + { + Guid tenantId = _userHelper.GetTenantId(); + var LoggedInEmployee = await _userHelper.GetCurrentEmployeeAsync(); + + List employeeBuckets = await _context.EmployeeBucketMappings.Where(b => b.EmployeeId == LoggedInEmployee.Id).ToListAsync(); + var bucketIds = employeeBuckets.Select(b => b.BucketId).ToList(); + + List bucketList = await _context.Buckets.Where(b => bucketIds.Contains(b.Id)).ToListAsync(); + + List bucketVMs = new List(); + foreach (var bucket in bucketList) + { + BucketVM bucketVM = bucket.ToBucketVMFromBucket(); + bucketVMs.Add(bucketVM); + } + _logger.LogInfo("{count} Buckets are fetched by Employee with ID {LoggedInEmployeeId}", bucketVMs.Count, LoggedInEmployee.Id); + return ApiResponse.SuccessResponse(bucketVMs, System.String.Format("{0} buckets fetched successfully", bucketVMs.Count), 200); + } } }