Skip to content

Commit

Permalink
Merge pull request #57 from marcominerva/develop
Browse files Browse the repository at this point in the history
Update Failure Reasons
  • Loading branch information
marcominerva committed Jun 17, 2024
2 parents 3ab09ef + a561871 commit 53c3061
Show file tree
Hide file tree
Showing 9 changed files with 52 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="8.0.4" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.6.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="8.0.6" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.6.2" />
<PackageReference Include="TinyHelpers.AspNetCore" Version="3.1.4" />
</ItemGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="8.0.4" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.6.1" />
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="8.0.6" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.6.2" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.6" />
</ItemGroup>
</Project>
2 changes: 1 addition & 1 deletion src/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Nerdbank.GitVersioning" Version="3.6.133" PrivateAssets="All" />
<PackageReference Include="Nerdbank.GitVersioning" Version="3.6.139" PrivateAssets="All" />
</ItemGroup>

</Project>
10 changes: 9 additions & 1 deletion src/OperationResults.AspNetCore.Http/OperationResultOptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ public class OperationResultOptions

public bool UseHttpStatusCodes { get; set; }

public UnmappedFailureReasonBehavior UnmappedFailureReasonBehavior { get; set; }

public int UnmappedFailureReasonStatusCode { get; set; } = StatusCodes.Status500InternalServerError;

public OperationResultOptions()
{
StatusCodesMapping = new Dictionary<int, int>
Expand All @@ -30,7 +34,11 @@ internal int GetStatusCode(int failureReason, int? defaultStatusCode = null)
{
if (!StatusCodesMapping.TryGetValue(failureReason, out var statusCode))
{
statusCode = defaultStatusCode.GetValueOrDefault(StatusCodes.Status501NotImplemented);
statusCode = UnmappedFailureReasonBehavior switch
{
UnmappedFailureReasonBehavior.UseDefaultStatusCode => defaultStatusCode.GetValueOrDefault(UnmappedFailureReasonStatusCode),
_ => failureReason
};
}

return statusCode;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
namespace OperationResults.AspNetCore.Http;

public enum UnmappedFailureReasonBehavior
{
UseFailureReason,
UseDefaultStatusCode,
}
10 changes: 9 additions & 1 deletion src/OperationResults.AspNetCore/OperationResultOptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ public class OperationResultOptions

public bool UseHttpStatusCodes { get; set; }

public UnmappedFailureReasonBehavior UnmappedFailureReasonBehavior { get; set; }

public int UnmappedFailureReasonStatusCode { get; set; } = StatusCodes.Status500InternalServerError;

public OperationResultOptions()
{
StatusCodesMapping = new Dictionary<int, int>
Expand All @@ -30,7 +34,11 @@ internal int GetStatusCode(int failureReason, int? defaultStatusCode = null)
{
if (!StatusCodesMapping.TryGetValue(failureReason, out var statusCode))
{
statusCode = defaultStatusCode.GetValueOrDefault(StatusCodes.Status501NotImplemented);
statusCode = UnmappedFailureReasonBehavior switch
{
UnmappedFailureReasonBehavior.UseDefaultStatusCode => defaultStatusCode.GetValueOrDefault(UnmappedFailureReasonStatusCode),
_ => failureReason
};
}

return statusCode;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
namespace OperationResults.AspNetCore;

public enum UnmappedFailureReasonBehavior
{
UseFailureReason,
UseDefaultStatusCode,
}
21 changes: 13 additions & 8 deletions src/OperationResults/FailureReasons.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,17 @@
public static class FailureReasons
{
public const int None = 0;
public const int ItemNotFound = 1;
public const int Forbidden = 2;
public const int DatabaseError = 3;
public const int ClientError = 4;
public const int InvalidFile = 5;
public const int Conflict = 6;
public const int Unauthorized = 7;
public const int GenericError = 8;
public const int ClientError = 1;
public const int Unauthorized = 2;
public const int Forbidden = 3;
public const int ItemNotFound = 4;
public const int InvalidRequest = 5;
public const int Timeout = 6;
public const int Conflict = 7;
public const int InvalidFile = 8;
public const int InvalidContent = 9;
public const int DatabaseError = 10;
public const int NetworkError = 11;
public const int ServiceUnavailable = 12;
public const int GenericError = 1000;
}

0 comments on commit 53c3061

Please sign in to comment.