Implemented ResponseModels for Assets, Reverted error handling removal

This commit is contained in:
2025-10-08 21:50:57 +02:00
parent 1d26781e8e
commit 9acc650707
2 changed files with 53 additions and 19 deletions

View File

@@ -20,20 +20,29 @@ public class AssetsController : Controller
} }
[HttpGet("GetAll")] [HttpGet("GetAll")]
public async Task<IEnumerable<AssetModel>> GetAllAssetModelAsync() public async Task<AssetsIndexResponseModel> GetAllAssetModelAsync()
{ {
var assetsList = await _ldap.ListDeviceAsync(); AssetsIndexResponseModel result;
try
{
var assetList = await _ldap.ListDeviceAsync();
result = new AssetsIndexResponseModel(successful: true, assetsModel: assetList);
}
catch (Exception e)
{
result = new AssetsIndexResponseModel(successful: false, exception: e.Message);
}
return assetsList; return result;
} }
[HttpPost("Create")] [HttpPost("Create")]
public async Task<AssetsResponseModel> Create(AssetsCreateRequestModel assetModel) public async Task<AssetsCreateResponseModel> Create(AssetsCreateRequestModel assetModel)
{ {
AssetsResponseModel result; AssetsCreateResponseModel result;
if (assetModel is null) if (assetModel is null)
{ {
result = new AssetsResponseModel( result = new AssetsCreateResponseModel(
successful: false, successful: false,
exception: "Unable to create an asset because the AssetsCreateRequestModel is null."); exception: "Unable to create an asset because the AssetsCreateRequestModel is null.");
@@ -103,36 +112,36 @@ public class AssetsController : Controller
} }
await _ldap.CreateAsset(attributeSet); await _ldap.CreateAsset(attributeSet);
result = new AssetsResponseModel(successful: true); result = new AssetsCreateResponseModel(successful: true);
} }
catch (Exception e) catch (Exception e)
{ {
result = new AssetsResponseModel(successful: false, exception: e.Message); result = new AssetsCreateResponseModel(successful: false, exception: e.Message);
} }
return result; return result;
} }
[HttpDelete("Delete")] [HttpDelete("Delete")]
public async Task<AssetsResponseModel> Delete([BindRequired] string cn) public async Task<AssetsDeleteResponseModel> Delete([BindRequired] string cn)
{ {
AssetsResponseModel response; AssetsDeleteResponseModel response;
return await Task.Run(async () => return await Task.Run(async () =>
{ {
if (cn is null) if (cn is null)
{ {
response = new AssetsResponseModel(successful: false, exception: "Cn was not provided."); response = new AssetsDeleteResponseModel(successful: false, exception: "Cn was not provided.");
return response; return response;
} }
try try
{ {
await _ldap.DeleteAssetAsync(cn); await _ldap.DeleteAssetAsync(cn);
response = new AssetsResponseModel(true); response = new AssetsDeleteResponseModel(true);
} }
catch (Exception e) catch (Exception e)
{ {
response = new AssetsResponseModel(successful: false, exception: e.Message); response = new AssetsDeleteResponseModel(successful: false, exception: e.Message);
} }
return response; return response;
@@ -140,12 +149,12 @@ public class AssetsController : Controller
} }
[HttpPatch("Update")] [HttpPatch("Update")]
public async Task<AssetsResponseModel> Update(AssetsModifyRequestModel requestModel) public async Task<AssetsUpdateResponseModel> Update(AssetsModifyRequestModel requestModel)
{ {
AssetsResponseModel result; AssetsUpdateResponseModel result;
if (requestModel is null) if (requestModel is null)
{ {
result = new AssetsResponseModel( result = new AssetsUpdateResponseModel(
successful: false, successful: false,
exception: "Unable to update an asset because the AssetsModifyRequestModel is null"); exception: "Unable to update an asset because the AssetsModifyRequestModel is null");
@@ -201,11 +210,11 @@ public class AssetsController : Controller
await _ldap.UpdateAsset(cn, "description", JsonSerializer.Serialize(requestModel.Description)); await _ldap.UpdateAsset(cn, "description", JsonSerializer.Serialize(requestModel.Description));
} }
result = new AssetsResponseModel(successful: true); result = new AssetsUpdateResponseModel(successful: true);
} }
catch (Exception e) catch (Exception e)
{ {
result = new AssetsResponseModel(successful: false, exception: e.Message); result = new AssetsUpdateResponseModel(successful: false, exception: e.Message);
} }
return result; return result;

View File

@@ -1,7 +1,32 @@
public class AssetsResponseModel(bool successful, string exception = "None") using Berufsschule_HAM.Models;
public class AssetsCreateResponseModel(bool successful, string exception = "None")
{ {
public bool Success { get; set; } = successful; public bool Success { get; set; } = successful;
public string? Exception { get; set; } = exception; public string? Exception { get; set; } = exception;
} }
public class AssetsUpdateResponseModel(bool successful, string exception = "None")
{
public bool Success { get; set; } = successful;
public string? Exception { get; set; } = exception;
}
public class AssetsDeleteResponseModel(bool successful, string exception = "None")
{
public bool Success { get; set; } = successful;
public string? Exception { get; set; } = exception;
}
public class AssetsIndexResponseModel(bool successful, IEnumerable<AssetModel>? assetsModel = null, string exception = "None")
{
public bool Success { get; set; } = successful;
public IEnumerable<AssetModel>? AssetsModel { get; set; } = assetsModel;
public string? Exception { get; set; } = exception;
}