от src избавился
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
using FluentResults;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Tnsu.ApprovalRoute.Application.Common.Errors;
|
||||
|
||||
namespace Tnsu.ApprovalRoute.Api.Common;
|
||||
|
||||
public static class ResultExtensions
|
||||
{
|
||||
public static IActionResult ToActionResult<T>(this Result<T> result)
|
||||
{
|
||||
if (result.IsFailed)
|
||||
return result.Errors[0].ToActionResult();
|
||||
|
||||
return new OkObjectResult(new ApiResponse<T>(result.Value));
|
||||
}
|
||||
|
||||
public static IActionResult ToActionResult(this Result result)
|
||||
{
|
||||
if (result.IsFailed)
|
||||
return result.Errors[0].ToActionResult();
|
||||
|
||||
return new NoContentResult();
|
||||
}
|
||||
|
||||
private static IActionResult ToActionResult(this IError error) => error switch
|
||||
{
|
||||
NotFoundError => new NotFoundObjectResult(new ApiError([error.Message])),
|
||||
ValidationError => new BadRequestObjectResult(new ApiError([error.Message])),
|
||||
ConflictError => new ConflictObjectResult(new ApiError([error.Message])),
|
||||
_ => new ObjectResult(new ApiError([error.Message])) { StatusCode = StatusCodes.Status500InternalServerError }
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user