Added an API endpoint to update an existing Work Category, with update allowed only if IsSystem = false.
This commit is contained in:
parent
6f378fe0bd
commit
5953f37e57
@ -610,6 +610,34 @@ namespace Marco.Pms.Services.Controllers
|
||||
return BadRequest(ApiResponse<object>.ErrorResponse("User sent Empty payload", "User sent Empty payload", 400));
|
||||
}
|
||||
|
||||
[HttpPost("work-category/edit")]
|
||||
public async Task<IActionResult> UpdateWorkCategoryMaster(WorkCategoryMasterDto workCategoryMasterDto)
|
||||
{
|
||||
var tenantId = _userHelper.GetTenantId();
|
||||
if (workCategoryMasterDto != null)
|
||||
{
|
||||
WorkCategoryMaster? workCategory = await _context.WorkCategoryMasters.AsNoTracking().FirstOrDefaultAsync(s => s.TenantId == tenantId && s.Id == workCategoryMasterDto.Id);
|
||||
if (workCategory != null)
|
||||
{
|
||||
if (workCategory.IsSystem)
|
||||
{
|
||||
_logger.LogError("User tries to update system-defined work category");
|
||||
return BadRequest(ApiResponse<object>.ErrorResponse("Cannot update system-defined work", "Cannot update system-defined work", 400));
|
||||
}
|
||||
workCategory = workCategoryMasterDto.ToWorkCategoryMasterFromWorkCategoryMasterDto(tenantId);
|
||||
_context.WorkCategoryMasters.Update(workCategory);
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
WorkCategoryMasterVM workCategoryMasterVM = workCategory.ToWorkCategoryMasterVMFromWorkCategoryMaster();
|
||||
_logger.LogInfo("Work category master {WorkCategoryId} updated successfully from tenant {tenantId}", workCategory.Id, tenantId);
|
||||
return Ok(ApiResponse<object>.SuccessResponse(workCategoryMasterVM, "Work category master updated successfully", 200));
|
||||
}
|
||||
_logger.LogError("Work category master {WorkCategoryId} not found in database", workCategoryMasterDto.Id ?? Guid.Empty);
|
||||
return NotFound(ApiResponse<object>.ErrorResponse("Work category master not found", "Work category master not found", 404));
|
||||
}
|
||||
_logger.LogError("User sent empyt payload");
|
||||
return BadRequest(ApiResponse<object>.ErrorResponse("User sent Empty payload", "User sent Empty payload", 400));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user