Files

40 lines
1.3 KiB
C#
Raw Normal View History

2024-04-27 22:36:16 +02:00
using Microsoft.AspNetCore.Mvc;
namespace WatchIt.WebAPI.Services.Controllers.Common;
public abstract class RequestResult
{
#region PROPERTIES
public RequestResultStatus Status { get; }
#endregion
#region CONSTRUCTORS
protected RequestResult(RequestResultStatus status) => Status = status;
public static RequestOkResult Ok() => new RequestOkResult();
public static RequestOkResult<T> Ok<T>(T data) => new RequestOkResult<T>(data);
public static RequestCreatedResult<T> Created<T>(string location, T data) => new RequestCreatedResult<T>(location, data);
public static RequestNoContentResult NoContent() => new RequestNoContentResult();
public static RequestBadRequestResult BadRequest() => new RequestBadRequestResult();
public static RequestUnauthorizedResult Unauthorized() => new RequestUnauthorizedResult();
public static RequestForbiddenResult Forbidden() => new RequestForbiddenResult();
public static RequestNotFoundResult NotFound() => new RequestNotFoundResult();
public static RequestConflictResult Conflict() => new RequestConflictResult();
#endregion
#region CONVERSION
public static implicit operator ActionResult(RequestResult result) => result.ConvertToActionResult();
protected abstract ActionResult ConvertToActionResult();
#endregion
}