Merge pull request 'Implemented an API to update Buckets for grouping contacts.' (#68) from Ashutosh_Task#250_Update_Bucket into Feature_Directory

Reviewed-on: #68
This commit is contained in:
Vikas Nale 2025-05-23 05:45:38 +00:00
commit 4801229f1e
3 changed files with 57 additions and 1 deletions

View File

@ -0,0 +1,9 @@
namespace Marco.Pms.Model.Dtos.Directory
{
public class UpdateBucketDto
{
public Guid Id { get; set; }
public string? Name { get; set; }
public string? Description { get; set; }
}
}

View File

@ -247,5 +247,23 @@ namespace Marco.Pms.Services.Controllers
} }
} }
[HttpPut("bucket/{id}")]
public async Task<IActionResult> UpdateBucket(Guid id, [FromBody] UpdateBucketDto bucketDto)
{
var response = await _directoryHelper.UpdateBucket(id, bucketDto);
if (response.StatusCode == 200)
{
return Ok(response);
}
else if (response.StatusCode == 404)
{
return NotFound(response);
}
else
{
return BadRequest(response);
}
}
} }
} }

View File

@ -941,7 +941,6 @@ namespace Marco.Pms.Services.Helpers
_logger.LogInfo("{count} Buckets are fetched by Employee with ID {LoggedInEmployeeId}", bucketVMs.Count, LoggedInEmployee.Id); _logger.LogInfo("{count} Buckets are fetched by Employee with ID {LoggedInEmployeeId}", bucketVMs.Count, LoggedInEmployee.Id);
return ApiResponse<object>.SuccessResponse(bucketVMs, System.String.Format("{0} buckets fetched successfully", bucketVMs.Count), 200); return ApiResponse<object>.SuccessResponse(bucketVMs, System.String.Format("{0} buckets fetched successfully", bucketVMs.Count), 200);
} }
public async Task<ApiResponse<object>> CreateBucket(CreateBucketDto bucketDto) public async Task<ApiResponse<object>> CreateBucket(CreateBucketDto bucketDto)
{ {
Guid tenantId = _userHelper.GetTenantId(); Guid tenantId = _userHelper.GetTenantId();
@ -978,7 +977,37 @@ namespace Marco.Pms.Services.Helpers
_logger.LogWarning("Employee with ID {LoggedInEmployeeId} sended empty payload", LoggedInEmployee.Id); _logger.LogWarning("Employee with ID {LoggedInEmployeeId} sended empty payload", LoggedInEmployee.Id);
return ApiResponse<object>.ErrorResponse("User Send empty Payload", "User Send empty Payload", 400); return ApiResponse<object>.ErrorResponse("User Send empty Payload", "User Send empty Payload", 400);
} }
public async Task<ApiResponse<object>> UpdateBucket(Guid id, UpdateBucketDto bucketDto)
{
Guid tenantId = _userHelper.GetTenantId();
var LoggedInEmployee = await _userHelper.GetCurrentEmployeeAsync();
if (bucketDto != null && id == bucketDto.Id)
{
var bucket = await _context.Buckets.FirstOrDefaultAsync(b => b.Id == bucketDto.Id && b.TenantId == tenantId);
if (bucket == null)
{
_logger.LogWarning("Employee ID {LoggedInEmployeeId} attempted to update a bucket but not found in database.", LoggedInEmployee.Id);
return ApiResponse<object>.ErrorResponse("Bucket not found", "Bucket not found", 404);
}
bucket.Name = bucketDto.Name ?? "";
bucket.Description = bucketDto.Description ?? "";
_context.DirectoryUpdateLogs.Add(new DirectoryUpdateLog
{
RefereanceId = bucketDto.Id,
UpdatedById = LoggedInEmployee.Id,
UpdateAt = DateTime.UtcNow
});
await _context.SaveChangesAsync();
BucketVM bucketVM = bucket.ToBucketVMFromBucket();
_logger.LogInfo("Employee Id {LoggedInEmployeeId} Updated new bucket {BucketId}", LoggedInEmployee.Id, bucket.Id);
return ApiResponse<object>.SuccessResponse(bucketVM, "Bucket update successFully", 200);
}
_logger.LogWarning("Employee with ID {LoggedInEmployeeId} sended empty payload", LoggedInEmployee.Id);
return ApiResponse<object>.ErrorResponse("User Send empty Payload", "User Send empty Payload", 400);
}
private bool Compare(string sentence, string search) private bool Compare(string sentence, string search)
{ {
sentence = sentence.Trim().ToLower(); sentence = sentence.Trim().ToLower();